簡介: DB2 9 for z/OS 有許多新特性,它們使數據庫和應用程序設計人員在解決業(yè)務問題時有了更大的靈活性。我最近幫助一位客戶審查應用程序設計,實際體驗到實現這些特性會如何立竿見影地顯著改進性能。
DB2 9 for z/OS 有許多新特性,它們使數據庫和應用程序設計人員在解決業(yè)務問題時有了更大的靈活性。我最近幫助一位客戶審查應用程序設計,實際體驗到實現這些特性會如何立竿見影地顯著改進性能。
客戶實現的第一項改進是 SELECT FROM UPDATE/DELETE。這個功能將 DB2 8 中使用 SELECT FROM INSERT 引入的功能擴展到更多的 SQL 語句。我的客戶生成了新的鍵值,在執(zhí)行 UPDATE 語句期間需要向應用程序返回這些鍵值;現在,只需對數據庫做一次 SQL 調用就能夠處理這個任務,而不需要兩次調用。
DB2 9 還引入了新的 SQL 語句 MERGE。MERGE 讓 DB2 能夠在一個 SQL 語句中將數據合并進表中,由此提高了應用程序性能。MERGE 語句可以提高我的客戶的晚間數據庫批量 INSERT 和 UPDATE 處理,因為它使 DB2 不需要先檢查 SELECT 數據是否存在,然后再對表進行 INSERT 或 UPDATE 操作。現在,用一個 SQL MERGE 語句就可以判斷指定的數據庫行是否在表中存在,并將數據合并進數據庫中。
MERGE SQL 語句操作可以使用多行作為輸入數組。當使用多個輸入行時,可以指定 NOT ATOMIC CONTINUE ON SQL EXCEPTION。這個短語讓 DB2 獨立地處理每一行。如果在合并一行時出現了錯誤,那么只有發(fā)生錯誤的行被收回。DB2 會繼續(xù)處理后續(xù)的所有輸入行。DB2 會獲得每個多輸入行,然后判斷將它們合并進表中所需的插入或更新操作。如果表上有觸發(fā)器,那么每個成功合并的行都會引發(fā)觸發(fā)器,并執(zhí)行適當的操作。遇到 MERGE 錯誤的行不會引發(fā)觸發(fā)器。
應用程序可以在 SELECT FROM MERGE 語句中使用新的 MERGE SQL 語句。只需用一個 SQL 語句,DB2 就能夠在表中插入或更新多行,并將值返回給應用程序。這個功能降低了應用程序的復雜性,在晚間的 OLTP 或數據倉庫系統(tǒng)加載和更新處理期間,這可能會減少大量 SQL 調用。
在 subselect 和 fullselect 中使用 SQL ORDER BY 或 FETCH FIRST n ROWS
另一個出色的新特性是,能夠在 subselect 和 fullselect 中使用 SQL ORDER BY 或 FETCH FIRST n ROWS。這個特性使應用程序能夠以正確的次序快速檢索少量的行。使用 ORDER BY 會影響到的那些行在結果集中排在前面;FETCH FIRST n ROWS 子句幫助限制檢索的行數。
我的客戶的 OLTP 和數據倉庫應用程序只需要檢索重要產品的信息,只需要一屏數據,所以這個特性正好滿足他們的需要。限制檢索的行數會提高性能,并降低所有應用程序的復雜性。
其他出色的 DB2 9 for z/OS 應用程序特性包括新的標量函數、全局查詢優(yōu)化、自動的重新優(yōu)化等等。5 月在加利福尼亞 San Jose 召開的 IDUG 北美研討會上,展示了 DB2 9 帶來的新的用戶體驗。這次會議提供了用戶、顧問、IBM 員工和第三方廠商對 DB2 9 的看法。
學習
獲得產品和技術
討論