【发布时间】:2019-10-10 07:56:53
【问题描述】:
这与多列索引(复合)与单列索引无关。这比功能更重要的是性能。
我有一个场景需要对同一个表应用多个索引。现在我让它检查它们是否存在,然后一个接一个地应用它们。
我的问题是,从开始到结束的总时间需要几个小时才能全部应用。我想尽可能减少总时间(减少应用它们的时间窗口)
一个接一个
index1 => index2 = index3 =>...indexN
全部同时应用于一个表
index1
index2
index3
...
indexN
某些表的索引计数为 10+,有多个表,这将应用于多个数据库(几百个)我对 SAN 魔术类型的数据存储或 SQL Server 没有任何控制权事物。我有 16 个处理器和一个企业服务器,但所有数据库中所有表的总数并不小。在近 3000 个表中考虑多个 GB 行表计数和多个 TB 存储大小。这些都是聚集索引,而且大多数是复合索引
【问题讨论】:
-
更新您的 sql server 版本并移至列存储索引功能
-
@ZaynulAbadinTuhin 不是一个选项,这是另一天的任务,还有很多工作要做
-
您想每天晚上重建这些索引还是一次性操作?
-
@M.Kanarkowski 这是一次性的,但它的工作量很大。
标签: sql performance sql-server-2008 indexing