ORACLE sql merge into update where條件位置與效能消耗
環境:
作業系統版本:linux redhat 6.6
資料庫版本:oracle 11.2.0.4
問題描述:今天,實施同事反饋一個很奇怪的問題,就是oracle 資料庫的sql merge用法問題,update語句當把分割槽表的分割槽鍵放在匹配關鍵字
On裡,sql語句執行計劃顯示分割槽鍵能起到分割槽篩選作用:
相反的,如果把update語句where條件裡的分割槽鍵不放在merge匹配關鍵字on裡,merge into update語句沒能正確執行分割槽表分割槽篩選,sql語句
和執行計劃如下:
總結:先說個人對本例子的理解,merge先執行on後邊的條件篩選,進而進行資料匹配,匹配上則執行後續的update更新操作,所以,
將分割槽鍵放在on後邊的條件匹配裡,首先進行區分表分割槽的篩選,避免對分割槽表的全分割槽掃描,從而大大降低merge into update語句
對主機cpu資源的消耗。
作業系統版本:linux redhat 6.6
資料庫版本:oracle 11.2.0.4
問題描述:今天,實施同事反饋一個很奇怪的問題,就是oracle 資料庫的sql merge用法問題,update語句當把分割槽表的分割槽鍵放在匹配關鍵字
On裡,sql語句執行計劃顯示分割槽鍵能起到分割槽篩選作用:
相反的,如果把update語句where條件裡的分割槽鍵不放在merge匹配關鍵字on裡,merge into update語句沒能正確執行分割槽表分割槽篩選,sql語句
和執行計劃如下:
總結:先說個人對本例子的理解,merge先執行on後邊的條件篩選,進而進行資料匹配,匹配上則執行後續的update更新操作,所以,
將分割槽鍵放在on後邊的條件匹配裡,首先進行區分表分割槽的篩選,避免對分割槽表的全分割槽掃描,從而大大降低merge into update語句
對主機cpu資源的消耗。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2151988/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- switch拼接where條件
- 生產資料update沒加where條件(從執行到恢復)
- T-SQL——關於Join on的的連線條件和where的篩選條件的區分SQL
- Oracle SQL效能優化的40條軍規OracleSQL優化
- 關於外連線和where條件
- 儲存過程WHERE條件不生效儲存過程
- PL/SQL 條件SQL
- SQL Server的Merge —— 一步實現 insert,update,deleteSQLServerdelete
- 【SQL】Oracle SQL join on語句and和where使用區別SQLOracle
- 【SQL】SQL中if條件的使用SQL
- mysql,where條件查詢等學習筆記MySql筆記
- Oracle 中定位重要(消耗資源多)的SQLOracleSQL
- Sqlserver、oracle中Merge的使用方法,一個merge語句搞定多個Insert,Update,Delete操作SQLServerOracledelete
- sql merge intoSQL
- Oracle\MS SQL Server Update多表關聯更新OracleSQLServer
- Oracle merge 與 PG新特性 UPSERTOracle
- MYSQL學習筆記6: DQL條件查詢(where)MySql筆記
- Oracle - 執行過的SQL、正在執行的SQL、消耗資源最多的SQLOracleSQL
- mysql 左連結 left join 條件寫在where 後面與 on後面的區別MySql
- 按條件查出兩條記錄後求其位置間隔
- PL/SQL 條件控制語句SQL
- MySQL的where條件字串區分大小寫的問題MySql字串
- Oracle OCP(02):條件和排序Oracle排序
- oracle中的條件語句Oracle
- 一條update SQL語句是如何執行的SQL
- SQL JOIN 中 on 與 where 有何區別SQL
- 動態SQL-條件分頁SQL
- 通過新增條件優化SQL優化SQL
- sql 使用變數帶入in條件SQL變數
- Oracle實驗8--Merge與歸檔Oracle
- Oracle優化案例-view merge與coe_load_sql_profile固定執行計劃(十五)Oracle優化ViewSQL
- 如何分析一條sql的效能SQL
- SQL__UPDATESQL
- 帶你讀 MySQL 原始碼:where 條件怎麼過濾記錄?MySql原始碼
- SQL-基礎語法 - 條件分支SQL
- Oracle 效能調優工具:SQL MonitorOracleSQL
- Oracle中的for update 和 for update nowaitOracleAI
- Oracle 檢視可以DML操作的條件Oracle