首页 > 数据库 > DB2 > 正文

DB2常用傻瓜问题1000问(之三)

2020-03-09 22:30:25
字体:
来源:转载
供稿:网友
                  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



   待續...



  

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表