首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询目录中的碎片和重建SQL server索引

2012-12-28 
查询索引中的碎片和重建SQL server索引无论何时对基础数据执行插入、更新或删除操作,SQL Server 数据库引擎

查询索引中的碎片和重建SQL server索引

无论何时对基础数据执行插入、更新或删除操作,SQL Server 数据库引擎都会自动维护索引。随着时间的推移,这些修改可能会导致索引中的信息分散在数据库中(含有碎片)。当索引包含的页中的逻辑排序(基于键值)与数据文件中的物理排序不匹配时,就存在碎片。碎片非常多的索引可能会降低查询性能,导致应用程序响应缓慢。下面是一些简单的查询索引的sql。MSSQL的 DBA_Huangzj  提供。

判断无用的索引:

image、text、ntext、varchar(max)、nvarchar(max)、varbinary(max) 和 xml 都是大型对象数据类型。压缩此数据可以改善磁盘空间使用情况:

  • 重新组织指定的聚集索引将压缩该聚集索引的叶级别(数据行)包含的所有 LOB 列。

  • 重新组织非聚集索引将压缩该索引中属于非键(包含性)列的所有 LOB 列。

  • 如果指定 ALL,将重新组织与指定的表或视图相关联的所有索引,并压缩与聚集索引、基础表或带有包含列的非聚集索引相关联的所有 LOB 列。

  • 如果 LOB 列不存在,则忽略 LOB_COMPACTION 子句。


    重新生成:

    重新生成索引将删除该索引并创建一个新索引。此过程中将删除碎片,通过使用指定的或现有的填充因子设置压缩页来回收磁盘空间,并在连续页中对索引行重新排序(根据需要分配新页)。这样可以减少获取所请求数据所需的页读取数,从而提高磁盘性能。

    可以使用下列方法重新生成聚集索引和非聚集索引:

    • 带 REBUILD 子句的 ALTER INDEX。此语句将替换 DBCC DBREINDEX 语句。

    • 带 DROP_EXISTING 子句的 CREATE INDEX。


      重新组织或重新生成索引

        在“对象资源管理器”中,展开包含您要重新组织索引的表的数据库。

        展开“表”文件夹。

        展开要为其重新组织索引的表。

        展开“索引”文件夹。

        右键单击要重新组织的索引,然后选择“重新组织”。

        在“重新组织索引”对话框中,确认正确的索引位于“要重新组织的索引”网格中,然后单击“确定”。

        选中“压缩大型对象列数据”复选框,以指定也压缩所有包含大型对象 (LOB) 数据的页。

        单击“确定”。

      重新组织表中的所有索引

        在“对象资源管理器”中,展开包含您要重新组织索引的表的数据库。

        展开“表”文件夹。

        展开要为其重新组织索引的表。

        右键单击“索引”文件夹,然后选择“全部重新组织”。

        在“重新组织索引”对话框中,确认正确的索引位于“要重新组织的索引”中。 若要从“要重新组织的索引”网格中删除索引,请选择该索引,再按 Delete 键。

        选中“压缩大型对象列数据”复选框,以指定也压缩所有包含大型对象 (LOB) 数据的页。

        单击“确定”。

      重新生成索引

        在“对象资源管理器”中,展开包含您要重新组织索引的表的数据库。

        展开“表”文件夹。

        展开要为其重新组织索引的表。

        展开“索引”文件夹。

        右键单击要重新组织的索引,然后选择“重新组织”。

        在“重新生成索引”对话框中,确认正确的索引位于“要重新生成的索引”网格中,然后单击“确定”。

        选中“压缩大型对象列数据”复选框,以指定也压缩所有包含大型对象 (LOB) 数据的页。

        单击“确定”。

      部分信息来源:http://msdn.microsoft.com/zh-cn/library/ms189858.aspx#Fragmentation


      1楼xming43213天前 19:41
      现在研究这个起来了 牛!

热点排行