加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server性能调优杂记(四)

发布时间:2016-01-17 12:37:39 所属栏目:MsSql教程 来源:网络整理
导读:系统上线完,性能问题往往是Warranty和后期维护的一个重要问题。 这些天,客户又来反映, 有一个查询非常慢。这个查询用的是主关键字查询,由于主键是聚集索引
系统上线完,性能问题往往是Warranty和后期维护的一个重要问题。

这些天,客户又来反映, 有一个查询非常慢。这个查询用的是主关键字查询,由于主键是聚集索引,而且又做了碎片处理。应该是 非常快。但是看到的现象就是很慢(10秒左右,最差有18秒之多)。排除了硬件、资源锁定等问题,还不 用到达Database端的Tunning级别。基本判断和SQL文有关,要细看SQL文的执行计划。

首先把SQL 文找出来

SELECT   a.AWB_NO,
        a.BWB_NO,
         a.CWB_NO,
        a.ORIGIN,
        a.DEST,
         a.MODIFY_ON,
        a.CREATED_ON,
         a.CONSIGNOR_CUSTOMER_CODE,
        a.CONSIGNOR_CODE, 
         a.CONSIGNOR_NAME,
        a.CONSIGNEE_NAME,
         a.CWB_STATUS,
        a.CWB_TYPE,
        ISNULL(a.PCS, 0) AS PCS,
        a.BWBLIST,
        b.PWEIGHT  
  FROM     TB_CWB AS a
  LEFT JOIN  TB_CWBWEIGHT AS b
  ON      a.CWB_NO = b.CWB_NO
  AND      b.AVAILABLE = 'Y' 
  WHERE    a.AVAILABLE = 'Y'
  AND      (a.CWB_NO = @CWB_NO OR
                                      (( @CWB_NO IS NULL)
  AND       (a.AWB_NO = @AWB_NO OR @AWB_NO IS NULL)
  AND      (a.BWB_NO = @BWB_NO OR @BWB_NO IS NULL)
  AND      (a.IE_TYPE = @IE_TYPE OR @IE_TYPE IS NULL)
  AND      (a.CREATED_ON >= @DateFrom OR @DateFrom IS NULL)
   AND      (a.CREATED_ON <= @DateTo OR @DateTo IS NULL)
  AND       (a.PAYMENT = @PAYMENT OR @PAYMENT IS NULL)
  AND      (a.ORIGIN = @ORIGIN OR @ORIGIN IS NULL)
  AND      (a.DEST = @DEST OR @DEST IS NULL)
  AND       (a.CONSIGNOR_CUSTOMER_CODE = @CONSIGNOR_CUSTOMER_CODE OR @CONSIGNOR_CUSTOMER_CODE IS NULL)
  AND      (a.CONSIGNOR_NAME LIKE '%' + @CONSIGNOR_NAME + '% ' OR @CONSIGNOR_NAME IS NULL)
  AND      (a.CONSIGNEE_NAME LIKE '%' + @CONSIGNEE_NAME + '%' OR @CONSIGNEE_NAME IS NULL)
  AND       (a.CWB_TYPE = @CWB_TYPE OR @CWB_TYPE IS NULL)))

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读