經驗總結:DB2數據庫功能及性能使用方法

◆1.安裝DB2後可以通過命令窗口這樣的命令行方式或控制中心這樣的圖形界面方式來操作,而如果你的數據庫服務端不在本機,則還需要在“客戶機配置輔助程序”中做一個客戶端連接的配置。

◆2.控制中心中無法增刪改數據,只能編寫sql語句來實現而quest提供的工具雖然能增加數據,但居然無法用複制、粘貼和Tab鍵,必須逐個輸入,然後用鼠標點擊切換現存數據看來可以在單元格中編輯修改,但實際卻無法commit,呵呵,還是老老實實寫update語句,至于刪除數據,更是非寫delete語句不可。不過可以用pb以單元格方式編輯數據,相應的一個缺點是編輯數據的按鈕和刪除表的按鈕太近,萬一點錯了刪除表的按鈕,pb可是不作提示就把表給刪了的,faint

◆3.DB2的視圖裏不能直接用order by語句,必須這樣寫 select × from(select a,b,c from table1 order by a)astab

這種寫法的前提是你已經打過補丁了

◆4.存儲過程的問題:

DB2提供ltrim函數和rtrim函數,但偏偏不提供trim函數,如果你希望去除字符兩端的空格,對不起,必須用ltrim(rtrim()) 的方式調用insert 語句裏面居然不能用表達式賦值,必須把值先賦給一個變量調用其他存儲過程時竟然不能用常量做參數,必須把這個常量的值賦給一個變量,再以這個變量爲參數

select * from table fetch first n rows only 語句居然在存儲過程裏不可用

◆5.存儲過程裏可以使用動態sql,但函數裏卻不可以使用

◆6. 遇到commit或rollback時自動關閉遊標,所以需要慎重使用單獨提交。

proc builder老是在調試中內存不足,屏幕花掉。而如果斷點調試時暫停不進行下去的時間稍微長一點就會提示超時,受不了。

◆7.開發中遇到的一個問題

◆在使用日期變量+1 MONTHS OR 日期變量-1 MONTHS 的方式取日期時,比如日期變量值爲 2004-02-29時,存儲過程裏將日期變量+1 MONTHS 賦值給另一

日期變量時會出錯。相應SQLSTATE爲01506(db2 ? 01506): 對 DATE 或TIMESTAMP值進行了調整,以校正算術運算得出的無效日期。

◆如果要獲取的只是下一月份,可采用的替代方法是獲取當前日期所在月份的第一天作爲基准後+1 MONTHS OR -1 MONTHS

◆8.存儲過程的經驗

搞了半天搞不定,一查原來的文檔才了,原來tmd該死的DB2的存儲過程,是轉換爲C後,進行編譯的。因此在數據庫服務器上要安裝一個C編譯器才能完成存儲過程的編譯。並且需要使用DB2SET命令,設置DB2_SQLROUTINE_COMPILER_PATH指向C編譯器的安裝路徑。如:db2set

DB2_SQLROUTINE_COMPILER_PATH=E:ProgramFilesMicrosoftVisualStudioVC98Binvcvars32.bat

◆9.對變量的賦值不能用select ..into ..方式而要用set v=(select ..)的方式,代碼示例如下。

drop function SXFM.ISORDERSUBMITDATE;

CREATE FUNCTION SXFM.ISORDERSUBMITDATE(IN_ROW_ID DECIMAL(16,0))

RETURNS DATE

LANGUAGE SQL

BEGIN ATOMIC

DECLARE V_SUBMIT_DATE DATE;

DECLARE V_SELL_ID DECIMAL(16, 0);

DECLARE V_BUY_ID DECIMAL(16, 0);

set V_SELL_ID = (SELECT COALESCE(RECEIVE_ID,-1) FROM IS_ORDER WHERE ROW_ID=IN_ROW_ID);

set V_BUY_ID = (SELECT COALESCE(PAY_ID,-1) FROM IS_ORDER WHERE ROW_ID=IN_ROW_ID);

set V_SUBMIT_DATE = (SELECT DATE(MAX(A.SUBMIT_DATE)) FROM AM_AUDIT_QUEUE A,SM_USER B,SM_USER C

WHERE A.TABLE_CODE='IS_ORDER' AND A.TABLE_ROW_ID=IN_ROW_ID

AND A.AUDIT_EMP_ID=C.ROW_ID AND C.BRANCH_ID=V_BUY_ID --審核方爲付款方

AND A.SUBMIT_EMP_ID=B.ROW_ID AND B.BRANCH_ID=V_SELL_ID); --提交方爲收款方

