亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 3976 | 回復(fù): 1
打印 上一主題 下一主題

[轉(zhuǎn)]用于 iSeries V5R2 的 DB2 通用數(shù)據(jù)庫(kù)中有什么新增功能 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2003-01-19 21:08 |只看該作者 |倒序?yàn)g覽
用于 iSeries V5R2 的 DB2 通用數(shù)據(jù)庫(kù)中有什么新增功能
Kent Milligan
DB2 UDB 技術(shù)專家
IBM 羅徹斯特
2002 年 8 月


  
簡(jiǎn)介


SQL 作為業(yè)務(wù)數(shù)據(jù)訪問(wèn)語(yǔ)言的真正強(qiáng)大之處在于,它通過(guò)允許您用單一請(qǐng)求完成更多工作,并允許您將部分業(yè)務(wù)處理轉(zhuǎn)移到數(shù)據(jù)庫(kù)引擎本身,從而簡(jiǎn)化了編碼。由于 SQL 是數(shù)據(jù)庫(kù)訪問(wèn)的業(yè)界標(biāo)準(zhǔn),所以通過(guò)在數(shù)據(jù)庫(kù)服務(wù)器之間移植和重用現(xiàn)有的基于 SQL 的業(yè)務(wù)邏輯,您也會(huì)從中受益。iSeries™ V5R2 上的 DB2® Universal Database™(UDB)引入的新功能繼續(xù)構(gòu)建在 SQL 的這些優(yōu)點(diǎn)之上。

V5R2 用一些新特性擴(kuò)充了 DB2 UDB for iSeries 的 SQL 能力,這些特性旨在向應(yīng)用程序開發(fā)人員提供更多的靈活性,并幫助消除將非 DB2 解決方案合并和移植到 iSeries 時(shí)所涉及的常見障礙。通過(guò)對(duì)字段引用文件、可切換的數(shù)據(jù)庫(kù)群集以及 iSeries Navigator 圖形界面的擴(kuò)展提供 SQL 支持,V5R2 還簡(jiǎn)化了 DB2 UDB for iSeries 的管理。


SQL 增強(qiáng)功能


SQL 是一種功能強(qiáng)大且不斷更新的編程語(yǔ)言。其頻繁增強(qiáng)的功能使得讓 DB2 完成更多的工作成為可能。

標(biāo)識(shí)列
當(dāng)新的行(或記錄)插入到表中時(shí),通過(guò)告知 DB2 自動(dòng)遞增列值,標(biāo)識(shí)列可以用于生成人工或代理鍵值。不必創(chuàng)建遞增下一個(gè)標(biāo)識(shí)或編號(hào)值的代碼,可以讓 DB2 UDB 完成這個(gè)工作。如下所示,通過(guò)對(duì)用小數(shù)位為零的數(shù)值數(shù)據(jù)類型(numeric、decimal、integer、smallint、bigint)創(chuàng)建的列指定標(biāo)識(shí)選項(xiàng),您可以創(chuàng)建標(biāo)識(shí)列。

CREATE TABLE employee (
   empid INTEGER GENERATED ALWAYS AS IDENTITY
                     (START WITH 10 , INCREMENT BY 10)
   name CHAR(30),   dept  CHAR(4))
正如您看到的,標(biāo)識(shí)(IDENTITY)選項(xiàng)允許您控制初值和遞增值。第一個(gè)插入到該表中的雇員記錄被分配值為 10 的雇員標(biāo)識(shí),第二個(gè)插入的雇員記錄的標(biāo)識(shí)為 20,依此類推。為確保該值是唯一的,您必須對(duì)標(biāo)識(shí)列定義唯一性約束或索引。一張表只能有一個(gè)標(biāo)識(shí)列。

視圖中的 UNION
在視圖中支持合并(union)也允許您將一些編程工作轉(zhuǎn)到 DB2 上。如果數(shù)據(jù)庫(kù)在獨(dú)立的表中存儲(chǔ)了每年的銷售歷史數(shù)據(jù),那么任何時(shí)候當(dāng)最終用戶想查看數(shù)年的銷售歷史時(shí),他們必須記住通過(guò)使用 UNION 將每個(gè)銷售歷史表包含到他們的報(bào)告或查詢中。不必強(qiáng)制最終用戶或程序員記住組合(合并)所有的銷售歷史表,可如下創(chuàng)建單一 SQL 視圖以簡(jiǎn)化這個(gè)過(guò)程。

