SQL Server海量數據如何提高查詢效率幾點建議


0.索引

 

1.當你想在SELECT子句中列出所有的COLUMN時,使用動態SQL列引用 ‘*’ 是一個方便的方法。不幸的是,這是一個非常低效的方法。 實際上,在解析的過程中會將‘*’ 依次轉換成所有的列名, 這個工作是通過查詢數據字典完成的,這意味着將耗費更多的時間。

2.增加內存、另外硬盤的讀寫速度如何?這都是影響查詢效率因素。如果磁盤讀寫速度比較慢的話,對於磁盤的I/O操作會存在的瓶頸的。

3.數據量比較大建議做一下分區處理。把大的表分成幾個表,這樣的查詢效率會大大提高的。

4.數據庫采用自下而上的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾。

 

例如:
(低效,執行時間156.3秒)

SELECTFROM EMP E
WHERE SAL > 50000 AND JOB = ‘MANAGER’AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO);

 

(高效,執行時間10.6秒)

SELECTFROM EMP E
WHERE 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO) AND SAL > 50000 AND JOB = ‘MANAGER’;

 


————————————————
版權聲明:本文為CSDN博主「風神修羅使」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/WuLex/article/details/51694872


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM