原创 直方圖缺失的優化案例

背景:某監控系統一條SQL在老環境執行3s,遷移到新環境執行了15分鐘不出結果,報錯ORA-01555 SQL語句如下: select ..... from SMMMMVIEW.POS_TTTTT cc, SMM

原创 dblink遠端數據庫統計信息過期

某CRM數據庫系統跑批一條SQL執行了24小時  還沒執行完 問題SQL已經定位到,SQL中表信息以及執行計劃如下: SELECT t.CRM_DT, ...... ...... SUM(nvl

原创 使用HASH代替NEST LOOP

某系統有一條SQL 執行了十幾個小時沒出結果~ 【SQL複雜  案例簡單  已經精通oracle連接方式的可自行繞道別的案例~】 SQL語句和執行計劃如下: select tt.org_type, tt.prod_code

原创 選擇最合適的連接方式

聲明:本例十分簡單,只適合新手DBA走馬,老司機請自覺繞道~ 背景:跑批中一條SQL“卡住”了三個小時..... SQL以及執行計劃如下: SELECT A.* FROM SSS_DDD_ACCT_DDD_DDD a WHERE e

原创 bitmap index的優化案例

某系統存儲過程執行不過去,通過查詢長時間ACTIVE的SESSION定位到如下語句: UPDATE AAA_BBBBBBBBB_ALM T SET KEY_BS='1111111111' WHERE T.PARTITION_KEY =

原创 union和or互換

今天,某數據倉庫系統的開發發來一條SQL,說跑了3個小時,嚴重拖慢了整個的跑批流程。   INSERT INTO ETL.RRR_SSSS_GGGG_INTERNAL_PTB (RPT_ORG_ID, ITEM_CD,

原创 分頁語句優化案例

某數倉系統,一條SQL語句執行了很長時間,SQL和執行計劃如下 select c.data_dt, c.cust_id, c.cust_mgr_id, c.org_id, c.ou

原创 序列設計之enq SQ - contention處理一則

某系統負責人反應系統很慢,收集持續報警短信。 查看數據庫當前活動回話等待事件爲enq: SQ – contention,當前活動session 200+  enq: SQ – contention是sequence相關的鎖,在內存上緩存(

原创 數據倉庫設計的隱患-標量子查詢

首先,來理解一下標量子查詢:處於select之後from之前的子查詢稱爲標量子查詢 .比如:select  num1,cal,(select name from t2 where t2.id = t1.id)from t1;舉這個例子只是

原创 一條hang住數據庫的SQL的分析

2017年某一天某個系統接口人找到我說 有個存儲過程跑不過去,嘗試了幾次均報錯:   ORA-12801:並行查詢服務器p001 ,instance xx中發出錯誤信號 ORA-04030:在嘗試分配16328字節(xxxx)時進程內存

原创 Exadata遷移到雙節點RAC性能下降

背景:某個數據抽取系統(OLAP)一個跑批存儲過程在老環境(40分鐘)遷到 新環境(140分鐘) 老環境是一體機,新環境是雙節點RAC.其實不算是遷移,可以看作倆系統同時存在 一條SQL分別在兩個系統上跑,性能差異很大 SQL語句如下:

原创 SQL刑偵科推理題

跟個風  推一下~ WITH T AS ( SELECT 'A' AS ID FROM DUAL UNION ALL SELECT 'B' AS ID FROM DUAL UNION ALL SELECT 'C' AS ID FROM

原创 利用rowid完成自連接的表更新

開發人員反饋有一條業務SQL很難實現,具體要實現如下功能: 表數據如下圖,用name字段去更新fl字段,得到結果如右圖所示:    =======>    DROP TABLE TEST_W; create table test_W (

原创 關注業務-把優化做到極致

SELECT .. .. .. FROM AWP.TTT_TTT_TRANSACTION_2018 INCT LEFT JOIN AWP.TTT_TTT_TELM TELM ON INCT.TELLER_NO = TEL

原创 一波三折:UPDATE語句改寫優化

最近趕上第四季度上版。很多套系統遷移測試,太忙,抽空帶徒弟去優化了一條UPDATE改寫的SQL 具體的故障分析報告是她寫的,如下:       2018年10月份的一天,歷史報表系統的開發人員讓我幫忙優化一個每天執行報錯ORA-01555