CREATE VIEW sales_history AS (
  SELECT COUNT(*), SUM(total_sale) FROM sales1999
     WHERE product_id = 'XYZ'  
  UNION ALL
   SELECT COUNT(*), SUM(total_sale) FROM sales2000
      WHERE product_id = 'XYZ'  
  UNION ALL
    SELECT COUNT(*), SUM(total_sale) FROM sales2001
       WHERE product_id = 'XYZ'  )
現(xiàn)在最終用戶和程序員只有一個(gè)他們必須引用的對(duì)象 sales_history,而且他們可以依靠 DB2 相應(yīng)地將所有的銷售歷史表組合在一起。自 V5R2 起,在公共表表達(dá)式和派生表中也支持合并。

除去了 ORDER BY 限制
有一個(gè)較小的 V5R2 增強(qiáng)也能使移植和編碼更容易,那就是除去對(duì) ORDER BY 的限制,這個(gè)限制要求用于對(duì)查詢結(jié)果排序或分類的任何列也必須包含在該結(jié)果中。以下語(yǔ)句在 V5R1 中是不允許的,但 V5R2 支持它。

SELECT name, jobcode FROM employees ORDER BY dept
移植工具
除了增強(qiáng) iSeries SQL 支持外,IBM 還開始創(chuàng)建數(shù)據(jù)庫(kù)轉(zhuǎn)換工具,使它們可用于將其它數(shù)據(jù)庫(kù)上的 SQL 轉(zhuǎn)換成受 DB2 UDB 支持的 SQL 語(yǔ)法。通過(guò)使部分 DB2 移植過(guò)程自動(dòng)進(jìn)行,這些工具使合并解決方案變得更容易。由于每種 DB2 UDB 產(chǎn)品之間都存在細(xì)微差別,因此由 Microsoft SQL Server 以及 Sybase 工具所產(chǎn)生的 SQL 可能需要針對(duì)某個(gè) iSeries 目標(biāo)做一些定制。使 Oracle 工具生成專門用于 iSeries 的 SQL 的工作正在進(jìn)行中。在 http://www.iseries.ibm.com/developer/db2/porting.html 中可以找到有關(guān)這些 DB2 轉(zhuǎn)換實(shí)用程序的更多詳細(xì)信息。

公共目錄視圖
通過(guò)添加了幾個(gè)新的目錄視圖,改進(jìn)了與其它 SQL 數(shù)據(jù)庫(kù)的通用性,這些目錄視圖定義在最新的 SQL 標(biāo)準(zhǔn) — ISO International Standard (IS), Information technology - Database language SQL, ISO/IEC 9075-1:1999(1999 年 7 月)中。另外,iSeries 還支持 SYSIBM 庫(kù)中的一組用于 ODBC 和 JDBC™ 客戶機(jī)的新目錄視圖,整個(gè) DB2 UDB 系列也支持這些視圖。這組新的目錄視圖將使基于 ODBC 和 JDBC 的工具供應(yīng)商更方便地支持整個(gè) DB2 UDB 系列。

跨 DB2 的兼容性特性
與其它 DB2 UDB 產(chǎn)品的兼容性是每個(gè) iSeries 發(fā)行版的主要關(guān)注點(diǎn),V5R2 也不例外。這些 DB2 UDB 兼容性增強(qiáng)功能不僅僅滿足于一個(gè)檢查表;它們還向應(yīng)用程序開發(fā)人員提供了一組更為豐富的 SQL 功能。一些比較有趣的 V5R2 增強(qiáng)功能改進(jìn)了 DB2 UDB 的兼容性,它們支持:

全局臨時(shí)表
用戶定義的表函數(shù)
對(duì) SQL 過(guò)程語(yǔ)言的增強(qiáng)
CREATE TABLE AS
聲明的臨時(shí)表
DECLARE GLOBAL TEMPORARY TABLE 語(yǔ)句支持臨時(shí)表的創(chuàng)建,在連接或作業(yè)結(jié)束時(shí),DB2 UDB 會(huì)自動(dòng)清除該臨時(shí)表。以下是一個(gè) SQL 語(yǔ)句示例,您可以用它來(lái)創(chuàng)建聲明的全局臨時(shí)表:


DECLARE GLOBAL TEMPORARY TABLE temp_projects (
   projno INTEGER,
   name CHAR(30),
   deadline TIMESTAMP)
