婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 關于SQL執行計劃錯誤導致臨時表空間不足的問題

關于SQL執行計劃錯誤導致臨時表空間不足的問題

熱門標簽:美圖秀秀地圖標注 征服眼公司地圖標注 阿爾巴尼亞地圖標注app 百度地圖標注素材 人工智能地圖標注自己能做嗎 外呼線路外顯本地號碼 開封智能外呼系統廠家 word地圖標注方向 征服者火車站地圖標注

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

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

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

通過TOP SQL定位到出問題的SQL

確認是以下SQL引起:

select 'A',
d.explanation, --金融機構標識碼
c.account_no, --交易賬號
to_date(a.batchentrydate, 'yyyy-mm-dd'), --發生日期
c.currencycode, --幣種
SUM(decode(A.Creditdebit, 'C', a.transactionamount, 0)), --當日貸方發生額
SUM(decode(A.Creditdebit, 'D', a.transactionamount, 0)), --當日借方發生額
case
when C.Currencycode = 'JPY' Then
Round(c.Ccyledgerbalance, 0)
else
c.ccyledgerbalance
End Balance, --賬戶余額
--b.instcode instcode, --系統虛擬機構代號
1 datastatus, --前臺對應的數據狀態
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, --金融機構標識碼
c.account_no, --交易賬號
a.batchentrydate, --發生日期
c.currencycode, --幣種
C.Ccyledgerbalance--系統機構代號

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

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

使用dbms_stats.gather_table_stats 分析了下表,然后再去執行語句,發現很快。這下問題清楚了,SQL執行計劃錯誤導致的問題。

在對比下先前的SQL執行計劃,發現在執行計劃中基數不對,竟然為1 ,估算的差距太大了。

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

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

最終調整計劃任務時間問題完全解決。

標簽:淮南 宜春 海北 泰安 六安 孝感 酒泉 葫蘆島

巨人網絡通訊聲明:本文標題《關于SQL執行計劃錯誤導致臨時表空間不足的問題》,本文關鍵詞  關于,SQL,執行,計劃,錯誤,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《關于SQL執行計劃錯誤導致臨時表空間不足的問題》相關的同類信息!
  • 本頁收集關于關于SQL執行計劃錯誤導致臨時表空間不足的問題的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 灵丘县| 筠连县| 灵丘县| 麻阳| 加查县| 秦皇岛市| 疏附县| 阜新市| 酒泉市| 宜君县| 屯留县| 株洲市| 饶阳县| 辽宁省| 裕民县| 敦化市| 喀喇沁旗| 蓬溪县| 肥西县| 涟源市| 融水| 临猗县| 大埔区| 玛纳斯县| 都匀市| 宝鸡市| 凤阳县| 阳高县| 大同县| 湘乡市| 安阳市| 武威市| 墨竹工卡县| 徐水县| 曲周县| 汝南县| 通海县| 宜良县| 海淀区| 英山县| 古田县|