Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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 如果在现有行中插入行或更新值,则更新列的索引是否会在此时更新?_Sql_Sql Server_Sql Server 2005_Indexing - Fatal编程技术网

Sql 如果在现有行中插入行或更新值,则更新列的索引是否会在此时更新?

Sql 如果在现有行中插入行或更新值,则更新列的索引是否会在此时更新?,sql,sql-server,sql-server-2005,indexing,Sql,Sql Server,Sql Server 2005,Indexing,或者我需要特别更新它们。情况是这样的:我有一个150万行90列的表。我们已经对数据进行了大量清理,我需要知道是应该重建索引,还是在该表的更新和插入操作期间已经重建了索引。数据库会不断更新索引(除非您明确告诉他们不要更新)已经有最新的索引。更新或插入(或删除)完成后,所有约束都已检查,索引已更新,触发器也已运行OK。这包括表上的索引视图 这是: 统计信息在需要时(即查询编译时)才会更新,但这与此无关在表中更新/插入行时会更新索引。如果您正在进行大量插入/更新,一种常见的做法是在开始该过程之前删除索

或者我需要特别更新它们。情况是这样的:我有一个150万行90列的表。我们已经对数据进行了大量清理,我需要知道是应该重建索引,还是在该表的更新和插入操作期间已经重建了索引。

数据库会不断更新索引(除非您明确告诉他们不要更新)

已经有最新的索引。更新或插入(或删除)完成后,所有约束都已检查,索引已更新,触发器也已运行OK。这包括表上的索引视图

这是:


统计信息在需要时(即查询编译时)才会更新,但这与此无关

在表中更新/插入行时会更新索引。如果您正在进行大量插入/更新,一种常见的做法是在开始该过程之前删除索引,然后再重新创建它们以提高性能。除非真的有必要,否则最好避免这样做,因为这是一个维护难题。

从性能角度来看,这个问题非常有趣;通常人们会说“索引加速查询/sql”。这通常适用于选择,但对于插入、更新和删除可能是错误的。如果要维护索引,那么RDBMS必须对非select语句进行更多的磁盘访问、做更多的工作等。