當前位置:成語大全網 - 新華字典 - 要提高SQL查詢效率where語句條件的先後次序應如何寫

要提高SQL查詢效率where語句條件的先後次序應如何寫

我們要做到不但會寫SQL,還要做到寫出性能優良的SQL語句。(1)選擇最有效率的表名順序(只在基於規則的優化器中有效): Oracle的解析器按照從右到左的順序處理FROM子句中的表名,FROM子句中寫在最後的表(基礎表 driving table)將被最先處理,在FROM子句中包含多個表的情況下,妳必須選擇記錄條數最少的表作為基礎表。如果有3個以上的表連接查詢, 那就需要選擇交叉表(intersection table)作為基礎表, 交叉表是指那個被其他表所引用的表。(2)WHERE子句中的連接順序: Oracle采用自下而上的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾。 中.國.站長站(3)SELECT子句中避免使用?*?:Oracle在解析的過程中, 會將?*?依次轉換成所有的列名, 這個工作是通過查詢數據字典完成的, 這意味著將耗費更多的時間。(4)減少訪問數據庫的次數:Oracle在內部執行了許多工作: 解析SQL語句, 估算索引的利用率, 綁定變量 , 讀數據塊等。(5)在SQL*Plus , SQL*Forms和Pro*C中重新設置ARRAYSIZE參數, 可以增加每次數據庫訪問的檢索數據量 ,建議值為200。(6)使用DECODE函數來減少處理時間: 使用DECODE函數可以避免重復掃描相同記錄或重復連接相同的表。 要提高SQL查詢效率where語句條件的先後次序應如何寫

標簽:最大連接記錄tablecolor多個解析引用arrays