sql中使用函式導致cost高
問題SQL:
SELECT DJXH,
GDSLX_DM,
SSDABH,
NSRSBH,
NSRMC,
KZZTDJLX_DM,
DJZCLX_DM,
FDDBRXM,
FDDBRSFZJLX_DM,
SCJYDZ,
FDDBRSFZJHM,
SCJYDZXZQHSZ_DM,
NSRZT_DM,
HY_DM,
ZCDZ,
ZCDZXZQHSZ_DM,
JDXZ_DM,
DWLSGX_DM,
GDGHLX_DM,
DJJG_DM,
DJRQ,
ZZJG_DM,
KQCCSZTDJBZ,
ZGSWJ_DM,
ZGSWSKFJ_DM,
SSGLY_DM
FROM hx_dj.DJ_DDRXX DDRXX
WHERE FDDBRSFZJLX_DM = '201'
AND REGEXP_replace(FDDBRSFZJHM, '[^a-zA-Z0-9]', '') = '362427197708217318'
AND DDRXX.YXBZ = 'Y';
故障原因:已存在(FDDBRSFZJLX_DM,FDDBRSFZJHM)組合索引,開發人員將FDDBRSFZJHM改成 REGEXP_replace(FDDBRSFZJHM, '[^a-zA-Z0-9]', '') 走以上索引後消耗非常高,導致系統資源 緊張。
故障處理:臨時新增(FDDBRSFZJLX_DM,REGEXP_replace(FDDBRSFZJHM, '[^a-zA-Z0-9]', '')) 函式索引。通知開發人員修改SQL。
建立索引時出現ORA-01450: maximum key length (3215) exceeded錯誤,去掉online引數後正常建立!
SELECT DJXH,
GDSLX_DM,
SSDABH,
NSRSBH,
NSRMC,
KZZTDJLX_DM,
DJZCLX_DM,
FDDBRXM,
FDDBRSFZJLX_DM,
SCJYDZ,
FDDBRSFZJHM,
SCJYDZXZQHSZ_DM,
NSRZT_DM,
HY_DM,
ZCDZ,
ZCDZXZQHSZ_DM,
JDXZ_DM,
DWLSGX_DM,
GDGHLX_DM,
DJJG_DM,
DJRQ,
ZZJG_DM,
KQCCSZTDJBZ,
ZGSWJ_DM,
ZGSWSKFJ_DM,
SSGLY_DM
FROM hx_dj.DJ_DDRXX DDRXX
WHERE FDDBRSFZJLX_DM = '201'
AND REGEXP_replace(FDDBRSFZJHM, '[^a-zA-Z0-9]', '') = '362427197708217318'
AND DDRXX.YXBZ = 'Y';
故障原因:已存在(FDDBRSFZJLX_DM,FDDBRSFZJHM)組合索引,開發人員將FDDBRSFZJHM改成 REGEXP_replace(FDDBRSFZJHM, '[^a-zA-Z0-9]', '') 走以上索引後消耗非常高,導致系統資源 緊張。
故障處理:臨時新增(FDDBRSFZJLX_DM,REGEXP_replace(FDDBRSFZJHM, '[^a-zA-Z0-9]', '')) 函式索引。通知開發人員修改SQL。
建立索引時出現ORA-01450: maximum key length (3215) exceeded錯誤,去掉online引數後正常建立!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29863023/viewspace-1670600/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python中函式的高階使用Python函式
- sql中使用函式導致explain plan for和set autotrace得到執行計劃不準確SQL函式AI
- SQL中的替換函式replace()使用SQL函式
- SQL-Server中datepart函式的使用SQLServer函式
- 【Mysql】JDB2導致磁碟io使用率高 導致mysql延遲過高MySqlDB2
- Spark Sql 函式使用SparkSQL函式
- 高階函式的使用函式
- Sql 中的 left 函式、right 函式SQL函式
- SQL中的cast()函式SQLAST函式
- Sql中的getDate()函式SQL函式
- SQL CHARINDEX函式的使用SQLIndex函式
- sql CHARINDEX,REPLACE函式使用SQLIndex函式
- 效能分析(5)- 軟中斷導致 CPU 使用率過高的案例
- 邏輯迴歸損失函式(cost function)邏輯迴歸函式Function
- CHAR型別函式索引導致結果錯誤型別函式索引
- 利用函式索引,最佳化因cluster factor過高導致不走索引一例函式索引
- 避免SQL中的函式呼叫SQL函式
- 高效的SQL(隱式轉換導致不走索引)SQL索引
- 簡單介紹SQL中ISNULL函式使用方法SQLNull函式
- LINQ to SQL 中可以使用的LINQ函式SQL函式
- 理解 JavaScript 中的高階函式JavaScript函式
- Kotlin中的高階函式Kotlin函式
- 避免在WHERE條件中,在索引列上進行計算或使用函式,因為這將導致索引不被使用索引函式
- Kotlin——高階篇(二):高階函式詳解與標準的高階函式使用Kotlin函式
- SQL優化中索引列使用函式之靈異事件SQL優化索引函式事件
- SQL中的單記錄函式SQL函式
- SQL函式之日期函式SQL函式
- SQL函式SQL函式
- 【SQL】19 SQL函式SQL函式
- AWK高階之內部函式使用函式
- 【函式】Oracle中聚合函式rank()使用方法函式Oracle
- 高階函式函式
- 高水位線下空閒塊過多導致的SQL效能問題SQL
- SQL最佳化中索引列使用函式之靈異事件SQL索引函式事件
- 轉:類似SQL中的split函式SQL函式
- Kotlin 函式6 - 高階函式Kotlin函式
- Python中的高階函式簡介Python函式
- 如何使用函式指標呼叫類中的函式和普通函式函式指標