Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server sql server 2005问题-是否需要碎片整理?_Sql Server_Sql Server 2005_Nhibernate - Fatal编程技术网

Sql server sql server 2005问题-是否需要碎片整理?

Sql server sql server 2005问题-是否需要碎片整理?,sql-server,sql-server-2005,nhibernate,Sql Server,Sql Server 2005,Nhibernate,我使用NHibernate将一些数据插入SQLServer2005数据库。在插入对象之前,我会根据它的主键检查它是否已经存在。每10万次左右的查找,这似乎会引发一些异常(如果我通过sql执行同样的操作,也需要很长时间)。硬盘碎片整理似乎有帮助,但似乎有点奇怪,我必须这样做-或者这是正常的 顺便说一句,我知道我可以使用批量插入,但由于某些原因,我不得不选择NHibernate 谢谢 Christian如果插入量为100k,则数据库文件可能会增长。你是否: 缩小数据库吗 有大的增长增量吗 是否未启

我使用NHibernate将一些数据插入SQLServer2005数据库。在插入对象之前,我会根据它的主键检查它是否已经存在。每10万次左右的查找,这似乎会引发一些异常(如果我通过sql执行同样的操作,也需要很长时间)。硬盘碎片整理似乎有帮助,但似乎有点奇怪,我必须这样做-或者这是正常的

顺便说一句,我知道我可以使用批量插入,但由于某些原因,我不得不选择NHibernate

谢谢


Christian

如果插入量为100k,则数据库文件可能会增长。你是否:

  • 缩小数据库吗
  • 有大的增长增量吗
  • 是否未启用即时文件初始化

对文件系统进行碎片整理只在生成IO超时时有用

您看到的超时很可能是由于数据库文件增长造成的。这就解释了缓慢的持续频率。我不确定这种情况发生的频率,也不确定该表的长期计划。但是,您可能希望手动将文件扩展到更大的大小,以避免频繁的自动增长开销。

SQL错误将非常有用。我的c#代码中出现超时异常。听起来像是锁定问题。Kimberly L.Tripp有一篇关于即时文件初始化的优秀文章。