表已有数据,150万+,执行一个group by 的查询出现超时,一个一个条件减少尝试,前几个where条件不超时,而在加上最后一个条件时就超时了。

分析表的索引建立情况:DBCC showcontig('Table')

DBCC SHOWCONTIG 正在扫描 'Table'' 表... 
表: 'Table'' (53575229);索引 ID: 1,数据库 ID: 14 
已执行 TABLE 级别的扫描。 
- 扫描页数................................: 228 
- 扫描区数..............................: 52 
- 区切换次数..............................: 225 
- 每个区的平均页数........................: 4.4 
- 扫描密度 [最佳计数:实际计数].......: 12.83% [29:226] 
- 逻辑扫描碎片 ..................: 97.37% 
- 区扫描碎片 ..................: 98.08% 
- 每页的平均可用字节数........................: 2686.3 
- 平均页密度(满).....................: 66.81%

当你发现,扫描密度行,最佳计数和实际计数的比例已经严重失调,逻辑扫描碎片占了非常大的百分比,每页平均可用字节数非常大时,就说明

你的索引需要重新整理一下了。

执行重建索引命令: 
DBCC DBREINDEX('Table'') 
后分析的情况

DBCC SHOWCONTIG 正在扫描 'Table'' 表... 
表: 'Table'' (53575229);索引 ID: 1,数据库 ID: 14 
已执行 TABLE 级别的扫描。 
- 扫描页数................................: 154 
- 扫描区数..............................: 20 
- 区切换次数..............................: 19 
- 每个区的平均页数........................: 7.7 
- 扫描密度 [最佳计数:实际计数].......: 100.00% [20:20] 
- 逻辑扫描碎片 ..................: 0.00% 
- 区扫描碎片 ..................: 55.00% 
- 每页的平均可用字节数........................: 86.8 
- 平均页密度(满).....................: 98.93%

重建索引解决mssql表查询超时的问题的更多相关文章

  1. 技能Get·解决MSSQL Where查询中文数据存在但查不出来

    阅文时长 | 0.33分钟 字数统计 | 294.4字符 主要内容 | 1.引言&背景 2.声明与参考资料 『技能Get·解决MSSQL Where查询中文数据存在但查不出来』 编写人 | S ...

  2. mybatis的sql语句导致索引失效,使得查询超时

    mybaitis书写sql需要特别注意where条件中的语句,否则将会导致索引失效,使得查询总是超时.如下语句会出现导致索引失效的情况: with test1 as (select count(C_F ...

  3. MySQL把一个大表拆分多个表后,如何解决跨表查询效率问题

    大表分表后每个表的结构相同,可以用sql的union 比如a,b表结构相同可以通过union来联接 select * from aunion allselect * from bwhere.... 其 ...

  4. MySql分区后创建索引加速单表查询和连表查询

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/konkon2012/article/de ...

  5. mysql索引对单表查询的影响

    索引被用来快速找出在一个列上用一特定值的行.没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行.表越大,花费时间越多. 如果表对于查询的列有一个索引,MySQL能快速到达 ...

  6. 索引对单表查询的影响(Cost和consistent gets)

    前提:使用system账户登录sql plus. 建表: SQL> create table t2 as select * from dba_objects; 表已创建. 已用时间: 00: 0 ...

  7. mysql索引及多表查询

    注意where,group by ,having,order by, limit 等的顺序. 主表是被绑定的表,子表是添加了外键了的表,注意,在创建表的时候可以添加外键,也可以创建完了以后添加外键. ...

  8. 你的 SQL 还在回表查询吗?快给它安排覆盖索引

    什么是回表查询 小伙伴们可以先看这篇文章了解下什么是聚集索引和辅助索引:Are You OK?主键.聚集索引.辅助索引,简单回顾下,聚集索引的叶子节点包含完整的行数据,而非聚集索引的叶子节点存储的是每 ...

  9. SQL Server 索引碎片产生原理重建索引和重新组织索引

    数据库存储本身是无序的,建立了聚集索引,会按照聚集索引物理顺序存入硬盘.既键值的逻辑顺序决定了表中相应行的物理顺序 多数情况下,数据库读取频率远高于写入频率,索引的存在 为了读取速度牺牲写入速度 页 ...

随机推荐

  1. [20171121]rman backup as copy 2.txt

    [20171121]rman backup as copy 2.txt --//昨天测试backup as copy ,备份时备份文件的文件头什么时候更新.是最后完成后还是顺序写入备份文件.--//我 ...

  2. Javascript 高级程序设计--总结【一】

    文档模式 混杂模式 标准模式 js 数据类型 Undefined Null  看做是一种空对象的引用 Boolean Number String Object typeof 返回类型 "un ...

  3. python TCP socket套接字编程以及注意事项

    TCPServer.py #coding:utf-8 import socket #s 等待链接 #c 实时通讯 s = socket.socket(socket.AF_INET,socket.SOC ...

  4. Python-数学篇之计算方法的目录:

    目录: 1.出本专题的初衷: 2.参考计算方法的书籍: 3.具体算法的实现: (一)出本专题的初衷: 在我们机械专业的大二上学期课程中,能与计算机沾上边的科目就数<计算方法>了.简化为&q ...

  5. SAP SD模块功能构成

  6. [ISE 14.7]Fail to Link the designer导致无法仿真问题

    一.当前配置 操作系统:WIN 8.1 64位 软件:Xilinx ISE 14.7 二.解决方法 首先,似乎64位的binary都有些问题,所以先把ISE Design Suite 14.7这个快捷 ...

  7. java注释讲解

    注释简单的来说就是一种说明,不能被当成执行语句执行.做为一名程序员,但我们在写代码时是顺着思路写下去的.写代码好比就是在做题.当你在做的时候你脑海时的思路很清晰,会想到用一些特殊的方法来解决当前的问题 ...

  8. PostgreSQL9.6+PostGIS2.3学习笔记(一)导入shp文件

    一. 建库以及准备工作:(使用pgAdmin4直接建库) 打开pgAdmin4,如下图所示create–>Database 输入database的名字,如下图,输入完成即可选择save进行保存. ...

  9. Java中一个线程只有六个状态。至于阻塞、可运行、挂起状态都是人们为了便于理解,自己加上去的。

    java中,线程的状态使用一个枚举类型来描述的.这个枚举一共有6个值: NEW(新建).RUNNABLE(运行).BLOCKED(锁池).TIMED_WAITING(定时等待).WAITING(等待) ...

  10. A - Dogs and Cages HDU - 6243(组合数学)

    题意:在1—n的数字,放入编号为1—n的框中,每个框只放一个数字,问数字与所放的框的编号不同的个数的期望值. 思路:在1—n中任选一个数字,设为k 那么 k 排到非k编号的框中的方案数为 n!-(n- ...