码迷,mamicode.com
首页 > 其他好文 > 详细

前段时间

时间:2014-07-19 21:16:34      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:blog   http   数据   2014   io   问题   

前段时间,同事遇到一个 Sql语句的问题,一个列表分页功能响应在30 s以上,看一下数据,数据库的数据量也不大,相关的一些索引都有,可就是慢。于是分析的sql 语句出来,分页功能,有select 查询和 count 两条语句。 select 查询字段的时候,速度挺快,执行时间在1 s以内 ,但是执行count(1)  的时候,速度巨慢,执行时间增加到10 s。于是可以确定就是count语句导致的。定位到具体的语句之后,查看具体的执行计划。发现select 语句的查询计划和count(*)的查询计划,有一些不同。

Select 语句 的执行计划

 bubuko.com,布布扣

count(*)的查询计划

 bubuko.com,布布扣

以为是索引的问题。于是往各个表里面都加上的相关的索引,情况依旧,于是判断可能不是索引的问题。

然后猜测是IO的问题。

于是在两条sql 前后 加上SET STATISTICS TIME ON; 查看IO情况。

 

Select 语句的IO 输出

 bubuko.com,布布扣

Count(*) 语句的IO 输出

 bubuko.com,布布扣

对比后发现,ChannelBussinessInfo 这个表的逻辑读取,从2028次猛增到了631722 次,

估计就是ChannelBussinessInfo 这个表的问题,于是尝试着给这个表加了一些相关的索引,但是依然没有效果。

 

没有办法了,于是猜测是不是统计信息有问题,因为统计信息会影响 执行计划和io读取。

顺着这个思路,尝试着把ChannelBussinessInfo这个表统计信息更新了,

UPDATE STATISTICS ChannelBussinessInfo;

 

果然,sql 执行时间降低到1秒。IO 读取降到2028次。

bubuko.com,布布扣

前段时间,布布扣,bubuko.com

前段时间

标签:blog   http   数据   2014   io   问题   

原文地址:http://www.cnblogs.com/zhangweizhong/p/3849469.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!