導航:首頁 > 解決方法 > ora01555解決方法

ora01555解決方法

發布時間:2025-04-26 12:33:25

❶ [SQL]Oracle ORA-01555快照過舊的錯誤

關於Oracle ORA-01555快照過舊的錯誤
首先了解Oracle在什麼情況下會產生ORA-01555錯誤:

假設有一張6000萬行數據的testdb表,預計testdb全表掃描1次需要2個小時,參考過程如下:
1、在1點鍾,用戶A發出了select * from testdb;此時不管將來testdb怎麼變化,正確的結果應該是用戶A會看到在1點鍾這個時刻的內容。
2、在1點30分,用戶B執行了update命令,更新了testdb表中的第4100萬行的這條記錄,這時,用戶A的全表掃描還沒有到達第4100萬條。毫無疑問,這個時候,第4100萬行的這條記錄是被寫入了回滾段,假設是回滾段UNDOTS1,如果用戶A的全表掃描到達了第4100萬行,是應該會正確的從回滾段UNDOTS1中讀取出1點鍾時刻的內容的。
3、這時,用戶B將他剛才做的操作提交了,但是這時,系統仍然可以給用戶A提供正確的數據, 為那第4100萬行記錄的內容仍然還在回滾段UNDOTS1里,系統可以根據SCN到回滾段里找到正確的數據,但要注意到,這時記錄在UNDOTS1里的第4100萬行記錄已經發生了重大的改變:就是第4100萬行在回滾段UNDOTS1里的數據有可能隨時被覆蓋掉, 為這條記錄已經被提交了!
4、由於用戶A的查詢時間漫長,而業務在一直不斷的進行,UNDOTS1回滾段在被多個不同的transaction使用著,這個回滾段里的extent循環到了第4100萬行數據所在的extent,由於這條記錄已經被標記提交了,所以這個extent是可以被其他transaction覆蓋掉的!
5、到了1點45分,用戶A的查詢終於到了第4100萬行,而這時已經出現了第4條說的情況,需要到回滾段UNDOTS1去找數據,但是已經被覆蓋掉了,這時就出現了ORA-01555錯誤。
原因分析:"報表"程序執行時間漫長,在程序查詢的過程中其他用戶對"報表"進行了更新,被更新的數據寫入了回滾段,當程序到回滾段找數據時,發現數據已經被覆蓋掉,於是就出現了ORA-01555錯誤。另外"報表"程序執行效率不高也會造成ORA-01555錯誤。
解決辦法:
1、擴大回滾段, 為回滾段是循環使用的,如果回滾段足夠大,那麼那些被提交的數據就能保存足夠長的時間,使那些大事務完成一致性讀取。之前EBS系統UNDO 表空間 為9GB,目前為10GB。
2,強制走索引,如果sql語句用了索引欄位,在執行過程中沒有走上索引,需要強制走索引,merge 語句強制走索引,如 merge 和selec 的語句
MERGE/ +INDEX(F,IDX_S01_T_EXW_BASIC_DOCUMENTNO) /
INTO BI_DM.S01_T_INFOR F
USING (SELECT/ +INDEX(IDX_OMS_WH_OUTB_ORD_REBATE_02) / T12.ORDER_NO, T12.IS_REBATE, T12.CREATED, T12.UPDATED
FROM BI_ODS.OW_ORD_REBATE T12
WHERE T12.UPDATED >= DATA_DATE_3D
AND T12.IS_ACTIVE = 'Y'
AND T12.IS_DELETE = 'N') S
ON (F.OVERSEAS_WAREHOUSE_ID = VI_WAREHOUSE_ID AND F.DOCUMENTNO = S.ORDER_NO AND F.DATA_SOURCE = 'OW')
WHEN MATCHED THEN
UPDATE SET F.REBATE_STATUS = S.IS_REBATE;

閱讀全文

與ora01555解決方法相關的資料

熱點內容
簡單的方法剪一朵漂亮的茉莉花 瀏覽:868
腹橫肌瑜伽鍛煉方法 瀏覽:331
海參花食用方法 瀏覽:702
汽油壺的清洗方法視頻 瀏覽:825
老人腳痛治療方法 瀏覽:810
兩個月拉肚子怎麼辦最快的方法小妙招 瀏覽:409
長期祛斑的方法和技巧 瀏覽:463
子網掩碼計算方法為什麼要加3 瀏覽:254
男士手洗衣服的方法技巧 瀏覽:422
iphone6的許可權在哪裡設置方法 瀏覽:936
qq半透明視頻製作方法 瀏覽:564
怎麼在電腦上玩和平精英求方法 瀏覽:108
關節彎曲鍛煉方法最好鍛煉多久 瀏覽:493
如何用醫學方法判斷腦癱 瀏覽:523
毛衣腋下收針方法視頻 瀏覽:166
做蛋糕的方法視頻簡單又好吃 瀏覽:27
維生素的使用技巧和方法 瀏覽:477
集成牆板卡扣安裝方法 瀏覽:471
安卓車載連接方法 瀏覽:394
科普類常用說明方法 瀏覽:377