ON COMMIT PRESERVE ROWS
如果您對(duì)使用這個(gè)語(yǔ)句是否必要抱有疑慮,并認(rèn)為可能只需使用 OS/400® QTEMP 庫(kù)中創(chuàng)建表的 CREATE TABLE 語(yǔ)句,則對(duì)此的回答是:SQL 應(yīng)用程序開發(fā)人員更熟悉 DECLARE TABLE 語(yǔ)句,而且他們不知道如何拼寫 QTEMP!

用戶定義的表函數(shù)
用戶定義的表函數(shù)(UDTF)補(bǔ)充了 V4R4 用戶定義的標(biāo)量函數(shù)(UDF)支持。標(biāo)量函數(shù)意味著該函數(shù)只能返回單一值(或結(jié)果)。盡管在某些情況中 UDF 返回單一值也是可行的,但另外一些情況必須返回多個(gè)值。UDTF 滿足了這個(gè)需求,它返回一張表或一個(gè)結(jié)果集。以下是返回一列指定部門的雇員信息的 SQL UDTF:

CREATE FUNCTION deptemployees (deptno CHAR(3))
  RETURNS TABLE (emp# CHAR(6), lastnm CHAR(15), firstnm CHAR(12))
  LANGUAGE SQL
  DISALLOW PARALLEL
  RETURN
      SELECT empno, lastname, firstname
          FROM employee WHERE employee.workdept = deptemployees.deptno

SELECT * FROM TABLE(deptemployees('503'))
創(chuàng)建了 UDTF 之后,就可以如上所示將它放置在允許表引用的 SQL 語(yǔ)句的任何位置。您可以將 UDTF 看作僅在引用諸如 SELECT 或 UPDATE 之類的 SQL 語(yǔ)句期間創(chuàng)建臨時(shí)表。與 UDF 類似,用戶定義的表函數(shù)可以用 SQL 或外部編程語(yǔ)言來(lái)創(chuàng)建。UDTF 也使受歡迎的 DB2 XML Extender 在 V5R2 中更強(qiáng)大,因?yàn)樗藥讉(gè)處理 XML 數(shù)據(jù)的 UDTF,當(dāng)它們首次可用時(shí),在 V5R1 上顯然不可用。

對(duì) SQL 過(guò)程語(yǔ)言的增強(qiáng)
您可以在 SQL UDTF、UDF 以及觸發(fā)器和存儲(chǔ)過(guò)程中使用 SQL 過(guò)程語(yǔ)言。添加的最重要的功能是支持嵌套的復(fù)合語(yǔ)句。嵌套的復(fù)合語(yǔ)句使您能將相關(guān)語(yǔ)句一起捆綁到 SQL 過(guò)程、觸發(fā)器或函數(shù)內(nèi)它們自己的執(zhí)行塊上。這種對(duì)語(yǔ)句的捆綁(或稱為模塊化)向應(yīng)用程序開發(fā)人員提供了更大的靈活性,并允許采用更佳的代碼結(jié)構(gòu)來(lái)降低應(yīng)用程序的長(zhǎng)期維護(hù)費(fèi)用。

在創(chuàng)建出錯(cuò)處理代碼時(shí),嵌套的復(fù)合語(yǔ)句特別有用。在前幾個(gè)發(fā)行版中,SQL 處理程序只能執(zhí)行一個(gè) SQL 語(yǔ)句來(lái)實(shí)現(xiàn)出錯(cuò)處理,除非您想使用包含 LOOP 語(yǔ)句的繁瑣語(yǔ)句。SQL 處理程序在 V5R2 中仍只允許一個(gè) SQL 語(yǔ)句,但該單一語(yǔ)句現(xiàn)在可以是嵌套的復(fù)合語(yǔ)句。下面的示例說(shuō)明了每當(dāng)遇到 SQL 異常時(shí),SQL 處理程序如何使用嵌套的復(fù)合語(yǔ)句來(lái)設(shè)置兩個(gè)局部變量的值。

