我正在使用SQL Server2017。我想按列YearID使用群集列存储索引(CCI)行组消除。以前,我是在YearID上构建集群行存储索引,并在其顶部以MAXDOP = 1构建CCI,但是它开始超时。我还有什么其他选择?现在,我通过从头开始创建CCI并将我的查询更改为一系列这样的插入内容来重写脚本:
INSERT INTO CCITable()
SELECT YearID, otherColums
FROM ...
WHERE YearID = 1
INSERT INTO CCITable()
SELECT YearID, otherColums
FROM ...
WHERE YearID = 2
...
INSERT INTO CCITable()
SELECT YearID, otherColums
FROM ...
WHERE YearID = N
我还注意到,使用INSERT INTO CCITable()WITH(TABLOCK)进行的1次迭代执行得更快,但是其中一堆执行得较慢。该脚本是使用CCITable的唯一查询。有什么想法吗?