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 ystem32\drivers\etc ervices
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
待續…
