DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC DBREINDEX对指定数据库中的表重新生成一个或多个索引
来源:互联网 发布:水浒传老虎机算法 编辑:程序博客网 时间:2024/05/21 09:22
对指定数据库中的表重新生成一个或多个索引。
后续版本的 Microsoft SQL Server 将删除该功能。请不要在新的开发工作中使用该功能,并尽快修改当前还在使用该功能的应用程序。 请改用 ALTER INDEX。
Transact-SQL 语法约定
DBCC DBREINDEX ( table_name [ ,index_name [ ,fillfactor ] ]) [ WITH NO_INFOMSGS ]
DBCC DBREINDEX 重新生成表的一个索引或为表定义的所有索引。通过允许动态重新生成索引,可以重新生成强制 PRIMARY KEY 或 UNIQUE 约束的索引,而不必删除并重新创建这些约束。这意味着无需了解表的结构或其约束,即可重新生成索引。这可能在将数据大容量复制到表中以后发生。
DBCC DBREINDEX 可以在一条语句中重新生成表的所有索引。这要比对多条 DROP INDEX 和 CREATE INDEX 语句进行编码更容易。由于这项工作是通过一条语句执行的,因此 DBCC DBREINDEX 自动成为原子性的,而单个 DROP INDEX 和 CREATE INDEX 语句则必须包含在事务中才能成为原子性的。此外,DBCC DBREINDEX 提供了比单个 DROP INDEX 和 CREATE INDEX 语句更多的优化性能。
与 DBCC INDEXDEFRAG 或具有 REORGANIZE 选项的 ALTER INDEX 不同,DBCC DBREINDEX 是一个脱机操作。如果重新生成了非聚集索引,则在该操作的持续时间内,相关表持有共享锁。这可以禁止对表进行修改。如果重新生成了聚集索引,则持有排他表锁。这可以禁止任何表访问,因此可以有效地使表脱机。为了执行联机索引重新生成,或控制索引重新生成操作期间的并行度,可使用具有 ONLINE 选项的 ALTER INDEX REBUILD 语句。
有关选择方法来重新生成或重新组织索引的详细信息,请参阅重新组织和重新生成索引。
限制
不支持对以下对象使用 DBCC DBREINDEX:
系统表
空间索引
除非指定了 NO_INFOMSGS(必须指定表名),否则 DBCC DBREINDEX 将始终返回:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
调用方必须拥有此表,或是 sysadmin 固定服务器角色、db_owner 固定数据库角色或 db_ddladmin 固定数据库角色的成员。
A. 重新生成索引
以下示例使用填充因子 80 对 AdventureWorks2008R2 数据库中的 Employee 表重新生成 Employee_EmployeeID 聚集索引。
USE AdventureWorks2008R2; GODBCC DBREINDEX ("HumanResources.Employee", PK_Employee_BusinessEntityID,80);GO
B. 重新生成所有索引
以下示例使用填充因子值 70 对 AdventureWorks2008R2 中的 Employee 表重新生成所有索引。
USE AdventureWorks2008R2; GODBCC DBREINDEX ("HumanResources.Employee", " ", 70);GO
后续版本的 Microsoft SQL Server 将删除该功能。请不要在新的开发工作中使用该功能,并尽快修改当前还在使用该功能的应用程序。 请改用 ALTER INDEX。
Transact-SQL 语法约定
DBCC DBREINDEX ( table_name [ ,index_name [ ,fillfactor ] ]) [ WITH NO_INFOMSGS ]
DBCC DBREINDEX 重新生成表的一个索引或为表定义的所有索引。通过允许动态重新生成索引,可以重新生成强制 PRIMARY KEY 或 UNIQUE 约束的索引,而不必删除并重新创建这些约束。这意味着无需了解表的结构或其约束,即可重新生成索引。这可能在将数据大容量复制到表中以后发生。
DBCC DBREINDEX 可以在一条语句中重新生成表的所有索引。这要比对多条 DROP INDEX 和 CREATE INDEX 语句进行编码更容易。由于这项工作是通过一条语句执行的,因此 DBCC DBREINDEX 自动成为原子性的,而单个 DROP INDEX 和 CREATE INDEX 语句则必须包含在事务中才能成为原子性的。此外,DBCC DBREINDEX 提供了比单个 DROP INDEX 和 CREATE INDEX 语句更多的优化性能。
与 DBCC INDEXDEFRAG 或具有 REORGANIZE 选项的 ALTER INDEX 不同,DBCC DBREINDEX 是一个脱机操作。如果重新生成了非聚集索引,则在该操作的持续时间内,相关表持有共享锁。这可以禁止对表进行修改。如果重新生成了聚集索引,则持有排他表锁。这可以禁止任何表访问,因此可以有效地使表脱机。为了执行联机索引重新生成,或控制索引重新生成操作期间的并行度,可使用具有 ONLINE 选项的 ALTER INDEX REBUILD 语句。
有关选择方法来重新生成或重新组织索引的详细信息,请参阅重新组织和重新生成索引。
限制
不支持对以下对象使用 DBCC DBREINDEX:
系统表
空间索引
除非指定了 NO_INFOMSGS(必须指定表名),否则 DBCC DBREINDEX 将始终返回:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
调用方必须拥有此表,或是 sysadmin 固定服务器角色、db_owner 固定数据库角色或 db_ddladmin 固定数据库角色的成员。
A. 重新生成索引
以下示例使用填充因子 80 对 AdventureWorks2008R2 数据库中的 Employee 表重新生成 Employee_EmployeeID 聚集索引。
USE AdventureWorks2008R2; GODBCC DBREINDEX ("HumanResources.Employee", PK_Employee_BusinessEntityID,80);GO
B. 重新生成所有索引
以下示例使用填充因子值 70 对 AdventureWorks2008R2 中的 Employee 表重新生成所有索引。
USE AdventureWorks2008R2; GODBCC DBREINDEX ("HumanResources.Employee", " ", 70);GO
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC DBREINDEX对指定数据库中的表重新生成一个或多个索引
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC INDEXDEFRAG指定表或视图的索引碎片整理
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SHOWCONTIG显示指定的表或视图的数据和索引的碎片信息
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CHECKCONSTRAINTS检查当前数据库中指定表上的指定约束或所有约束的完整性
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CHECKCONSTRAINTS检查当前数据库中指定表上的指定约束或所有约束的完整性
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CHECKCONSTRAINTS检查当前数据库中指定表上的指定约束或所有约束的完整性
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SHRINKFILE收缩当前数据库的指定数据或日志文件的大小
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SHRINKDATABASE收缩指定数据库中的数据文件和日志文件的大小
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CHECKTABLE检查组成表或索引视图的所有页和结构的完整性
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CLEANTABLE回收表或索引视图中已删除的可变长度列的空间
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SHOW_STATISTICSDBCC SHOW_STATISTICS 显示表或索引视图的当前查询优化统计信息
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC DBREPAIR禁用指定的跟踪标记
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC TRACEON启用指定的跟踪标记
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC FREEPROCCACHE
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CHECKALLOC检查指定数据库的磁盘空间分配结构的一致性。
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CHECKCATALOG检查指定数据库内的目录一致性。数据库必须联机。
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CHECKDB通过执行下列操作检查指定数据库中所有对象的逻辑和物理完整性
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC HELP返回指定的 DBCC 命令的语法信息
- [Ext.Net]TreePanel 异步加载数据
- 复习笔记之三--内核对象线程同步---事件
- 顺序栈实现
- 论计算机语言
- myeclipse 85 js插件安装
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC DBREINDEX对指定数据库中的表重新生成一个或多个索引
- centos下mysql5.6.14安装
- Linux基础-用户管理
- VS2013调用MATLAB内建函数
- C++中模板函数的使用
- duilib学习笔记
- select into from与insert into select区别详解
- 细说websocket - php篇
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC dllname (FREE)从内存中上载指定的扩展存储过程 DLL