學習oracle查詢優化的記錄

2021-06-17 00:30:44 字數 751 閱讀 6969

1:新增注釋

2:減少資料庫連線

3:共享sql語句(使用佔位符)

4:通過索引訪問

5:選擇最有效率的表名(oracle解析器按照從右到左的順序處理from後的表名。最後出現的表資料越少效率越快)

如果有3個以上的表連線查詢,那就需要選擇交叉表(intersection table)作為基礎表,交叉表是指那個被其他表所引用的表。

7、select子句中避免使用 『 * 』

當你想在select子句中列出所有的column時,使用動態sql列引用『*』是乙個方便的方法。不幸的是,這是乙個非常低效的方法。實際上,oracle在解析的過程中,

會將『*』依次轉換成所有的列名,這個工作是通過查詢資料字典完成的,這意味著將耗費更多的時間

minus 返回第二個查詢返回的行減去第乙個查詢返回的行

intersect 返回兩個查詢共有行

translate('123','123','456')將引數1對應位置字元按照引數2轉換成引數3,

不要再索引上使用not,is null,計算

層次查詢

start with --層次根

connect by prior--層次關聯關係

列:select empleid,name,managerid

from users

start with empleid=1000

connect by prior empleid=managerid

rollup增加分組統計行

oracle查詢學習記錄

alter user scott account unlock alter user scott identified by scott select e.empno,e.ename,d.dname from emp e join dept d on e.deptno d.deptno 內連線 se...

oracle查詢優化

1 in 操作符 用 in 寫出來的 sql的優點是比較容易寫及清晰易懂,這比較適合現代軟體開發的風格。但是用 in 的 sql 效能總是比較低的,從 oracle 執行的步驟來分析用 in 的 sql 與不用 in 的 sql有以下區別 oracle 試圖將其轉換成多個表的連線,如果轉換不成功則先...

oracle查詢優化

oracle的執行順序where子句中的條件是總是優先於其他條件的,並且越靠右越優先,包括group by order by等子句。根據執行順序我們可以總結出許多可以優化查詢的規律 1 將能最快篩選出最少條目的條件放在where條件最右側 2 not in 和 not exist的區別 not ex...