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 ...
随机推荐
- 揭开AutoRun功能的神秘面纱
有很多光盘放入光驱就会自动运行,它们是怎么做到的呢?光盘一放入光驱就会自动被执行,主要依靠两个文件,一是光盘上的AutoRun.inf文件,另一个是操作系统本身的系统文件之一的Cdvsd.vxd.Cd ...
- day05(Object,tostring(),equals(),System,Date,SimpleDateFormat,拆装箱,正则表达式)
Object类, 是所应类的父类: 拥有自己的方法:常用的 红颜色标记的为常用的方法 toString() 用法:打印对象的地址值 getClass() 获取当前类的字节码文件getName() ...
- C/C++中如何获取数组的长度?
C/C++中如何获取数组的长度? 收藏 C.C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方 ...
- Android:手把手教你打造可缩放移动的ImageView(上)
定义ImageView,实现功能如下: 1.初始化时图片垂直居中显示,拉伸图片宽度至ImageView宽度. 2.使用两根手指放大缩小图片,可设置最大放大倍数,当图片小于ImageView宽度时,在手 ...
- Breaseman算法绘制直线算法公式推导|步骤|程序
Breaseman算法绘制直线算法公式推导|步骤|程序 BreaseMan算法优点: (1)不必计算直线的斜率,因此不用做除法: (2)不用浮点数,只用整数: (3)制作整数的加减乘除,和乘2操作,乘 ...
- Ansible基本命令
Ansible安装完成之后就自带很多命令,其中较常用的有7个: ansible ansible-doc ansible-galaxy ansible-init ansible-playbook ans ...
- 17、docker多机网络通信overlay
理论上来说多台宿主机之间的docker容器之间是无法通讯的,但是多台宿主机之间的docker容器之间是可以通讯的,主要是通过VXLAN技术来实现的. GitHub上对于docker-overl ...
- Chrome For EBS
https://chrome.google.com/webstore/detail/oracle-ebs-r12-enablement/ekkagabmggbmpmncofhgkfigmeldifnc ...
- Quartz.net 的 FAQ
Quartz 是什么? Quartz 是作业调度系统,可以集成进其他软件系统.这里[作业调度程序]一词是指,在预定义时间执行(或通知)其他组件的系统. Quartz 有什么优点? 灵活,有多种使用方式 ...
- spring的事务传播属性
一.Propagation (事务的传播属性) Propagation : key属性确定代理应该给哪个方法增加事务行为.这样的属性最重要的部份是传播行为.有以下选项可供使用:PROPAGATION_ ...