neo*_*row 1 c# sql sql-server-2008
我试图将一个大对象插入一个数据行.当对象的大小变大时我遇到超时.
对象中的一个属性是a byte[].该对象只有一些属性,其余属性int.
目标表具有varbinary(max)用于保存byte[]属性的类型列.插入是通过存储过程完成的,包装在事务中,并使用ROWLOCK提示进行插入(此表仅在本地存在,因此此时锁定不应该是问题.)
当byte[]包含最多约200MB的数据时,插入工作正常.之后,它变得非常难看并开始超时(内存可能不是我的机器上的问题).
我已将数据库上的设置更改为自动扩展500MB,并将恢复模式设置为简单.这个交易应该非常快,但似乎在某个地方存在瓶颈.
有关数据库更改的想法或将大型对象写入varbinary列的替代方法吗?谢谢!
SQL数据库并未真正优化以存储大量二进制数据.我建议byte[]以一种适用于大型文档的存储形式存储内容.例如:
然后让SQL Server中的表存储对该文档的引用(例如文件路径或AWS ID).