首页 > 开发 > 综合 > 正文

利用查询提示优化SQL

2024-07-21 02:46:29
字体:
来源:转载
供稿:网友
利用查询提示优化SQL

数据库环境:SQL SERVER 2005

我们来看一下SQL语句及对应的数据量

SELECT  COUNT(*)FROM    cinvout_02 aWHERE   ( a.dept_id IN ( SELECT RTRIM(dept_id)                         FROM   ctlm2320                         WHERE  user1_id = '000008'                                AND zone_id = '' )          OR a.dept_id = ''          OR ( a.dept_id IN ( SELECT    RTRIM(b.dept_id)                              FROM      ctlm2320 a ,                                        ctlm1003 b                              WHERE     a.zone_id = b.zone_id                                        AND a.user1_id = '000008'                                        AND a.zone_id <> '' ) )        )        AND a.out_time >= '2014-07-01'        AND a.out_time <= '2014-07-12'        AND a.sts_flag = 'S'---------------------数据量-------------------------       SELECT  COUNT(*)FROM    cinvout_02 aWHERE   a.out_time >= '2014-07-01'        AND a.out_time <= '2014-07-12'        AND a.sts_flag = 'S'--214555        SELECT  COUNT(*)FROM    ctlm2320WHERE   user1_id = '000008'        AND zone_id = ''--0        SELECT  COUNT(*)FROM    ctlm2320 a ,        ctlm1003 bWHERE   a.zone_id = b.zone_id        AND a.user1_id = '000008'        AND a.zone_id <> ''--3768

数据量不是很大,cinvout_02也走了索引查找,而且返回的数据才有214317行。按理说应该不会太慢,

可是,真实情况是,整条SQL要跑4分多钟才全部出结果。

光靠猜是得不出答案的,我们通过执行计划来分析为什么会出现这种情况。

上一篇:视图中创建索引

下一篇:锁升级

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表