一個SQL語句的最佳化(sqlserver)

來源:互聯網
上載者:User

標籤:最佳化   inner   語句   nio   rom   class   ike   between   最大的   

最早的寫法:

WITH T AS(SELECT case when Col1 IS NULL OR Col1=N‘‘ then Col2 else Col1 end as Code,case when Col1 IS NULL OR Col1=N‘‘ then 1 else 0 end as Flag FROM YM  WHERE Col_076 BETWEEN ‘2018-07-25‘ AND ‘2018-08-03‘ AND Col_478=N‘xx‘ AND Col_346 LIKE N‘%dd%‘),D AS (SELECT Code,province,city  FROM Adds)SELECT province AS 省,city as 市,COUNT(1) 票數 FROM (SELECT A.DR_250 as province,A.DR_251 as city FROM T INNER JOIN TB AS A ON A.DR_203=T.Code WHERE T.Flag=0 UNION ALL SELECT D.province,D.city FROM T INNER JOIN D ON D.Code=T.Code WHERE T.Flag=1 UNION ALL SELECT ‘‘ AS province,‘‘ AS city FROM T WHERE Code IS NULL OR Code=N‘‘) AS S GROUP BY province,city;

 

最新的寫法:

SELECT case when Col1 IS NULL OR Col1=N‘‘ then Col2 else Col1 end as Code,case when Col1 IS NULL OR Col1=N‘‘ then 1 else 0 end as Flag into #T FROM YM WHERE Col_076 BETWEEN ‘2018-07-25‘ AND ‘2018-08-03‘ AND Col_478=N‘xx‘ AND Col_346 LIKE N‘%dd%‘;SELECT Code,province,city into #D  FROM Adds;SELECT province AS 省,city as 市,COUNT(1) 票數 FROM (SELECT A.DR_250 as province,A.DR_251 as city FROM #T INNER JOIN TB AS A ON A.DR_203=#T.Code WHERE #T.Flag=0UNION ALLSELECT #D.province,#D.city FROM #T INNER JOIN #D ON #D.Code=#T.Code WHERE #T.Flag=1UNION ALLSELECT ‘‘ AS province,‘‘ AS city FROM #T WHERE Code IS NULL OR Code=N‘‘) AS S GROUP BY province,city;DROP table #T;DROP table #D;

新的寫法比原始寫法效能高出太多(原語句執行會逾時),最大的原因是對with語句理解有誤!!!

一個SQL語句的最佳化(sqlserver)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.