1. 程式人生 > >除錯經驗——報表生成過程中遭遇資料庫“耍脾氣”

除錯經驗——報表生成過程中遭遇資料庫“耍脾氣”

問題:

前幾天重新整理一個報表,運行了一段指令碼,發現沒有資料。

解決方案:

當時,試圖更新指令碼,無果。

當天下午,不甘心,又運行了同一段指令碼,發現指令碼處於無限執行狀態(即,超時執行而不報錯,一直顯示為running狀態),此時,取消執行,又進入了無限取消執行狀態(即,超時取消執行而不報錯,一直顯示為pending for cancel狀態)。只好殺掉Toad程序,重新開啟Toad,重新執行,問題依舊,無果。但是得到一個啟發:指令碼未變,但資料庫的表現不同。說明,問題很可能出在資料庫自身上。

第二天早上,再次運行同一指令碼,5分鐘後,資料出來了。果然是資料庫自身的問題。

心得:

修改指令碼前,注意不要覆蓋掉現有版本。因為,很有可能,你會把對的指令碼改成錯的。如果直接覆蓋掉,可能又需要花大量時間恢復。