CREATE PROCEDURE ComputeShipping (in order# integer, out costs decimal(6,2) )
LANGUAGE SQL
  BEGIN
    DECLARE ShipCosts DECIMAL(6,2);
    DECLARE ErrorSQLState CHAR(5);
   
   DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
      BEGIN
      SET ErrorSQLState=SQLSTATE;
      SET ShipCosts=NULL;
     END;
...
   SET ShipCosts=SELECT SUM(ItemWeight)*2.00 FROM orders WHERE ordid=ordernum;
...
   
END
V5R2 中 SQL 過(guò)程語(yǔ)言的其它幾個(gè)改進(jìn)之處包括:支持 ITERATE 語(yǔ)句和在單一處理程序上指定多個(gè)條件的能力。

一個(gè)使 SQL 和外部存儲(chǔ)過(guò)程都受益的增強(qiáng)功能是通過(guò) DRDA 在兩個(gè) iSeries 服務(wù)器之間傳遞存儲(chǔ)過(guò)程結(jié)果集的能力。自 OS/400® 的 V3R1 以來(lái),運(yùn)行在 PC 或 UNIX® 服務(wù)器上的 ODBC 和 JDBC 應(yīng)用程序已能接收由 iSeries 服務(wù)器返回的結(jié)果集,但是運(yùn)行在 iSeries 上的應(yīng)用程序至今也不能接收在 iSeries 上運(yùn)行的應(yīng)用程序的結(jié)果集。有些 iSeries 客戶出于安全性的原因要在單獨(dú)的 iSeries 服務(wù)器上運(yùn)行 Web 或 Donimo™ 服務(wù)器,并在需要數(shù)據(jù)時(shí),通過(guò) DRDA 連接訪問(wèn)他們生產(chǎn) iSeries 服務(wù)器上的業(yè)務(wù)數(shù)據(jù),對(duì)于這些客戶,這一限制就有問(wèn)題。存儲(chǔ)過(guò)程對(duì)于通過(guò) DRDA 連接檢索業(yè)務(wù)數(shù)據(jù)是個(gè)常見選擇,但是結(jié)果集約束限制了這個(gè)選項(xiàng)的執(zhí)行,F(xiàn)在使用 V5R2,兩個(gè) iSeries 服務(wù)器之間的存儲(chǔ)過(guò)程調(diào)用就可以使用結(jié)果集來(lái)簡(jiǎn)化返回的業(yè)務(wù)數(shù)據(jù)。

對(duì) CREATE TABLE AS 的支持
CREATE TABLE AS 語(yǔ)法讓您用一個(gè) SQL 語(yǔ)句創(chuàng)建和填充工作表或匯總表,如下所示:

CREATE TABLE SalesByRegion AS
  SELECT region, SUM(to_sales) FROM sales GROUP BY region
  WITH DATA
DB2 UDB 處理嵌套的 SELECT 語(yǔ)句,以獲得需要在指定表中創(chuàng)建的列定義(類型和長(zhǎng)度),而且 WITH DATA 子句告知 DB2 UDB 運(yùn)行指定的 SELECT 語(yǔ)句并將結(jié)果放在新建的表中。

為最初的 iSeries 程序員提供的增強(qiáng)功能
傳統(tǒng)的(或最初的)iSeries 程序員會(huì)發(fā)現(xiàn)幾個(gè)更容易讓他們?cè)?iSeries 上轉(zhuǎn)而使用 SQL 的增強(qiáng)功能:

與許可程序產(chǎn)品無(wú)關(guān)
更簡(jiǎn)單的 SQL 調(diào)試
對(duì)字段引用文件的 SQL 支持
SET SCHEMA 支持
與許可程序產(chǎn)品無(wú)關(guān)
對(duì)利用 SQL 過(guò)程、觸發(fā)器和函數(shù)感興趣的 iSeries 程序員再也不必首先要說(shuō)服他們的老板購(gòu)買 DB2 SQL 開發(fā)工具箱(DB2 SQL Development Kit)產(chǎn)品了。在首次引入 SQL 存儲(chǔ)過(guò)程時(shí),程序員首先必須購(gòu)買和安裝 DB2 SQL 開發(fā)工具箱及 ILE C 編譯器。V5R2 的實(shí)現(xiàn)與 LPP(許可程序產(chǎn)品)無(wú)關(guān)。

