我使用NHibernate将一些数据插入到sql server 2005数据库中。在插入对象之前,我会根据其主键检查它是否已存在。每100000左右的查找这似乎抛出一些异常(如果我通过sql做同样的事情也需要很长时间)。对硬盘进行碎片整理似乎有所帮助,但似乎有点奇怪,我必须这样做 - 或者这是正常的吗?
BTW我知道我可以使用批量插入,但由于某些原因不得不选择NHibernate ......
感谢。
基督教
答案 0 :(得分:1)
如果它是100k插入,可能是数据库文件增长。你:
对文件系统进行碎片整理仅对生成IO超时非常有用
答案 1 :(得分:1)
你看到的超时很可能是由于数据库文件的增长。这可以解释缓慢的一致频率。我不确定这种情况发生的频率或表格的长期计划。但是,您可能希望手动将文件增大到更大的大小,以避免自动增长的频繁开销。