DB2常用傻瓜问题1000问(之三)
作者: CCBZZP
大家在应用DB2的时候可能会遇到一些看似简单的问题,特别对新手来说,我在此简单的
总结一下,发布给大家,希望对大家能有所帮助,同时也欢迎大家一起探讨,共同发展,共同进步!
以下主要以DB2 7.X为基础的. 以下的字符为小写.
本文对DB2高手来说是不用看的.
所有字符為小寫.
91. 如何創建DB2的概要表?
DB2的概要表功能類似于ORACLE的實体化視圖!
語法為:
CREATE SUMMARY TABLE TABLE_NAME AS (FULLSELECT) ...
例如:
定義一個可以刷新的概要表:
CREATE SUMMARY TABLE TABLE_NAME AS (SELECT * FROM TABLE_NAME1 WHERE COL1='AAA')
DATA INITIALLY DEFERRED REFRESH DEFERRED
其中DATA INITIALLY DEFERRED規定不能將數据作為CREATE TABLE語句的一部分插入表中.
REFRESH DEFERRED規定表中的數据可以在任何使用了REFRESH TABLE語句的時候獲得刷新!
92. 如何刷新概要表?
REFRESH TABLE SUM_TABLE
其中SUM_TABLE為概要表.
93. 如何修改概要表?
ALTER TABLE SUM_TABLE ...
94. 如何創建臨時表?
語法:
DECLARE GLOBAL TEMPORARY TABLE TABLE_NAME
AS (FULLSELECT) DEFINITION ONLY
EXCLUDING IDENTITY COLUMN ATTRIBUTES
ON COMMIT DELETE ROWS
NOT LOGGED
第一行規定臨時表的名稱.
第二行規定臨時表的列的定義.
第三行規定不是從源結果表定義中復制的恒等列.
第四行規定如果沒有打開WITH GOLD光標,將會刪除表的所有行.
第五行規定不對表的改變進行記錄.
例如:
DECLARE GLOBAL TEMPORARY TABLE DEC_BSEMPMS
AS (SELECT * FROM BSEMPMS) DEFINITION ONLY
EXCLUDING IDENTITY COLUMN ATTRIBUTES
ON COMMIT DELETE ROWS
NOT LOGGED
95. 視圖的管理?
如何創建視圖:
CREATE VIEW VIEW_NAME AS SELECT * FROM TABLE_NAME WHERE ...
刪除視圖:
DROP VIEW VIEW_NAME
96. 如何知道視圖定義的內容?
SELECT * FROM SYSCAT.VIEWS中的TEXT列中.
97. 如何創建別名?
CREATE ALIAS ALIAS_NAME FOR PRO_NAME
后面的PRO_NAME可以是TABLE,VIEW,ALIAS,NICKNAME等.
98. 如何創建序列?
例如:
CREATE SEQUENCE SEQUENCE_NAME
START WITH START_NUMBER
INCREMENT BY VALUE1
NOMAXVALUE
NOCYCLE
CACHE MAXIMUM NUMBER OF SEQUENCE VALUES
第一行規定序列的名稱.
第二行規定序列的開始數值.
第三行規定每次新增的幅度.
第四行規定沒有最大數值限制.
第五行規定最大數值限制.
99. 如何更改序列?
ALTER SEQUENCE SEQUENCE_NAME ...
可以修改的參數
START WITH 的 START_NUMBER
INCREMENT 的 VALUE1
NOMAXVALUE的數值
NOCYCLE屬性
MAXIMUM NUMBER OF SEQUENCE VALUES 最大數值
100. 如何刪除序列?
DROP SEQUENCE SEQUENCE_NAME
101. DB2支持導入(IMPORT)的文件格式有?
有: DEL,ASC,IXF,WSF等
102. DB2支持導出(EXPORT)的文件格式有?
有: DEL,IXF,WSF等.
不支持ASC格式.
103. DB2支持載入(LOAD)的文件格式有?
有: DEL,ASC,IXF等.
不支持WSF格式.
104. DB2支持DB2MOVE的文件格式有?
有: IXF等.
不支持ASC,DEL,WSF格式.
105. DB2數据庫監控的兩個組成部分?
快照監控(SNAPSHOT MONITOR)可返回特定時間點的數据庫活動的快照.
事件監控(EVENT MONITOR)記錄事件發生的數据.
106. 系統監控的數据元素類型?
計數器(COUNTER)記錄活動發生的次數.
測量(GAUGE)測量條目的當前值.
水線(WATER MARK)從監控來元素達到的最大或最小數值.
信息(INFORMATION)監控活動的參照類型細節.
時間點(TIMESTAMP)活動發生的日期時間.
時間(TIME)返回一個活動花費的時間.
107. 如何知道監控堆所需的頁的數量?
(NUMBER OF MONITORING APPLICATIONS+1)*(NUMBER OF DATABASES*(800+(NUMBER OF TABLES
ACCESSED*20)+((NUMBER OF APPLICATIONS CONNECTED+1)*(200+(NUMBER OF TABLE
SPACES*100)))))/4096
其大小受參數MON_HEAD_SZ控制.
108. 如何建立事件監控器?
CREATE EVENT MONITOR TABLEMON FOR TABLES WRITE TO FILE 'D:\TEMP'
109. 如何激活事件監控器?
SET EVENT MONITOR TABLEMON STATE 1
110. 如何停止事件監控器?
SET EVENT MONITOR TABLEMON STATE 0
111. 如何查詢監控器的狀態?
SELECT EVMONNAME,EVENT_MON_STATE(EVMONNAME) FROM SYSCAT.EVENTMONITORS
112. 如何刪除事件監控器?
DROP EVENT MONITOR TABLEMON
113. UNIX和WINDOWS上創建管道事件監控器(PIPE意EVNT見MONITOR)的不同?
第一步: 定義事件監控器
UNIX:
CONNECT TO SAMPLE
CREATE EVENT MONITOR STMB2 FOR STATEMENTS WRITE TO PIPE '/TMP/EVPIPE1'
WINDOWS:
CONNECT TO SAMPLE
CREATE EVENT MONITOR STMB2 FOR STATEMENTS WRITE TO PIPE '\\.\TMP\EVPIPE1'
第二步: 建立命名管道
UNIX:
可以使用MKFIFO()函數或者MKFIFO命令.
WINDOWS:
可以使用CREATENAMEDPIPE()函數,管道名稱与CREATE EVENT MONITOR規定名稱相同.
第三步: 打開命名管道
UNIX:
使用OPEN()函數.
WINDOWS:
使用CONNECT NAMEDPIPE()函數.
也可以用DB2EVMON命令,如:
DB2EVMON -DB SAMPLE -EVM STMB2
第四步: 激活命名管道事件監控器
除非自動激活命名管道事件監控器,否則
SET EVENT MONITOR STMB2 STATE 1
第五步: 從命名管道讀取數据
UNIX:
可以使用READ()函數.
WINDOWS:
可以使用READFILE()函數.
第六步: 停止事件監控器
SET EVENT MONITOR STMB2 STATE 0
第七步: 關閉命名管道
UNIX:
可以使用CLOSE()函數.
WINDOWS:
可以使用DISCONNECTNAMEDPIPE()函數.
第八步: 刪除命名管道
UNIX:
可以使用UNLINK()函數.
WINDOWS:
可以使用CLOSEHANDLE()函數.
114. DB2的SQL語句的類別?
DCL: 數据控制語言,提供對數据庫對象的訪問權限.
DDL: 數据定義語言,創建,修改,刪除數据庫對象的.
DML: 數据操縱語言,用來插入,更新,刪除數据的.
115. DCL的權限有哪些?
CONTROL權限: 如果用戶創建一個對象,則改用戶能完全訪問該對象.
GRANT 語句將權限授予給用戶.
REVOKE 語句撤銷一個用戶的權限.
116. DDL有哪些?
CREATE
DECLARE
ALTER
DROP
等
117. DML有哪些?
INSERT
SELECT
UPDATE
DELETE
等
118. DB2有沒有布爾類型?
沒有
119. 如何查詢DB2的內置函數?
自帶文檔ADMINISTION-->SQL REFERENCE-->FUNCTIONS內
120. 如何執行DB2的腳本文件?
DB2 -VTF FILENAME
121. DB2中象ORACLE的ROWNUM()是?
ROW_NUMBER() OVER()
122. DB2如何得到錯誤代碼的說明?
DB2 ? SQLCODE
123. DB2中的VARCHAR轉換為INTEGER的函數為?
CAST()
124. DB2中的INTEGER轉換為VARCHAR的函數為?
CHAR()
125. DB2中的VARCHAR轉換為DATE的函數為?
DATE()
126. DB2中的DATE轉換為VARCHAR的函數為?
CHAR()
127. DB2中的TRIGGER能否修改?
不能,只能刪除重建
128. WINDOWS下如何知道DB2的端口號?
\WINNT\SYSTEM32\DRIVERS\ETC\SERVICES
129. DB2如何執行存儲過程?
可以 DB2 CALL PROCEDURE_NAME
130. 如何進入DB2的DOS命令方式?
DB2CMD
131. 如何得到DB2的進程號?
DB2 LIST APPLICATIONS
132. 如何殺DB2的進程?
FORCE APPLICATION(ID)
133. A用戶安裝DB2后,如何用B用戶啟動DATABASE?
在B用戶下的.PROFILE中加上
./HOME/DB2INST/SQLLIB/DB2PROFILE
134. DB2中類似ORACLE的快照是?
SUMMARY TABLE
待續...