更簡(jiǎn)單的 SQL 調(diào)試
那些已經(jīng)使用 SQL 過(guò)程、函數(shù)和觸發(fā)器來(lái)實(shí)現(xiàn)業(yè)務(wù)過(guò)程的傳統(tǒng) iSeries 程序員會(huì)證明與這些 SQL 對(duì)象關(guān)聯(lián)的調(diào)試很困難。在創(chuàng)建 SQL 過(guò)程、函數(shù)或觸發(fā)器時(shí),DB2 UDB 生成實(shí)現(xiàn)特定邏輯的 C 程序?qū)ο。如果您想調(diào)試這些 SQL 對(duì)象,必須單步執(zhí)行由 DB2 UDB 生成的 C 代碼,對(duì) RPG 或 COBOL 程序員來(lái)說(shuō),這不會(huì)是一次愉快的經(jīng)歷。為了在 V5R2 中改進(jìn)調(diào)試過(guò)程,已經(jīng)提供了一種 SQL 源代碼級(jí)調(diào)試器,這樣您只會(huì)看到您編碼的 SQL 語(yǔ)句并對(duì)其進(jìn)行調(diào)試。通過(guò)將 SQL 語(yǔ)句 SET OPTION DBGVIEW=*SOURCE 嵌入到您的 SQL 過(guò)程、觸發(fā)器或函數(shù)定義內(nèi)就可以激活 SQL 源代碼級(jí)調(diào)試器。

對(duì)字段引用文件的 SQL 支持
對(duì)字段引用文件的 SQL 支持是一個(gè)受到傳統(tǒng) iSeries 編程社區(qū)歡迎的新功能。字段引用文件允許重用諸如“city”或“phone number”之類的公共字段的 DDS 定義,而不是在多個(gè)物理文件定義中重復(fù)這些 DDS 定義。SQL 的 CREATE TABLE 語(yǔ)句與字段引用文件沒(méi)有任何等價(jià)性,因此要將物理文件定義轉(zhuǎn)換成 SQL 就很難。在 V5R2 中已用特殊語(yǔ)法增強(qiáng)了 CREATE TABLE 語(yǔ)句,以使存儲(chǔ)在字段引用文件中的公共字段定義可用于 SQL 表。

下面的 SQL 語(yǔ)句演示了如何使用這個(gè)新語(yǔ)法來(lái)創(chuàng)建重用字段引用文件 ref_file 中的標(biāo)識(shí)(id)、姓(lname)、名(fname)以及所在城市(city)定義的客戶(customer)表。

CREATE TABLE mylib/customer AS
  SELECT id cust_id, lname cust_lastname,  fname cust_firstname, city cust_city
     FROM reflib/ref_file
  WITH NO DATA
如果城市字段定義在引用文件中是 30 個(gè)字節(jié)的字符字段,則 cust_city 在客戶表中定義為 30 個(gè)字節(jié)的字符字段。WITHNO DATA 子句指出不能運(yùn)行所引用的 SELECT 語(yǔ)句來(lái)返回?cái)?shù)據(jù)。

SET SCHEMA 支持
傳統(tǒng)程序員還受益于能用新的 SET SCHEMA 語(yǔ)句控制動(dòng)態(tài) SQL 語(yǔ)句的當(dāng)前庫(kù)。在前幾個(gè)發(fā)行版中,不可以用 SQL 控制作業(yè)的當(dāng)前庫(kù);開發(fā)人員必須使用 OS/400 命令。


改進(jìn)的可用性和恢復(fù)


在可用性和恢復(fù)方面,DB2 繼續(xù)證明其領(lǐng)先的地位。

可切換的磁盤群集
使用 V5R2 通過(guò)獨(dú)立輔存池進(jìn)行的可切換磁盤群集提供了可用性、工作負(fù)載均衡以及支持多個(gè)數(shù)據(jù)庫(kù)映像的額外選項(xiàng)。從可用性觀點(diǎn)來(lái)看,可切換的磁盤群集允許跨多個(gè) iSeries 系統(tǒng)切換數(shù)據(jù)庫(kù)。如果一個(gè)系統(tǒng)出故障了,則另外一個(gè)系統(tǒng)可以接管控制,繼續(xù)對(duì)單一的群集數(shù)據(jù)庫(kù)進(jìn)行操作。注:這不能取代第三方的高度可用性解決方案,但對(duì)管理已規(guī)劃的當(dāng)機(jī)時(shí)間提供了備選方案,并對(duì)處理未被規(guī)劃的當(dāng)機(jī)時(shí)間提供了靈活性。

日志備用方式
事實(shí)上,新的日志備用方式(在 CHGJRN 命令上使用 JRNSTATE 參數(shù))縮短了第三方高度可用性解決方案的切換時(shí)間。日志備用方式支持提前創(chuàng)建和激活(舉例來(lái)說(shuō),Start Journal Physical File 命令)備份系統(tǒng)上日志對(duì)象,而不是在切換過(guò)程完成這個(gè)工作。日志備用方式只適用于那些安裝了高可用性日志性能(High-Availability (HA) Journal Performance)許可的功能部件(第 42 項(xiàng))的系統(tǒng)。這一許可的功能部件將日志備用方式和日志高速緩存選項(xiàng)捆綁在一起。對(duì)于批處理工作負(fù)載和使用沒(méi)有提交控制的日志記錄的高度可用性備份服務(wù)器,日志高速緩存證明是個(gè)重要的性能改進(jìn)方法。日志高速緩存更改了將已記錄日志的對(duì)象寫入磁盤的處理,以便在已記錄日志的操作上獲得最佳的性能。

