SQLServer2005重建索引
今天发现一个页面运行很慢,用SQL Server Profiler抓出了一条运行时间为12s的sql
select * from v_wf_todo_business where dtinstance in (select dtinstance from t_wf_todo_business_sign_user where userid=244 union select dtinstance from t_wf_handle_state where handleuserid=244) and wfinstance is not null and wftbrq>='2016-05-07' and wftbrq<='2016-06-07'
把生产环境的数据库备份下来,还原到开发环境进行分析,发现只要把wftbrq>='2016-05-07'改为wftbrq>='2011-05-07',执行时间变正常了,只需要0.04s,差点以为我眼花了,时间范围变大,速度还更快了?
顿时明白了这肯定不是sql的问题,记得以前有个dba跟我说过重建索引能提高查询速度,所以就按照这里的方法进行尝试:http://www.cnblogs.com/luckybird/archive/2012/06/11/2544753.html
一、分析表的索引建立情况:DBCC showcontig('t_wf_todo_business')
DBCC SHOWCONTIG 正在扫描 't_wf_todo_business' 表...
表: 't_wf_todo_business' (1652200936);索引 ID: 1,数据库 ID: 7
已执行 TABLE 级别的扫描。
- 扫描页数................................: 1198
- 扫描区数..............................: 188
- 区切换次数..............................: 1196
- 每个区的平均页数........................: 6.4
- 扫描密度 [最佳计数:实际计数].......: 12.53% [150:1197]
- 逻辑扫描碎片 ..................: 99.33%
- 区扫描碎片 ..................: 98.94%
- 每页的平均可用字节数........................: 2613.5
- 平均页密度(满).....................: 67.71%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
二、重建索引:DBCC DBREINDEX('t_wf_todo_business')
三、再来分析:DBCC showcontig('t_wf_todo_business')
DBCC SHOWCONTIG 正在扫描 't_wf_todo_business' 表...
表: 't_wf_todo_business' (1652200936);索引 ID: 1,数据库 ID: 7
已执行 TABLE 级别的扫描。
- 扫描页数................................: 804
- 扫描区数..............................: 105
- 区切换次数..............................: 104
- 每个区的平均页数........................: 7.7
- 扫描密度 [最佳计数:实际计数].......: 96.19% [101:105]
- 逻辑扫描碎片 ..................: 0.87%
- 区扫描碎片 ..................: 98.10%
- 每页的平均可用字节数........................: 221.3
- 平均页密度(满).....................: 97.27%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
嗯嗯,发现扫描页数、区切换次数、扫描密度 [最佳计数:实际计数]、逻辑扫描碎片等指标都有大幅度好转。
在生产环境上也执行了一遍,再打开页面,发现一切正常了……
SQLServer2005重建索引的更多相关文章
- SQLServer2005重建索引前后对比【转】
在做维护项目的时,我们经常会遇到索引维护的问题,通过语句,我们就可以判断某个表的索引是否需要重建. 执行一下语句:先分析表的索引 分析表的索引建立情况:DBCC showcontig('Table') ...
- 重建索引提高SQL Server性能
大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要进行表格扫描读取表中的每一个记录才能找到索要的数据.索引可以分为簇索引和非簇索引,簇索引通过重排表中的数 ...
- DBCC DBREINDEX重建索引提高SQL Server性能
大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要进行表格扫描读取表中的每一个记录才能找到索要的数据.索引可以分为簇索引和非簇索引,簇索引通过重排表中的数 ...
- SQL Server 2012 批量重建索引
关于索引的概念可以看看宋大牛的博客 T-SQL查询高级—SQL Server索引中的碎片和填充因子 整个数据库的索引很多,索引碎片多了,不可能一个个的去重建,都是重复性的工作,所以索性写了个存储过程, ...
- SQL Server重建索引计划
每周日2点进行”一致性检查“ 每周六1点进行”重建索引“,重建索引会自动完成更新统计信息操作
- SQL Server通过整理索引碎片和重建索引提高速度
本文章转载:http://database.51cto.com/art/201108/282408.htm SQL Server数据库中,当索引碎片太多时,就会拖慢数据库查询的速度.这时我们可以通过整 ...
- 11G在线重建索引
SQL> select count(*) from test_idx; COUNT(*) ---------- 19087751 SQL> select segment_name,segm ...
- Oracle 重建索引脚本
该指数是一个有力的武器,以提高数据库的查询性能. 没有索引,喜欢同样的标签库没有书籍,找书,他们想预订比登天还难.中,尤其是在批量的DML的情形下会产生对应的碎片.以及B树高度会发生对应变化.因此能够 ...
- MSSQL Rebuild(重建)索引
MSSQL Rebuild(重建)索引 前的项目是做数据库的归档,在每次archive后都需要对原数据库的索引进行rebuild,以减少索引碎片,于是乎就自己写了一段sql: DECLARE @tab ...
随机推荐
- BZOJ 1007 [HNOI2008]水平可见直线 (栈)
1007: [HNOI2008]水平可见直线 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 7940 Solved: 3030[Submit][Sta ...
- python正则表达式转义注意事项
无论哪种语言,在使用正则表达式的时候都避免不了一个问题,就是在匹配元字符的时候,需要对元字符进行转义,让 正则表达式引擎将其当做普通字符来匹配.本文主要以python为例,说明一下转义中需要注意的问题 ...
- (连通图 模板题 无向图求桥)Critical Links -- UVA -- 796
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- HDU6023 Automatic Judge 2017-05-07 18:30 73人阅读 评论(0) 收藏
Automatic Judge Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others ...
- 转:getContextPath、getServletPath、getRequestURI的区别
假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果 ...
- java递归和反向递归
1. 递归查询树tree结构有两种做法: 第一种,递归查询数据库结构, 第二种,一次性将数据库表中的所有数据查出来,然后再递归查出来的list集合, 第一种做法适合数据量较少的tree结构,因为要一直 ...
- const 用法全面总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C++中常用的类型修饰符,常类型是指使用类 ...
- Java电话监听器【精品博客】
模拟拨打电话,接听电话,挂断电话,拨打为空号,等等,这些动作用Java接口监听的方式来完成,主要是为了训练使用接口监听回调: /** * 业务场景一: * [萍萍]--->请输入手机号码进行拨打 ...
- Gitlab搭建安装及使用中遇到的问题。
一.CentOS7安装gitlab-ce 1.下载及安装rpm软件包. 下载RPM包 curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ ...
- Quartz.net 的 FAQ
Quartz 是什么? Quartz 是作业调度系统,可以集成进其他软件系统.这里[作业调度程序]一词是指,在预定义时间执行(或通知)其他组件的系统. Quartz 有什么优点? 灵活,有多种使用方式 ...