1.需求簡介 最近開發人員需要進行一批數據進行生產上SQL語句耗時過長問題的驗證與優化。所以在性能測試庫中批量建造數據,由於交易本身業務邏輯過於複雜以及需要各種授權,最後決定採用插表的方式完成。 2.所用工具 DbVisualizer 10.0.14(已破解)(並不需要本地存在DB2客戶端,DbVi ...
1.需求簡介
最近開發人員需要進行一批數據進行生產上SQL語句耗時過長問題的驗證與優化。所以在性能測試庫中批量建造數據,由於交易本身業務邏輯過於複雜以及需要各種授權,最後決定採用插表的方式完成。
2.所用工具
DbVisualizer 10.0.14(已破解)(並不需要本地存在DB2客戶端,DbVisualizer本身通過JDBC驅動,所以本地要有Java環境,最好是Java1.8)
3.詳細過程
本身並不複雜,但是現在基本上已MySQL以及Oracle為主,所以還是踩了幾個坑。
(1)由於不是在DB2客戶端命令行運行腳本的方式運行,在DbVisualizer中運行需要對存儲過程進行定義,否則會報 CODE -104錯誤。
(2)由於造數的多張表主鍵大部分為流水號或者日期等(例:20180905204132),所以在存儲過程中定義迴圈 變數的時候,會報錯,應該是支撐不了這麼大長度的變數定義。
在網上有解決辦法,但是是對本地DB2環境變數進行配置,故本次造數過程採用 變數拼接的方式進行資料庫主鍵的插入。
存儲過程:(由於涉及數據敏感,故對INSERT語句進行了修改,請按照本身需求更改)
--/ -----此處對存儲過程進行聲明 begin atomic declare i integer; set i=14000021; while i<=14000080 do INSERT INTO OMS_BANK_TRANFLOW_INFO ( OBI_TRANFLOWNO, OBI_BIE, OBI_BME, OBI_IE, ) VALUES ( '私房菜', 'CNY', '0.01', '201809'||trim(char(i)), '01', ); set i=i+1; end while; END / -----此處對存儲過程進行聲明,與開頭對應
說明:'201809'||trim(char(i)) 是對主鍵的拼接,上述代碼主鍵插入的值為20180914000021~20180914000080,共計60條數據。