RETURN V_SUBMIT_DATE;

END;

#SYNC 10;

◆10.DB2的遊標打開後遇到commit和rollback默認是會關閉的。保持遊標打開的方法是在定義遊標時加上with hold選項

◆11.F:導出某張表的數據,且該表包含long varchar型數據,該如何操作Q:Export:db2 connect to [dbname] user [user] using [password]db2move [dbname] export -tn

講解監控IBM DB2數據庫的性能的詳細步驟
DB2數據庫性能監控的具體步驟: 1:創建sql語句的監視器 db2 create event monitor statmon for statements write to file 'C:\IBM\butone\statmon'" 2:創建目錄 md C:\IBM\butone\statmon 3:啓動監視器 db2 set e...查看完整版>>講解監控IBM DB2數據庫的性能的詳細步驟
 
個人經驗總結:Sybase數據庫性能優化
這篇論壇文章(賽迪網技術社區)用一個實例講解了Sybase數據庫性能優化的具體過程,具體內容請參考下文: 共享鎖 sp_getapplock 鎖定應用程序資源 sp_releaseapplock 爲應用程序資源解鎖 SET LOCK_TIMEOUT 1800 鎖超...查看完整版>>個人經驗總結:Sybase數據庫性能優化
 
個人經驗總結:DB2數據庫邏輯卷的複制
這篇論壇文章(賽迪網技術社區)著重介紹了DB2數據庫邏輯卷的複制,詳細內容請參考下文: 周末加班,需要把db2的instance和數據遷移到datavg下(原來的“DBA”給部署到rootvg下了......所以在這裏我在DBA前後都加了引...查看完整版>>個人經驗總結:DB2數據庫邏輯卷的複制
 
個人經驗總結:DB2數據庫技術關鍵領域列表
許多技術人員可以輕松地討論db2技術的細節,很自信地談論查詢並行化、數據壓縮、WebSphere MQ 集成、大對象管理、JDBC 和 ADO.Net 驅動程序、大型機 Parallel Sysplex 上的數據共享、DB2 for Linux, Unix, and windo...查看完整版>>個人經驗總結:DB2數據庫技術關鍵領域列表
 
實例講解DB2數據庫性能監控的具體步驟
DB2數據庫性能監控的具體步驟: 1:創建sql語句的監視器 db2 create event monitor statmon for statements write to file 'C:\IBM\butone\statmon'" 2:創建目錄 md C:\IBM\butone\statmon 3:啓動監視器 db2 set e...查看完整版>>實例講解DB2數據庫性能監控的具體步驟
 
講解IBM DB2數據庫性能調整的相關命令
IBM DB2數據庫性能調整命令: 查看執行計劃: db2expln: db2expln -d dbname -c pkgOwner -p pkgNmae -o expln.out dynexpln: dynexpln -d eos -q "select * from eosmenu" -g -t dynexpln -d eos -f query.sql -o ou...查看完整版>>講解IBM DB2數據庫性能調整的相關命令
 
基于DB2的數據庫應用系統的性能優化(1)
  摘要 結合DB2的使用經驗,從數據庫設計、查詢優化、並發控制、客戶/服務器模式四個方面來討論數據庫應用系統性能優化的一些原則、方法等。  要害詞 DB2 性能優化 數據庫設計 查詢優化 並發控制 C/S模式  引言...查看完整版>>基于DB2的數據庫應用系統的性能優化(1)
 
DB2數據庫中提高INSERT性能詳解(1)
  INSERT 處理過程概述  首先讓我們快速地看看插入一行時的處理步驟。這些步驟中的每一步都有優化的潛力,對此我們在後面會一一討論。  在客戶機預備 語句。對于動態 SQL,在語句執行前就要做這一步,此處的性...查看完整版>>DB2數據庫中提高INSERT性能詳解(1)
 
DB2數據庫設計和最高性能原則(1)
  這篇文章的目的是爲了給IBM(r)商業夥伴提供一些重要的信息,這些信息是關于DB2通用數據庫(UDB)在z/OS(r) 環境下(以下簡稱DB2)DB2(r)數據庫性能方面的。本文試圖將來自多方資源的材料進行整合,然後盡量有效地...查看完整版>>DB2數據庫設計和最高性能原則(1)
 
 
回到王朝網路移動版首頁