改進(jìn)的索引保護(hù)顧問(wèn)程序
SMAPP(系統(tǒng)管理的訪問(wèn)路徑保護(hù),System-Managed Access Path Protection)的 DB2 索引保護(hù)顧問(wèn)程序(DB2 Index Protection Advisor)組件已得到增強(qiáng),從而在 IPL 期間和其后獲得更佳的系統(tǒng)資源的系統(tǒng)使用率。V5R2 中的 DSPRCYAP(顯示訪問(wèn)路徑的恢復(fù),Display Recovery for Access Path)命令提供了有關(guān)能夠保護(hù)哪些索引和邏輯文件以及不能保護(hù)哪些的詳細(xì)信息。

讓我們查看一個(gè)示例方案,以研究這個(gè)增強(qiáng)功能的優(yōu)點(diǎn);诖罅康臄(shù)據(jù)更改,SMAPP 確定需要保護(hù)大型的邏輯文件 LFX 以防止在 IPL 期間進(jìn)行時(shí)間很長(zhǎng)的數(shù)據(jù)庫(kù)恢復(fù);但是當(dāng) SMAPP 試圖保護(hù) LFX 時(shí),它發(fā)現(xiàn)創(chuàng)建這個(gè)邏輯文件時(shí)使用了阻止 LFX 受保護(hù)的選項(xiàng)(諸如 FRCACCPATH(*YES))。為了補(bǔ)救這個(gè)大型邏輯文件不能受保護(hù)的事實(shí),SMAPP 將保護(hù)多個(gè)較小的索引和邏輯文件,即使這需要更多的系統(tǒng)資源來(lái)保護(hù)多個(gè)對(duì)象,而不是一個(gè)對(duì)象。

在 V5R2 之前,您無(wú)法知道哪個(gè)索引和邏輯文件屬性會(huì)導(dǎo)致系統(tǒng)資源的低效率使用。事實(shí)上,IBM 發(fā)現(xiàn)許多客戶由于無(wú)意中使用了象 FRCACCPATH(*YES) 之類的 SMAPP 阻止選項(xiàng),從而阻止了邏輯文件受保護(hù),但他們沒(méi)有認(rèn)識(shí)到,事實(shí)上該屬性是 System 3X 時(shí)期的遺留物,對(duì)最新的 OS/400 發(fā)行版沒(méi)有任何好處。DSPRCYAP 上改進(jìn)的顧問(wèn)程序反饋清楚地向您說(shuō)明為什么索引不能由 SMAPP 保護(hù)。這使您有機(jī)會(huì)更改邏輯文件或索引屬性,以便使它符合由 OS/400 自動(dòng)保護(hù)的條件。

保存點(diǎn)
保存點(diǎn)(Savepoint)是 iSeries 移植過(guò)程中常常碰到的難以模擬的另一項(xiàng)功能,F(xiàn)在,在 V5R2 iSeries 中,您可以利用保存點(diǎn)從更快的事務(wù)恢復(fù)中受益。保存點(diǎn)是命名的實(shí)體,它表示您的數(shù)據(jù)在數(shù)據(jù)庫(kù)事務(wù)內(nèi)特定時(shí)間點(diǎn)上的狀態(tài)(請(qǐng)參閱圖 1)。一旦建立了保存點(diǎn),您就可以將應(yīng)用程序回滾到該保存點(diǎn),而不必使用回滾整個(gè)事務(wù)所需的系統(tǒng)資源。例如,某次旅行預(yù)訂事務(wù)的一部分可能涉及預(yù)訂飛機(jī)航班和旅館房間。完成了航班和旅館的預(yù)訂后,客戶卻想住更便宜的旅館。該應(yīng)用程序就要回滾與旅館預(yù)訂相關(guān)的數(shù)據(jù)庫(kù)更改,而讓有關(guān)飛機(jī)航班預(yù)訂的數(shù)據(jù)庫(kù)更改保持不變。要實(shí)現(xiàn)這一點(diǎn),應(yīng)用程序只要在完成航班預(yù)訂后建立一個(gè)保存點(diǎn)。一旦整個(gè)旅行預(yù)訂完成后,就在提交預(yù)訂事務(wù)時(shí),釋放該保存點(diǎn)。


