a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

關(guān)于SQL執(zhí)行計劃錯誤導(dǎo)致臨時表空間不足的問題

2024-08-29 13:55:23
字體:
供稿:網(wǎng)友

故障現(xiàn)象:臨時表空間不足的問題已經(jīng)報錯過3次,客戶也煩了,前兩次都是同事添加5G的數(shù)據(jù)文件,目前已經(jīng)達到40G,占用臨時表空間主要是distinct 和group by 以及Union all 表數(shù)據(jù)量在200W左右,也不至于把40G的臨時表空間撐爆。

原因分析:既然排序用不了這么多臨時表空間應(yīng)該是別的原因造成。

從包含故障時間段的AWR報告中可以看出這一階段DBtime蠻高的,并且sql execute elapsed time 竟然占到了99.43%,可以斷定是SQL語句引起的。

關(guān)于SQL執(zhí)行計劃錯誤導(dǎo)致臨時表空間不足的問題

確認是以下SQL引起:

select 'A',
d.explanation, --金融機構(gòu)標(biāo)識碼
c.account_no, --交易賬號
to_date(a.batchentrydate, 'yyyy-mm-dd'), --發(fā)生日期
c.currencycode, --幣種
SUM(decode(A.Creditdebit, 'C', a.transactionamount, 0)), --當(dāng)日貸方發(fā)生額
SUM(decode(A.Creditdebit, 'D', a.transactionamount, 0)), --當(dāng)日借方發(fā)生額
case
when C.Currencycode = 'JPY' Then
Round(c.Ccyledgerbalance, 0)
else
c.ccyledgerbalance
End Balance, --賬戶余額
--b.instcode instcode, --系統(tǒng)虛擬機構(gòu)代號
1 datastatus, --前臺對應(yīng)的數(shù)據(jù)狀態(tài)
c.account_no || c.currencycode || '2013-01-04',
to_date('2013-01-04', 'yyyy-mm-dd')
from df_cust C
left join (select distinct ACCOUNTBRANCH,
DESCRIPTION,
MASTERNO,
CURRENCYCODE,
ACCOUNT_NUMBER,
SEQNO,
ACCT_CLASS_CODE,
PRODUCTCODE,
VALUEDT_YYYY,
VALUEDT_MM,
VALUEDT_DD,
BATCHENTRYDATE,
VALUEDT_YYYYMMDD,
NARRATIONPOST,
TRANSACTIONAMOUNT,
CREDITDEBIT,
ACCOUNTBRANCH1,
SEGMENTCODE,
REFERENCENUMBER,
NARRATIONTRAN,
BATCHNUMBER,
GLDEPTID,
ARMCODE,
EXTREFNO,
MAKERID,
CHECKERID,
CHANNELID,
TRANSACTION_AMT_IN_USD,
ACCSHORTNAME,
ARMNAME,
SEGNAME,
TXNCODE,
REVERSALFLAG,
EBBSREFERENCE,
TRANSTYPECODE,
CUSTOMERRATE,
ADVTREASURYFLAG,
VA_FLAG
from df_acmov_today
where Creditdebit in ('C', 'D')) a on a.account_number =
c.account_no
Left Join Da_Mid_Acc_Gl_Dic D On D.Source = A.Accountbranch
Where exists (select 1
from acc.t_base_account b
where b.account = c.account_no
and b.currence_code = c.currencycode)
and a.account_number is not null
and c.account_no like '0%'
group by d.explanation, --金融機構(gòu)標(biāo)識碼
c.account_no, --交易賬號
a.batchentrydate, --發(fā)生日期
c.currencycode, --幣種
C.Ccyledgerbalance--系統(tǒng)機構(gòu)代號

觀察并分析其執(zhí)行計劃,貌似也沒有什么問題,因為df_acmov_today(200W左右數(shù)據(jù))是每天都清空的,沒有索引,全表掃描,nestloops也正常。

但是在執(zhí)行SQL語句時通過腳本監(jiān)控臨時表空間的使用情況,發(fā)現(xiàn)臨時表空間使用率很快就達到了40G左右。又要臨時表空間不足了…

使用dbms_stats.gather_table_stats 分析了下表,然后再去執(zhí)行語句,發(fā)現(xiàn)很快。這下問題清楚了,SQL執(zhí)行計劃錯誤導(dǎo)致的問題。

在對比下先前的SQL執(zhí)行計劃,發(fā)現(xiàn)在執(zhí)行計劃中基數(shù)不對,竟然為1 ,估算的差距太大了。

為什么每天做分析的表(crontab job)最后執(zhí)行計劃卻不對?

最后竟然是這樣:使用crontab 在凌晨2:30對表做分析,但是早上6點。其他任務(wù)對表做了,truncate 和Insert into 從而導(dǎo)致該原因。

最終調(diào)整計劃任務(wù)時間問題完全解決。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 一区二区三区在线观看免费 | 国产亚洲精品精品国产亚洲综合 | 人人爱干 | 欧美黄色a视频 | 97国产精品人人爽人人做 | 久久伊人免费视频 | 久久精品免费观看 | 国产精品久久久久国产a级 一区二区三区在线 | 久久国产一区二区 | 草逼逼| 欧美在线a | 国产视频一二区 | a级性视频| 国产黄色网页 | 国产精品久久久久久久久久久久久久 | 福利网站在线观看 | 中文字幕国产精品 | 91精品在线观看入口 | av四虎| 国产精品毛片一区二区在线看 | 中文字幕第一页在线视频 | 蜜桃视频在线观看www社区 | 久草视频首页 | 日本高清精品 | 国产一区亚洲 | 国产精品视频黄色 | 亚洲天堂免费 | 亚洲视频 欧美视频 | 成年人免费在线视频 | 欧美夜夜骑 | av在线一区二区 | 久久国产精品久久久久久 | 欧美国产三级 | 午夜操操| 国产福利在线免费 | 久久久久亚洲精品国产 | 国产精品一区二区在线观看 | 日韩成人午夜电影 | 一区二区三区在线看 | 一区二区三区播放 | 69黄在线看片免费视频 |