国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL查詢效率注意事項(xiàng)小結(jié)

2024-08-31 00:45:16
字體:
供稿:網(wǎng)友
一、查詢條件精確,針對(duì)有參數(shù)傳入情況

二、SQL邏輯執(zhí)行順序

  FROM-->JOIN-->WHERE-->GROUP-->HAVING-->DISTINCT-->ORDER-->TOP

三、橫向

查詢需要的字段
當(dāng)在SQL語句中連接多個(gè)表時(shí),請(qǐng)使用表的別名并把別名前綴于每個(gè)Column上這樣一來,就可以減少解析的時(shí)間并減少那些由Column歧義引起的語法錯(cuò)誤
四、少做重復(fù)工作

控制同一語句的多次執(zhí)行,特別是一些基礎(chǔ)數(shù)據(jù)的多次執(zhí)行是很多程序員很少注意的
減少多次的數(shù)據(jù)轉(zhuǎn)換
杜絕不必要的子查詢和連接表,子查詢?cè)趫?zhí)行計(jì)劃一般解釋成外連接,多余的連接表帶來額外的開銷
五、關(guān)于零時(shí)表#與表變量@

如果語句很復(fù)雜,連接太多,可以考慮用臨時(shí)表和表變量分步完成
如果需要多次用到一個(gè)大表的同一部分?jǐn)?shù)據(jù),考慮用臨時(shí)表和表變量暫存這部分?jǐn)?shù)據(jù)
如果需要綜合多個(gè)表的數(shù)據(jù),形成一個(gè)結(jié)果,可以考慮用臨時(shí)表和表變量分步匯總這多個(gè)表的數(shù)據(jù)
關(guān)于臨時(shí)表和表變量的選擇,在數(shù)據(jù)量較多的情況下,臨時(shí)表的速度反而更快
SELECT INTO會(huì)比CREATE TABLE + INSERT INTO的方法快,但是SELECT INTO會(huì)鎖定TEMPDB的系統(tǒng)表SYSOBJECTS、SYSINDEXES、SYSCOLUMNS,在多用戶并發(fā)環(huán)境下,容易阻塞其他進(jìn)程
六、子查詢

子查詢可以用IN、NOT IN、EXISTS、NOT EXISTS引入
NOT IN、NOT EXISTS的相關(guān)子查詢可以改用LEFT JOIN代替寫法
如果保證子查詢沒有重復(fù) ,IN、EXISTS的相關(guān)子查詢可以用INNER JOIN 代替
IN的相關(guān)子查詢用EXISTS代替
七、索引

避免對(duì)索引字段進(jìn)行計(jì)算操作
SELECT ID FROM T WHERE NUM/2=100
應(yīng)改為:
SELECT ID FROM T WHERE NUM=100*2
避免在索引字段上使用NOT,<>,!=
避免在索引列上使用IS NULL和IS NOT NULL
避免在索引列上出現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換
避免在索引字段上使用函數(shù)
避免建立索引的列中使用空值
不要對(duì)索引字段進(jìn)行多字段連接
WHERE FAME+'. '+LNAME='HAIWEI.YANG'
應(yīng)改為:
WHERE FNAME='HAIWEI' AND LNAME='YANG'
八、多表連接

多表連接的時(shí)候,連接條件必須寫全,寧可重復(fù),不要缺漏
連接條件盡量使用聚集索引
九、其他

在可以使用UNION ALL的語句里,使用UNION ALL
避免在WHERE子句中使用IN,NOT IN,OR
避免使用耗費(fèi)資源的操作,帶有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL語句會(huì)啟動(dòng)SQL引擎執(zhí)行,耗費(fèi)資源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要執(zhí)行兩次排序
LIKE ‘%5400%' 這種查詢不會(huì)引用索引,而LIKE ‘X5400%'則會(huì)引用范圍索引。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 上蔡县| 西平县| 特克斯县| 原平市| 信宜市| 巴林右旗| 清新县| 温宿县| 康马县| 长沙市| 柳林县| 江西省| 辽宁省| 荥阳市| 石嘴山市| 乾安县| 勐海县| 扎囊县| 循化| 班玛县| 光山县| 肥城市| 湖北省| 五大连池市| 房产| 高唐县| 五常市| 康平县| 来凤县| 札达县| 长丰县| 清河县| 香港| 茶陵县| 滦南县| 集安市| 信阳市| 西峡县| 松溪县| 峨边| 土默特左旗|