性能


V5R2 引入了一個(gè) SQL 查詢引擎,其特點(diǎn)是面向?qū)ο蟛樵儍?yōu)化器,它為基于 SQL 的應(yīng)用程序以后的功能性和性能增強(qiáng)打下了基礎(chǔ)。

新的電子事務(wù)服務(wù)支持
由電子商務(wù)和多層應(yīng)用程序所啟動(dòng)的事務(wù)將從 V5R2 中新的自適應(yīng)電子事務(wù)(e-transaction)服務(wù)支持中受益,這些支持專門為使用 The Open Group XA 事務(wù)接口或 Java™ Transaction API(JTA)的應(yīng)用程序而設(shè)計(jì)。許多電子商務(wù)和多層應(yīng)用程序中有多項(xiàng)作業(yè)或連接作用于單個(gè)數(shù)據(jù)庫(kù)事務(wù)。這個(gè)應(yīng)用程序模型不使用為傳統(tǒng)數(shù)據(jù)庫(kù)事務(wù)設(shè)計(jì)的現(xiàn)有 OS/400 事務(wù)服務(wù),因?yàn)樵趥鹘y(tǒng)數(shù)據(jù)庫(kù)事務(wù)服務(wù)中,事務(wù)是在單個(gè)作業(yè)或服務(wù)器內(nèi)完成的。

V5R2 中增強(qiáng)了事務(wù)服務(wù)以在與作業(yè)或連接無(wú)關(guān)的對(duì)象中,存儲(chǔ)和管理與事務(wù)相關(guān)的數(shù)據(jù)庫(kù)資源和鎖定。這個(gè)新模型將產(chǎn)生跨數(shù)據(jù)庫(kù)連接的更佳的資源共享,其效果是改進(jìn)了性能和可伸縮性。當(dāng)應(yīng)用程序?qū)?XA 或 JTA 接口用于 DB2 事務(wù)管理時(shí),會(huì)自動(dòng)使用這些新的事務(wù)服務(wù),從這一點(diǎn)來(lái)說(shuō),這些新的事務(wù)服務(wù)具有自適應(yīng)性。

編碼向量索引的更廣泛使用
編碼向量索引(EVI)在 V5R2 中使用得更廣泛,從而提高了分析和判定工作負(fù)載的性能。在以前的發(fā)行版中,都建議您只對(duì)主要存儲(chǔ)的是只讀數(shù)據(jù)的列創(chuàng)建 EVI,以減少維持 EVI 與列數(shù)據(jù)同步相關(guān)的開銷。而且,如果是對(duì)需要頻繁更新的列創(chuàng)建 EVI,則通常建議在對(duì)該列添加新數(shù)據(jù)值之前刪除 EVI,隨后在完成數(shù)據(jù)更改后從頭開始重新創(chuàng)建 EVI。V5R2 增強(qiáng)功能極大地減少了維護(hù)編碼向量索引的費(fèi)用。這一減少的費(fèi)用允許您對(duì)范圍更廣的列和字段創(chuàng)建 EVI 以改進(jìn)分析查詢性能。


更豐富的工具集


由于 DB2 控制中心(Control Center)中對(duì) iSeries 的支持很有限,所以 iSeries Navigator 是用于 DB2 UDB for iSeries 的首選圖形管理界面。與數(shù)據(jù)庫(kù)引擎類似,對(duì) iSeries Navigator 工具集進(jìn)行了許多增強(qiáng),它們簡(jiǎn)化了 iSeries 程序員和管理員的工作。

SQL Script Center 的改進(jìn)
采用提示 SQL 查詢語(yǔ)句的方法,簡(jiǎn)化了從 SQL Script Center 執(zhí)行 SQL 語(yǔ)句的工作。當(dāng)您選擇 Edit ->; Insert Built SQL 時(shí),SQL Assist 功能可用來(lái)幫助構(gòu)造 SQL 語(yǔ)句(請(qǐng)參閱圖 1)。

圖 1. SQL Script Center 中的 SQL Assist 功能


