SQL SEVER数据库重建索引的方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SQL SEVER数据库重建索引的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2423字,纯文字阅读大概需要4分钟。
内容图文
一.查询思路
1.想要判断数据库查询缓慢的问题,可以使用如下语句,可以列出查询语句的平均时间,总时间,所用的CPU时间等信息
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
SELECT creation_time N ‘语句编译时间‘
,last_execution_time N ‘上次执行时间‘
,total_physical_reads N ‘物理读取总次数‘
,total_logical_reads/execution_count N ‘每次逻辑读次数‘
,total_logical_reads N ‘逻辑读取总次数‘
,total_logical_writes N ‘逻辑写入总次数‘
, execution_count N ‘执行次数‘
, total_worker_time/1000 N ‘所用的CPU总时间ms‘
, total_elapsed_time/1000 N ‘总花费时间ms‘
, (total_elapsed_time / execution_count)/1000 N ‘平均时间ms‘
, SUBSTRING (st.text, (qs.statement_start_offset/2) + 1,
(( CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offsetEND
- qs.statement_start_offset)/2) + 1) N ‘执行语句‘
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
where SUBSTRING (st.text, (qs.statement_start_offset/2) + 1,
(( CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offsetEND
- qs.statement_start_offset)/2) + 1) not like ‘%fetch%‘
ORDER BY total_elapsed_time / execution_count DESC ;
|
2.列出数据库每个表的数据量,并且需要运维人员对业务足够了解,知道大概哪些表是查询量最多的,可以查看“排在前面的表的磁盘使用情况”:
3.查看表碎片的情况,可以使用命令
DBCC SHOWCONTIG
可以看到该表扫描密度只有33.52%(最佳状态是100%,每个表页都写满数据),远远低于最佳计数,也就是说这个表的利用率很低,本来扫描一页 就能出结果,现在可能需要扫描三页,增加了查询时间;而逻辑碎片和区碎片都很多(一般认为超过30%就需要优化了),也就是说同样一页,数据很少而碎片很 多,占用了过多的数据库资源。 4.根据你对业务的了解,找出查询最多的表,对比他的数据,查询时间,和碎片程度可以判断出该表是否需要整理碎片,重建索引,以提高数据库性能。 重建索引的语句为:
use[数据库名] ALTER INDEX ALL ON [表名称] REBUILD;
重建后,同样的一张表NWME_Company_Index,再次查询表碎片情况的结果如下:
可以看到密度已经变为96.9%,而逻辑碎片几乎没有了。
5.现在可以看一下整理碎片后,是否真的对查询性能优化了,再次运行第一点列出的命令查看可以发现,大部分查询语句所用的平均时间都下降了接近一半:
现在可以到前台实际体验优化后的效果了。
SQL SEVER数据库重建索引的方法
标签:uil rom 性能 碎片 creation 逻辑读 alter 就是 tab
本文系统来源:http://www.cnblogs.com/firstdream/p/7892219.html
内容总结
以上是互联网集市为您收集整理的SQL SEVER数据库重建索引的方法全部内容,希望文章能够帮你解决SQL SEVER数据库重建索引的方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。