SQL查詢效率注意事項小結建站知識
網站推廣優化seo導讀:1建站知識SQL查詢效率注意事項小結,需要的朋友可以參考下。網站建設教程高端網站建設。
一、查詢條件精確,針對有參數傳入情況 二、SQL邏輯執行順序 FROM-->JOIN-->WHERE-->GROUP-->HAVING-->DISTINCT-->ORDER-->TOP 三、橫向 查詢需要的字段 當在SQL語句中連接多個表時,請使用表的別名并把別名前綴于每個Column上這樣一來,就可以減少解析的時間并減少那些由Column歧義引起的語法錯誤 四、少做重復工作 控制同一語句的多次執行,特別是一些基礎數據的多次執行是很多程序員很少注意的 減少多次的數據轉換 杜絕不必要的子查詢和連接表,子查詢在執行計劃一般解釋成外連接,多余的連接表帶來額外的開銷 五、關于零時表#與表變量@ 如果語句很復雜,連接太多,可以考慮用臨時表和表變量分步完成 如果需要多次用到一個大表的同一部分數據,考慮用臨時表和表變量暫存這部分數據 如果需要綜合多個表的數據,形成一個結果,可以考慮用臨時表和表變量分步匯總這多個表的數據 關于臨時表和表變量的選擇,在數據量較多的情況下,臨時表的速度反而更快 SELECT INTO會比CREATE TABLE + INSERT INTO的方法快,但是SELECT INTO會鎖定TEMPDB的系統表SYSOBJECTS、SYSINDEXES、SYSCOLUMNS,在多用戶并發環境下,容易阻塞其他進程 六、子查詢 子查詢可以用IN、NOT IN、EXISTS、NOT EXISTS引入 NOT IN、NOT EXISTS的相關子查詢可以改用LEFT JOIN代替寫法 如果保證子查詢沒有重復 ,IN、EXISTS的相關子查詢可以用INNER JOIN 代替 IN的相關子查詢用EXISTS代替 七、索引 避免對索引字段進行計算操作 SELECT ID網站建設制作 FROM T WHERE NUM/2=100 應改為: SELECT ID FROM T WHERE NUM=100*2 避免在索引字段上使用NOT,<>,!= 避免在索引列上使用IS NULL和IS NOT NULL 避免在索引列上出現數據類型轉換 避免在索引字段上使用函數 避免建立索引的列中使用空值 不要對索引字段進行多字段連接 WHERE FAME+'. '+LNAME='HAIWEI.YANG' 應改為: WHERE FNAME='HAIWEI' AN網站seo優化課程D LNAME='YANG' 八、多表連接 多表連接的時候,連接條件必須寫全,寧可重復,不要缺漏 連接條件盡量使用聚集索引 九、其他 在可以使用UNION ALL的語句里,使用UNION ALL 避免在WHERE子句中使用IN,NOT IN,OR 避免使用耗費資源的操作,帶有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL語句會啟動SQL引擎執行,耗費資源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要執行兩次排序 LIKE ‘%5400%' 這種查詢不會引用索引,而LIKE ‘X5400%'則會引用范圍索引。相關網站建設教程高端網站建設。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-21 ,文章SQL查詢效率注意事項小結建站知識主要講述小結,注意事項,SQL網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_3892.html