Sql 将多个索引一个接一个地应用于表还是使用多个单独的查询更快
这与多列索引(复合索引)和单列索引无关。这与其说是功能,不如说是性能 我有一个场景,需要对同一个表应用多个索引。现在我让它检查它们是否存在,然后一个接一个地应用它们 我的问题是,从一开始到结束,应用它们的总时间要超过几个小时。我希望尽可能减少总时间(缩短应用时间窗口) 接二连三Sql 将多个索引一个接一个地应用于表还是使用多个单独的查询更快,sql,performance,sql-server-2008,indexing,Sql,Performance,Sql Server 2008,Indexing,这与多列索引(复合索引)和单列索引无关。这与其说是功能,不如说是性能 我有一个场景,需要对同一个表应用多个索引。现在我让它检查它们是否存在,然后一个接一个地应用它们 我的问题是,从一开始到结束,应用它们的总时间要超过几个小时。我希望尽可能减少总时间(缩短应用时间窗口) 接二连三 index1=>index2=index3=>…indexN 所有这些都同时应用于一个表 index1 index2 index3 ... indexN 有些表的索引计数为10+,有多个表,这将应用于多个数据库(
index1=>index2=index3=>…indexN
所有这些都同时应用于一个表
index1
index2
index3
...
indexN
有些表的索引计数为10+,有多个表,这将应用于多个数据库(几百个)。对于SAN magic类型的东西,我无法控制数据存储或SQL Server。我有16个处理器和一个企业服务器,但所有数据库中的所有表的总数是非常重要的。考虑到近3000个表中的多个GB行表计数和多TB存储大小。这些都是聚集索引,大多数是复合的,而实现这一点的简单方法似乎并不存在,如果通过对一个相当大的表进行测试发现,10个新索引的应用程序同时处理独立的查询和配置(几乎同时分别启动)确实比单个脚本快,其中索引以一种连续的方式应用了很大的幅度。如果SQL Server有足够的资源来处理这种影响,那么这似乎也不会产生任何可以检测到的负面影响 只需在此处更新范围和比例,而不需要太具体:
- 针对多个表进行测试,其规模从微不足道(3.6M行)到更大
- 针对30多个索引集(200M-500M行)进行测试
- 针对具有1.6B到1.9B行的表进行测试
- 根据表格的不同,索引计数在3-30+之间变化
- tempdb大小为1TB
- 2800多个表中的总范围从0行到近2B行
- 服务器基本上已加载到它可以处理的最大点,并使用自动化保持在那里
我使用Powershell提交了索引添加,在不同的表上同时运行了数百个索引,包括在多个表上运行了30多个索引。而实现这一点的简单方法似乎并不存在,通过对一个相当大的表进行测试发现,10个新索引的应用程序同时处理不同的查询和配置(所有索引几乎同时启动,分别启动)确实比单个脚本快,其中索引以一种连续的方式应用了很大的幅度。如果SQL Server有足够的资源来处理这种影响,那么这似乎也不会产生任何可以检测到的负面影响 只需在此处更新范围和比例,而不需要太具体:
- 针对多个表进行测试,其规模从微不足道(3.6M行)到更大
- 针对30多个索引集(200M-500M行)进行测试
- 针对具有1.6B到1.9B行的表进行测试
- 根据表格的不同,索引计数在3-30+之间变化
- tempdb大小为1TB
- 2800多个表中的总范围从0行到近2B行
- 服务器基本上已加载到它可以处理的最大点,并使用自动化保持在那里
我使用Powershell提交了添加的索引,在不同的表上同时运行了数百个,包括在多个表上运行了30多个。更新sql server版本并移动到列存储索引feature@ZaynulAbadinTuhin没有选择,这是另一天的任务,后面还有大量的工作要做。您想每晚重建这些索引还是一次性操作?@M.Kanarkowski这是一次性的,但工作量相当大。请更新sql server版本并移至列存储索引feature@ZaynulAbadinTuhin没有选择,这是另一天的任务,后面还有大量的工作。你想每晚重建这些索引还是一次性的行动?@M.Kanarkowski这是一次性的,但工作量相当大。