扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:赛迪网 limeinan 来源:天新网 2008年3月27日
关键字: Mssql SQL SQL Server 数据库
为创建索引而生成的查询计划允许在具有多个微处理器的计算机上执行并行的多线程索引创建操作。
Microsoft® SQL Server™ 2000 确定索引创建操作的并行度(单独运行的总线程数)时使用的算法,与其对其它 Transact-SQL 语句所使用的算法相同。唯一的区别是创建索引的 CREATE INDE、CREATE TABLE 或 ALTER TABLE 语句不支持 MAXDOP 查询提示。索引创建的最大并行度受限于 max degree of parallelism 服务器配置选项,用户不能为个别的索引创建操作设置不同的 MAXDOP 值。
SQL Server 2000 生成创建索引查询计划时,并行操作数设置为下面各项的最小值:
·计算机中的微处理器 (CPU) 数。
·max degree of parallelism 服务器配置选项中指定的数目。
·尚未超过为 SQL Server 线程执行的工作阈值的 CPU 数。
例如,在具有 8 个 CPU 的计算机上,其 max degree of parallelism 却设置为 6,则为索引创建生成的并行线程不超过 6 个。如果生成索引创建执行计划时,计算机中有 5 个 CPU 超过了 SQL Server 工作阈值,则执行计划只指定三个并行线程。
并行索引创建的主要阶段包括:
·协调线程快速并随机地扫描表,以估计索引键的分布情况。协调线程建立键的边界,这将创建若干与并行操作度相等的键范围,其中每个键范围所包含的行数都差不多。例如,如果表中有四百万行,且并行度为 4,则协调线程确定将键值分为 4 个行集,每个行集有一百万行。
·协调线程分派与并行操作度相等的若干线程,并等待这些线程完成它们的工作。每个线程都使用筛选扫描基表,只检索键值在指派给线程的范围内的行。每个线程都为其键范围内的行生成索引结构。
·当所有并行线程都完成后,协调线程将索引子单元连接到单个索引中。
个别 CREATE TABLE 或 ALTER TABLE 语句可以有多个要求创建索引的约束。这些多个索引创建操作连续执行,但每个索引创建操作可以是具有多个 CPU 的计算机上的并行操作。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者