首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

IBM Data Studio Developer 2.1 全新特性深度解析

     編輯:DB2 教學

核心價值主張

  • 提供更豐富 SQL 調優資訊
  • 提升 OpenJPA 與 .NET 應用服務品質
  • 深度洞察使用 SQL 的 Java 應用
  • 增強開發人員與 DBA 協作生產力
  • 降低/消除 Java 資料庫應用 SQL 注入風險

實作先決條件

  • Data Studio Developer 2.1
  • DB2 for Linux, UNIX, Windows(Express-C 即可)
  • DB2 附帶 SAMPLE 資料庫

SQL 調優可視化增強

識別 SQL 執行頻率與耗時

既有工具僅能識別耗時 Java 方法,DSD 2.1 進一步揭露每條 SQL 的執行次數、總/最長/最短/平均耗時,無論使用 pureQuery、JDBC 或其他框架皆適用。

pureQuery Outline 性能指標

  • Number of times run(執行次數)
  • Total time(總耗時)
  • Max time(最長耗時)
  • Average time(平均耗時)
  • Min time(最短耗時)

透過此資訊快速鎖定受益於優化的 SQL 與問題 SQL。

實作步驟速覽

  1. Data Source Explorer 建立 SAMPLE 連線
  2. 建立 Java 專案 myDSDPrj,匯入 TutMod.java、Util.java 至 db2jcc.example 套件
  3. 專案右鍵 pureQuery > Add pureQuery support,選擇 SAMPLE 連線、限定 STAFF 表綱要(如 SSURANGE),勾選 Enable SQL capturing and binding for JDBC applications
  4. 修改 TutMod.java 第 66 行綱要設定
  5. 右鍵 TutMod.java Run > Run Configurations 選 pureQuery 設定參數執行,收集 SQL 與效能資訊
  6. 專案右鍵 Show pureQuery outline,點擊 Toggle Profile 查看各 SQL 效能指標

Add pureQuery support 設定 Run Configurations 參數設定 SQL 執行度量顯示

無需變更代碼即可調優優化

DB2 for z/OS 環境可搭配 DB2 Optimization Expert 獲得專家建議,新版共享 Shell 可在 pureQuery XML 編輯器與 Optimization Expert 間複製優化語句。

受控編輯器可用等效且更優的語句替換現有 SQL,自動驗證等效性並拒絕不合規語句。支援利用新索引、限制回傳列、加入 ORDER BY 等優化。

實作示範:減少回傳列優化

  1. 雙擊 capture.pdqXML,右鍵 SELECT 語句選 Edit
  2. 替換為 SELECT ... FETCH FIRST 2 ROWS ONLY
  3. 儲存,修改 pdq.properties:captureMode=OFF、pdq.enableDynamicSQLReplacement=TRUE
  4. 重跑應用,Outline 再次查看:總耗時從 598ms 降至 519ms

編輯現有 SQL 減少回傳列 替換為優化 SQL 優化後效能提升

OpenJPA 與 .NET 應用服務品質提升

JPA 問題診斷與靜態 SQL

可獲得現有/新 JPA 應用發出的所有 SQL 與 JPAQL 資訊,無縫使用靜態 SQL 免改代碼。DB2 環境可用 WebSphere 7 靜態產生器(wsdb2gen)收集 SQL,DSD 2.1 內建工具簡化流程(需 WAS 7 Fixpack 3)。

JPA 專案啟用 pureQuery 步驟

  1. 專案加入 pureQuery 支援
  2. Build Path 加入 com.ibm.ws.jpa.jar
  3. persistence.xml 右鍵 pureQuery > Generate pureQueryXML file
  4. 專案右鍵 Show pureQuery outline 查看所有 CRUD、Named Queries
  5. 雙擊 SQL 追蹤至 JPA 原始碼
  6. 可選:pdq.properties 設 captureMode=ON 執行應用收集運行時動態 SQL

.NET 應用靜態 SQL 升級

pureQuery Runtime 2.1 支援 C#/VB.NET 等 .NET 語言,提升穩定性、安全性、易管理性:

  1. 連接字串設 captureMode=on;pureQueryXML=path/filename:collection=collName;rootpackage=pkgName
  2. 執行所有測試
  3. 用 DB2cap 從捕獲 SQL 綁定建立靜態套件
  4. 授予執行權限
  5. 連接字串改 executionMode=STATIC:captureMode=OFF
  6. 全測驗證結果正確

深度洞察 Java 應用 SQL 行為

免執行即可查看將發出的 SQL

DSD 2.1 pureQuery Outline Database/Java 索引標籤自動顯示應用中所有硬編碼 SQL(含未執行的 UPDATE/DELETE),雙擊即定位至 Java 原始碼(JDBC PreparedStatement 或 executeUpdate 位置)。

