`
lusanxiong
  • 浏览: 19847 次
社区版块
存档分类
最新评论

sqlserver重建(rebuild)索引可以提高查询速度

阅读更多
当随着表的数据量不断增长,很多存储的数据进行了不适当的跨页(sqlserver中存储的最小单位是页,页是不不可再分的),会产生很多索引的碎片。这时候需要重建索引来提高查询性能。

如何查看索引的使用情况:
SELECT index_type_desc,alloc_unit_type_desc,avg_fragmentation_in_percent,fragment_count,avg_fragment_size_in_pages,page_count,record_count,avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID('db_name'),OBJECT_ID('table_name),NULL,NULL,'Sampled')

上面的语句是查询数据库db_name的表table_name的索引使用情况。

查询结果中的列avg_fragment_size_in_pages值超过40%就需要重建索引,可以减少IO扫描操作。

重建索引:
alter index pk_my_users on my_users rebuild;

测试结果:
原来的碎片达到89%,重建索引碎片降到2%,查询速度快了1倍。(数据量为百万级)
分享到:
评论

相关推荐

    SQLServer2008查询性能优化 2/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    SQLServer2008查询性能优化 1/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    数据库优化以及操作说明

    The SQL Server Maintenance Solution lets you intelligently rebuild or reorganize only the indexes that are fragmented. In the IndexOptimize procedure, you can define a preferred index maintenance ...

    SQL Server数据库镜像下有效的索引维护

    我们在做索引重建的时候...  我们先来了解下原理,使用大容量日志恢复模式允许索引重建(使用ALTER INDEX … REBUILD)操作产生更少的事务日志,也是说,事务日志不会像在完整恢复模式下执行的操作那么大。而数据库镜

    SQL Server 2014如何提升非在线的在线操作

    在的文章里,我想谈下在线索引重建操作( Online Index Rebuild operations),它们在SQL Server 2014里有怎样的提升。我们都知道,自SQL Server 2005开始引入了在线索引重建操作。但这些在线操作并非真正的在线操作...

    SYBASE_12.0数据库维护快速参考手册

    2.12 在SCO OPENSERVER 5上安装SQL SERVER 11.0.x 59 2.13 在SCO Unixware7.1上安装ASE11.92 62 2.14 ASE 11.9.2 for Linux安装步骤 64 3.常见问题 66 3.1 初级篇 66 3.1.1 在SQL Server中表大小是否有限制? 66 ...

    Toad 使用快速入门

    在schema browser的帮助下,可以方便的浏览数据库内部的各类数据库对象,比如表,索引,序列,存储过程等,而且可以方便的倒出DDL语句和进行各种修改,重建工作。定位到某一类对象上,这列对象允许的操作都会自动列...

    SQL2005经典问题教程

    --REPAIR_REBUILD 执行由 REPAIR_FAST 完成的所有修复,包括需要较长时间的修复(如重建索引)。执行这些修复时不会有丢失数据的危险。 --DBCC CHECKDB('dvbbs') with NO_INFOMSGS,PHYSICAL_ONLY SQL SERVER日志...

    Sybase ASE快速参考手册

    5.1.4 SQL Server 10.x配置内存过大、Server不能启动时怎么办? 100 5.2 数据库被挂起 101 5.2.1 如何解决数据库被挂起的问题(error 926) 101 5.2.2 如何做 rebuild log 103 5.3 数据库恢复 105 5.3.1 如何删除坏的...

    Sybase ASE快速参考手册.pdf

    5.1.4 SQL Server 10.x配置内存过大、Server不能启动时怎么办? 113 5.2 数据库被挂起 113 5.2.1 如何解决数据库被挂起的问题(error 926) 113 5.2.2 如何做 rebuild log 116 5.3 数据库恢复 118 5.3.1 如何删除...

    最全的oracle常用命令大全.txt

    如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句: SQL>select * from dictionary where instr(comments,'index')>0; 如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:...

    Sybase ASE 15.7 开发文档:系统管理指南(卷二)

    确定 Adaptive Server 可以使用的内存量 .......... 38 影响内存分配的配置参数 .......... 39 动态分配内存 .......... 41 如果 Adaptive Server 不能启动 .......... 41 动态降低内存配置参数 .......... 41 配置...

Global site tag (gtag.js) - Google Analytics