<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • SQL語句優化方法詳細介紹

    時間:2024-08-30 21:43:22 SQL 我要投稿
    • 相關推薦

    SQL語句優化方法詳細介紹

      1. 選擇最有效率的表名順序, FROM子句中寫在最后的表(基礎表 driving table)將被最先處理,在FROM子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎表.汗顏!以前以為dimensional table,都是多條記錄呢,怪不得以前寫的查詢速度這么慢。

      2.Where子句中的連接順序.:

      數據庫采用自下而上的順序解析Where子句,根據這個原理,表之間的連接必須寫在其他Where條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在Where子句的末尾.HAVING最后。這個貌似一直這么寫的,不過那是在SQLSERVER里面的,前面都是用的JOIN

      3.整合簡單,無關聯的數據庫訪問:

      如果你有幾個簡單的數據庫查詢語句,你可以把它們整合到一個查詢中(即使它們之間沒有關系),這個我沒有體會,貌似都是按照業務邏輯把它們分成了一小塊一小塊的呢

      4.盡量縮小子查詢的結果。

      5.用EXISTS替代IN、用NOT EXISTS替代NOT IN。貌似我做項目的時候只在少數基于條件的表連接才會用EXISTS,基本不用IN 和NOT IN。

      6.避免在索引列上使用計算.

      Where子句中,如果索引列是函數的一部分.優化器將不使用索引而使用全表掃描. 7,用>=替代> 這個我也不是特別明白,>是IS NOT?

      8,用UNION替換OR (適用于索引列)

      通常情況下, 用UNION替換Where子句中的OR將會起到較好的效果. 對索引列使用OR將造成全表掃描. 注意, 以上規則只針對多個索引列有效. 如果有column沒有被索引, 查詢效率可能會因為你沒有選擇OR而降低. 在下面的例子中, LOC_ID 和REGION上都建有索引.這個在項目中我是有遇到過的,我寫了個臨時表的函數,其他的SQL需要和臨時表連接起來,因為業務邏輯比較復雜,連接的時候速度很慢,后來把OR都改成了UNION ALL

      9,避免在索引列上使用IS NULL和IS NOT NULL

      10,避免改變索引列的類型

      11. 需要當心的Where子句:

      某些Select 語句中的Where子句不使用索引. 這里有一些例子.

      在下面的例子里, (1)‘!=' 將不使用索引. 記住, 索引只能告訴你什么存在于表中, 而不能告訴你什么不存在于表中. (2) ‘||'是字符連接函數. 就象其他函數那樣, 停用了索引.

      (3) ‘+'是數學函數. 就象其他數學函數那樣, 停用了索引. (4)相同的索引列不能互相比較,這將會啟用全表掃描.

      12. 優化GROUP BY:提高GROUP BY 語句的效率, 可以通過將不需要的記錄在GROUP BY 之前過濾掉.

      13. 避免使用耗費資源的操作:

      帶有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL語句會啟動SQL引擎

      執 行耗費資源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要執行兩次排序. 通常, 帶有UNION, MINUS , INTERSECT的SQL語句都可以用其他方式重寫. 如果你的數據庫的SORT_AREA_SIZE調配得好, 使用UNION , MINUS, INTERSECT也是可以考慮的, 畢竟它們的可讀性很強

      .IN SSMS,If you want to see how much cpu time did one query consumed,you can use the following flow:

      SET STATISTICS IO ON

      set statistics time on

      execute your query

      set statistics time off

      and after this you have to look messages window not results window

    【SQL語句優化方法詳細介紹】相關文章:

    SQL優化大全09-09

    oracle的sql語句01-21

    SQL查詢語句大全10-24

    SQL語句的理解原則10-05

    mysql SQL語句積累參考10-02

    sql語句的各種模糊查詢08-25

    2016最新J2EE中SQL語句自動構造方法08-02

    詳細介紹totolin路由器的設置方法10-19

    用SQLSERVER查詢正在實行的SQL的方法08-31

    Sql Server、Access數據排名的實現方法07-09

    主站蜘蛛池模板: 久久精品一区二区三区中文字幕 | 国产麻豆一精品一AV一免费| A级毛片无码久久精品免费| 日韩精品一区二区午夜成人版| 国产短视频精品一区二区三区| 四虎亚洲国产成人久久精品| 青青草国产精品久久久久| 无码人妻精品一区二区三18禁| 国产乱人伦精品一区二区在线观看 | 国产在线精品福利大全| 99热这里只有精品在线| 伊人久久大香线蕉精品不卡| 国产精品原创巨作?v网站| 国产一区二区精品| 久久精品夜夜夜夜夜久久| 久久精品国产99久久丝袜| 777欧美午夜精品影院| 99久久婷婷免费国产综合精品| 日韩精品久久无码中文字幕| 日韩美女18网站久久精品| 国产精品亚洲欧美大片在线看 | 国产精品美女网站| 日本精品不卡视频| 99re热这里只有精品视频中文字幕| 亚洲国产精品无码久久一区二区| 麻豆国产精品VA在线观看不卡| 国产精品成人免费观看| 青草青草久热精品视频在线网站 | 91精品国产福利在线观看| 99久久99这里只有免费的精品| 国产亚洲精品资源在线26u| 中文字幕精品无码一区二区三区| 欧美人与性动交α欧美精品成人色XXXX视频| 国产成人精品日本亚洲专区| 日韩精品久久久久久| 精品视频第一页| 久久99精品久久久久久| 欧美精品人爱c欧美精品| 影视网欧洲精品| 国产精品videossex白浆| 国产精品国产AV片国产|