我試圖在包含10,000行的表上執行以下語句,但查詢是永久執行的。 ('H','R')中的col1('A','B','C')和col2('K','L','M')中的col1以及col3中的col1刪除表_A ,D')Oracle IN條件很慢
請任何人都可以協助!
感謝 一個
我試圖在包含10,000行的表上執行以下語句,但查詢是永久執行的。 ('H','R')中的col1('A','B','C')和col2('K','L','M')中的col1以及col3中的col1刪除表_A ,D')Oracle IN條件很慢
請任何人都可以協助!
感謝 一個
看起來好像另一會話已鎖定你要刪除的行之一。
有人在同一張桌子上工作(交易持續時間超過幾秒鐘)嗎?或者你有沒有提交更改的其他工具或會話?
更新:
的另一個問題是外鍵是沒有正確索引:如果其他表有外鍵,你要刪除的行的表,如果這些外鍵列表沒有索引,那麼Oracle會嘗試鎖定這些表。這可能是原因。如果是這種情況,請索引這些列。
數據庫掛起的另一個可能原因是存檔日誌目標已滿。 查詢V $ SESSION_WAIT和V $ SESSION_EVENT視圖以查看會話等待的內容。
沒有其他人在使用會話,並且沒有任何未提交的事務。只是想知道是否有其他方式來編寫這個查詢? – webdevguy 2010-10-04 09:15:12
幾乎不可能的是,具有10'000行的表上的刪除語句需要超過5秒。您需要提供更多信息:「永久執行」持續多久?這張桌子上有觸發器嗎?該表是否包含巨大的BLOB或CLOB值?你有大量的指數嗎? – Codo 2010-10-04 09:41:11