通過(guò)顯示結(jié)果集內(nèi)容,SQL Script Center 窗口已具有簡(jiǎn)化對(duì)返回結(jié)果集的存儲(chǔ)過(guò)程進(jìn)行調(diào)試的能力,F(xiàn)在 V5R2 有了通過(guò)存儲(chǔ)過(guò)程的 OUT 和 INPUT 參數(shù)來(lái)顯示返回值的能力。為此,只要對(duì) OUT 參數(shù)分配一個(gè)問(wèn)號(hào),如下面的示例中所示:

        CALL MYLIB.PROCEDURE1(1, 'abc', ? )
返回的輸出值顯示在 Messages 選項(xiàng)卡上。還有一個(gè)新的菜單選項(xiàng),來(lái)啟動(dòng)和分析 SQL 性能監(jiān)控程序,該監(jiān)控程序用于監(jiān)控所有在 SQL Scripts 窗口中執(zhí)行的查詢。

索引顧問(wèn)程序
在 V5R2 中提供了一個(gè)索引顧問(wèn)程序,從而極大地簡(jiǎn)化了通過(guò) Visual Explain 進(jìn)行的 SQL 性能分析。很難分析一個(gè)復(fù)雜查詢產(chǎn)生的 Visual Explain 圖表,因?yàn)樵?Visual Explain 輸出中存在著大量的圖標(biāo)。索引顧問(wèn)程序沒(méi)有一味關(guān)注每個(gè) Visual Explain 圖標(biāo)背后的細(xì)節(jié),而是為用戶分析詳細(xì)的性能數(shù)據(jù),然后建議要?jiǎng)?chuàng)建哪些索引以改進(jìn)性能。這反映了 IBM 的自我管理系統(tǒng)的倡議,以及 iSeries 服務(wù)器的簡(jiǎn)單及較低的擁有成本(cost-of-ownership)理念。

訪問(wèn) EXPLAIN 信息獲得更多對(duì)象
V5R2 中另一個(gè)與性能相關(guān)的新特性為函數(shù)、過(guò)程、包和觸發(fā)器提供了對(duì) Print SQL Information(PRTSQLINF)命令(也稱為 Explain 實(shí)用程序)的訪問(wèn)。要看到這一點(diǎn),對(duì)顯示在庫(kù)中的 SQL 對(duì)象單擊鼠標(biāo)右鍵,并選擇 Explain SQL(請(qǐng)參閱圖 2)。通過(guò)導(dǎo)航到 iSeries Navigator 的 File Systems 文件夾內(nèi)找到的程序?qū)ο,您還可以為帶有嵌入 SQL 的程序?qū)ο筮x擇 Explain SQL。

圖 2. EXPLAIN SQL 功能


更易于監(jiān)控和管理數(shù)據(jù)庫(kù)事務(wù)
用 iSeries Navigator 可訪問(wèn)的另一個(gè)文件夾是 V5R2 中新出現(xiàn)的 Transactions 文件夾。這個(gè)文件夾使得監(jiān)控和管理 iSeries 服務(wù)器上的數(shù)據(jù)庫(kù)事務(wù)變得更容易。依照各種選擇標(biāo)準(zhǔn),可以排序或過(guò)濾事務(wù)列表。這可以讓您檢測(cè)死鎖、在通信故障后進(jìn)行恢復(fù),以及通過(guò)使用擁有 DB2 對(duì)象上鎖定的所有實(shí)體,在應(yīng)用程序開發(fā)期間更好地分析性能和事務(wù)。


結(jié)束語(yǔ)


V5R2 通過(guò)提供一組增強(qiáng)功能延續(xù)著 DB2 UDB 在 iSeries 上的發(fā)展勢(shì)頭,這些增強(qiáng)功能為應(yīng)用程序開發(fā)和更廣泛地選擇解決方案提供了靈活性,這樣,領(lǐng)先的軟件供應(yīng)商可以更容易地將他們基于 SQL 的解決方案移植到 iSeries。


關(guān)于作者
  Kent Milligan 是 ParterWorld® for Developers,iSeries 的 DB2 UDB 技術(shù)專家。在 IBM 任職的前八年中,Kent 是位于羅徹斯特的 DB2 開發(fā)小組成員。他定期就各種 iSeries 和 AS/400e 關(guān)系數(shù)據(jù)庫(kù)方面的主題發(fā)表演講并撰寫此類文章。可以通過(guò) kmill@us.ibm.com 與他聯(lián)系。
  

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2003-01-20 17:09 |只看該作者

[轉(zhuǎn)]用于 iSeries V5R2 的 DB2 通用數(shù)據(jù)庫(kù)中有什么新增功能

good
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP