【发布时间】:2011-10-29 20:21:21
【问题描述】:
我一次将几百行或可能几千行写入一组表中,每个表都大量在内部和通过索引视图进行索引。
通常,插入发生在插入的行在索引中相邻的位置。
我预计这些插件会很昂贵,但它们真的很慢。我认为部分性能问题是索引会随着每个单独的 INSERT 进行更新。
有没有办法告诉 SQL Server 推迟更新索引,直到我完成我的一批插入,以便索引树只需要更新一次?
由于需要在保存和记录任何单个问题期间向用户显示进度条,因此这些语句作为单独的语句执行,但它们都来自 C# 中的同一连接。如果需要,我可以将它们放入事务中,但我不想这样做。
【问题讨论】:
-
“几千行”不是很多。应该几乎是即时的......当然我们不知道你有什么硬件......
-
我在表的末尾插入可能有几千行,但表有几百万行。速度问题肯定在于更新索引。硬件是最新的,并且数据库在此特定任务期间表现良好。
标签: sql-server-2005 tsql indexing