昨晚,我们在MSSQL中的一些非常大的表上创建了索引。我们已经在具有相同数据量的同一数据库上测试了此过程,这花费了90分钟。昨天花了12个小时。
当DBA看时,他发现对于表X运行的每个CREATE INDEX都有一个“从select * from x插入到x中”,从而引起争用。
这两个语句都使用lbase用户ID运行,而系统中没有其他事情
有人可以解释发生了什么吗?这次惨败之后,我的老板正在质疑数据库的完整性。
示例:
<changeSet author="lbase" id="${schema}-1525276571087-55" runAlways="true">
<preConditions onFail="MARK_RAN">
<not>
<indexExists schemaName="${schema}" tableName="SUBM_ITEM_ERROR" indexName="SUBM_ITEM_ERROR_IDX5"/>
</not>
</preConditions>
<createIndex indexName="SUBM_ITEM_ERROR_IDX5" schemaName="${schema}" tableName="SUBM_ITEM_ERROR" tablespace="${index_space}">
<column name="ERROR_CODE"/>
</createIndex>
</changeSet>