9i 升級到 10g SQL執行計劃校驗

westzq1984發表於2009-07-07

SQL Performance Analyzer 能完成版本升級前的執行計劃改變的檢查工作
但是該功能是11g提供的,如果要從9i升級到10g,那麼還需要使用或者購買11g版本的資料庫

研究了下SPA的實現,其是通過9i的10046的跟蹤檔案在10g資料庫上重演SQL執行計劃實現的
那可以考慮用TKPROF把9i的10046檔案到10g庫上重新執行下explain

考慮現在多數環境是BS架構的,資料庫連線數不好控制,生成的跟蹤檔案也很多,需要將這些檔案合併起來,以進行合理的分析
這裡可以使用10g的trcsess命令實現

主要步驟
1.在9i庫上啟動10046跟蹤,獲得trace檔案
2.對於每個trace檔案,在
 *** SESSION ID:(15.8) 2009-07-07 13:11:45.556
 這樣的行後新增
 *** CLIENT ID:(zhangqiaoc_test) 2009-06-21 14:27:23.214
3.對於每個trace檔案,在末尾新增
 *** CLIENT ID:() 2009-06-21 14:27:23.259
4.在10g的環境下,使用trcsess合併這些檔案
 trcsess clientid='zhangqiaoc_test' * >test.trc
5.對test.trc執行9i的tkprof
 tkprof test.trc test.txt
6.對test.trc執行10g的tkprof
 tkprof explain=ctais2/oracle test.trc test.txt

這樣就可以獲得9i 10g分別的tkprof檔案,在用Beyond Compare這樣的工具,顯示差異部分以及上下文,就可以輕易的發現執行計劃有改變的SQL了

 

 

 

 

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

相關文章