利用THOMAS KATE理論,成功解決一個案例

anycall2010發表於2008-09-10

     以前看《EFFECT ORACLE BY DESIGN》老打瞌睡。結果巧了,今天利用這個理論,成功解決了一個實際問題。

    使用者的軟體公司,將源資料庫原始表(A)記錄和另外一個源資料庫表增量資料表(B)的記錄經過一定的篩選,匯入到到中間資料庫(C)中。然後將(C)庫的資料通過一個儲存過程(作用:去掉重複資料)匯入到目標資料庫(D)中。

問題:由C庫的資料比D資料庫的資料多了幾千多條記錄。使用者不相信有這麼多重複記錄,讓我幫忙指導,證明這些記錄是否是真的重複資料。

我的思路是:首先檢查A庫和B庫篩選出來的資料插入C庫,資料是否一致。經統計:A插入了23346條記錄,B庫插入的1552條記錄。結果到C果然是24898條記錄。經過觸發器篩選,剩下到D庫只有23372條記錄。少了1526條記錄。首先察看SQL指令碼。返現軟體公司,從A、B篩選到C有問題,應該基於記錄時間查詢,而不是受理時間查詢。經過調整,結果少了135條記錄。在幾W條記錄裡面,找出135條記錄,是在不太容易。

通過THOMS的大基準測試理論,將B庫的表直接插入到D庫中,幸運的是,23346條記錄,完全插入到D庫中。那麼排除B庫,只有C庫的資料有問題。在1500多找出135條重複的,也不太容易。這個時候,THOMS提出了一套比對函式,可以比對兩個表的不同之處。可惜在那樣的環境中,做一個比對函式很難。我就考慮使用小基準測試,經過多次篩選,發現從4月13號到4月14號一天插入的28條記錄,有8條記錄是被從C庫直接插入D庫被篩選掉的。然後把28條記錄匯出和D庫的20條記錄比對,發現是8條記錄都是重複資料。然後,又找幾個小基準進行測試,最後,過濾掉的資料都是證明是重複資料。

到此,測試成功的證明了20000多條資料,裡面100多條資料是重複資料。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8334342/viewspace-442980/,如需轉載,請註明出處,否則將追究法律責任。

相關文章