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 ...
随机推荐
- jdk更换不起作用问题
本人前面装了jdk8,现在准备用jdk7,我安装好了jdk7:把系统变量中的JAVA_HOME 改为 D:\java\jdk\jdk7\jdk1.7.0_67,Path 下添加如下变量,记得加;和上一 ...
- (回文串 Manacher )Girls' research -- hdu -- 3294
http://acm.hdu.edu.cn/showproblem.php?pid=3294 Girls' research Time Limit:1000MS Memory Limit:32 ...
- POJ3045 Cow Acrobats 2017-05-11 18:06 31人阅读 评论(0) 收藏
Cow Acrobats Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4998 Accepted: 1892 Desc ...
- java线程一
我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread).线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可能和其他线程共享一些资源,比 ...
- 老刘 Yii2 源码学习笔记之 Action 类
Action 的概述 InlineAction 就是内联动作,所谓的内联动作就是放到controller 里面的 actionXXX 这种 Action.customAction 就是独立动作,就是直 ...
- What if you are involved in an automobile accident in the US
What if you are involved in an automobile accident in the US With increasing Chinese tourists and vi ...
- asp.net MVC 统计在线人数功能实现
今天开发一个设计一个统计在线人数的统计.实现方式是在MVC 中,用户次执行一个Action请求完成后,向数据表中插入一条用户心跳记录,统计在线人数则是根据该记录,30分钟内有记录的用户则为在线状态. ...
- 如何用c#本地代码实现与Webbrowser中的JavaScript交互
关键词:.Net,Webbrowser,JavaScript,communication 参考: 链接:msdn实例-简单的相互调用 代码: [PermissionSet(SecurityAction ...
- map函数和reduce函数、filter函数的区别
①从参数方面来讲:map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数.reduce()函数 ...
- day103 跨域请求 与频率访问限制.
目录 一.跨域请求 二.频率访问限制 一 .同一个域下的ajax请求访问 url文件 from django.conf.urls import url from django.contrib imp ...