2014-03-31 25 views
0

我現在面臨的生產,其中一個ETL作業是沒有得到的更新步驟完成的問題陳舊會話的問題。當我看到在SQL行的更新數爲0甲骨文更新語句越來越無效 -

我使用相同的代碼庫和運行在另一個督促鏡像實例的作業時,作業在預期SLA得到完成。目標表上的表或索引統計信息沒有陳舊狀態。

當我看V $會話行,我看到SQL會話已變爲不活動。我殺了會話,會話不再出現在v $ session視圖,當我重新開始作業,它再次將陳舊的狀態。有關如何解決此問題的任何想法。

謝謝!

+0

我怕我不跟隨。你說工作沒有完成。這意味着它仍在運行。你說SQL語句更新了0行,這意味着它成功完成了。你說現在會話是'INACTIVE'這意味着它不意味着已執行完成任何SQL正在做什麼。我不明白你爲什麼說SQL沒有完成。我不知道你所說的「失效狀態」的意思 - 你談「去那個陳舊的國家」,「在桌子上陳舊的狀態」,其中我認爲應該是指統計後者? –

回答

0

無效表示會話沒有做的事情..

你應該探索的等待事件...... 如果等待事件正在等待網絡 - 這意味着有一個,但你的ETL代碼中,如果不是 - 等待事件會告訴你什麼是錯的。

你可以很容易地通過V $ SESSION在版本10和更高版本中獲得它,只需按照列(並檢查它是否被另一個會話阻塞,另一個常見原因是某些事情被卡住了。 )

如果你想要更多的幫助

- 請把在這裏從V $ SESSION的完整記錄,並阻斷會議的所有層次結構,如果這樣的存在......