Database 索引標籤自動檢視 SQL Java 索引標籤定位 JDBC 位置

執行應用提升精確度與捕獲動態 SQL

  1. 啟用 TutMod.java 中 basicUpdate 調用
  2. pdq.properties 設 captureMode=ON、pdq.enableDynamicSQLReplacement=false
  3. 執行應用,Outline Java 索引標籤顯示實際 SQL 取代 PreparedStatement 佔位符

執行後 Java 索引標籤顯示實際 SQL

跨專案整體視野:應用發出什麼 SQL、從哪裡發出

關閉非應用專案,DSD 2.1 自動聚焦當前應用所有 SQL 資訊。支援批量自下而上代碼生成:一次選多張表(如 DEPARTMENT、EMPLOYEE)生成 pureQuery 代碼,Outline 即可追蹤「哪個 SQL 使用某表、在 Java 何處被呼叫」與「Java 類發出什麼 SQL、從哪裡發出」。

從兩張表批量生成 pureQuery 代碼 pureQuery 代碼生成選擇 SQL Database 索引標籤:SQL 與表/模式關聯 Java 索引標籤:Java 類與 SQL 關聯

增強過濾:鎖定特定 SQL 模式

  • SQL 文字模式過濾:如 (.*SELECT.*) 找出所有 SELECT、(.*ABS.*) 找用 ABS 函數的 SQL
  • 資料庫物件名稱過濾:如 <SCHEMA>.STAFF.ID 找使用 STAFF.ID 欄的所有 SELECT

過濾發現所有 SELECT 語句 過濾發現使用 ID 欄的 SELECT

應用 SQL 與實際發送 SQL 對照

Database 索引標籤展開 SELECT 可見「應用中的 SQL」與「實際發送到資料庫的 SQL」對比(如前節優化替換後的語句)。

應用 SQL 與實際發送 SQL 對照

精確定位 SQL 定義與執行位置

Java 索引標籤展開 SQL 可見 定義位置(PreparedStatement)與 執行位置(executeQuery),DELETE 語句直指預備/執行該行。

查看 SQL 定義與執行位置

追蹤結果集值在 Java 應用中的流動

右鍵欄位(如 DEPTNO)選 Source Code Analysis > Analyze column value Dependency,pureQuery Analysis 視圖呈現值從資料庫擷取、在應用中流轉、寫回資料庫或列印的完整路徑。

DEPTNO 欄值在 Java 應用中流動追蹤

生產力與開發-DBA 協作增強

建立驗證可部署 bindProps

以往手工建立部署綁定屬性、無法預先驗證。DSD 2.1 可集中維護/共享 .bindProps,Add/Remove Entries 選單自動驗證條目有效性(偵測刪除/重命名導致的失效),一鍵移除無效項。測試綁定後產生 JAR 部署。

輕鬆管理靜態 SQL 屬性

綁定可部署 JAR 與智慧型增量綁定

打包 src 與 pureQuery 資料夾為 JAR,右鍵 pureQuery > Bind。僅在必要時執行綁定,局部變更避免不必要的重新綁定。

綁定錯誤詳細回報

1.x 僅顯示有限資訊,2.1 透過工具與命令列精確回報失敗的套件與原因,大幅縮短除錯時間。

SQL 與 Java 工具深度整合

  • DBA 用 SQL Builder/Editor 建 SQL,存 .sql 檔,右鍵 Generate pureQuery code 批量產生資料存取層
  • Java 開發收到 DBA .sql 檔,同樣右鍵生成 pureQuery 代碼,便利從 JDBC/框架遷移至 pureQuery API
  • Outline 匯出 SQL 至 .sql 檔同樣適用

指定 pureQuery Runtime 位置

Window > Preferences > Data Management > SQL Development > pureQuery 設定 Runtime jar 位置。

跨工具共享資料庫連線

一處定義連線,導入其他 Eclipse 基礎工具共享,免重複建立。

舊版專案平滑遷移

開啟舊工作區自動遷移連線,Window > Reset perspective 重置透視圖,專案右鍵 Upgrade project 遷移 pureQuery Runtime。

消除 SQL 注入風險

前瞻性限制可執行 SQL

  1. 捕獲階段:captureMode=ON executeMode=DYNAMIC pureQueryXML=pureQueryFolder/capture.pdqXML capturedOnly=false 執行應用收集所有 SQL 至 capture.pdqxml
  2. 限制階段:captureMode=OFF capturedOnly=true 僅允許執行已捕獲的 SQL(動態/靜態皆受限)

平台特性支援矩陣

表 1. 各資料庫平台特性支援矩陣

無理由不採用 Data Studio Developer 與 pureQuery Runtime 2.1:顯著提升開發效率、構建企業級應用、開發-DBA 協作減少生產效能事故、靜態 SQL 降低 DB2 CPU 成本、最大化既有投資價值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved