IBM DB2 日常维护汇总(六)
91.如何创建DB2的概要表?
DB2的概要表功能类似于ORACLE的实体化视图!
语法为:
CREATESUMMARYTABLETABLE_NAMEAS(FULLSELECT)...
例如:
定义一个可以刷新的概要表:
CREATESUMMARYTABLETABLE_NAMEAS(SELECT*FROMTABLE_NAME1WHERECOL1='AAA')
DATAINITIALLYDEFERREDREFRESHDEFERRED
其中DATAINITIALLYDEFERRED规定不能将数据作为CREATETABLE语句的一部分插入表中.
REFRESHDEFERRED规定表中的数据可以在任何使用了REFRESHTABLE语句的时候获得刷新!
92.如何刷新概要表?
REFRESHTABLESUM_TABLE
其中SUM_TABLE为概要表.
93.如何修改概要表?
ALTERTABLESUM_TABLE...
94.如何创建临时表?
语法:
DECLAREGLOBALTEMPORARYTABLETABLE_NAME
AS(FULLSELECT)DEFINITIONONLY
EXCLUDINGIDENTITYCOLUMNATTRIBUTES
ONCOMMITDELETEROWS
NOTLOGGED
第一行规定临时表的名称.
第二行规定临时表的列的定义.
第三行规定不是从源结果表定义中复制的恒等列.
第四行规定如果没有打开WITHGOLD光标,将会删除表的所有行.
第五行规定不对表的改变进行记录.
例如:
DECLAREGLOBALTEMPORARYTABLEDEC_BSEMPMS
AS(SELECT*FROMBSEMPMS)DEFINITIONONLY
EXCLUDINGIDENTITYCOLUMNATTRIBUTES
ONCOMMITDELETEROWS
NOTLOGGED
95.视图的管理?
如何创建视图:
CREATEVIEWVIEW_NAMEASSELECT*FROMTABLE_NAMEWHERE...
删除视图:
DROPVIEWVIEW_NAME
96.如何知道视图定义的内容?
SELECT*FROMSYSCAT.VIEWS中的TEXT列中.
97.如何创建别名?
CREATEALIASALIAS_NAMEFORPRO_NAME
后面的PRO_NAME可以是TABLE,VIEW,ALIAS,NICKNAME等.
98.如何创建序列?
例如:
CREATESEQUENCESEQUENCE_NAME
STARTWITHSTART_NUMBER
INCREMENTBYVALUE1
NOMAXVALUE
NOCYCLE
CACHEMAXIMUMNUMBEROFSEQUENCEVALUES
第一行规定序列的名称.
第二行规定序列的开始数值.
第三行规定每次新增的幅度.
第四行规定没有最大数值限制.
第五行规定最大数值限制.
99.如何更改序列?
ALTERSEQUENCESEQUENCE_NAME...
可以修改的参数
STARTWITH的START_NUMBER
INCREMENT的VALUE1
NOMAXVALUE的数值
NOCYCLE属性
MAXIMUMNUMBEROFSEQUENCEVALUES最大数值
100.如何删除序列?
DROPSEQUENCESEQUENCE_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数据库监控的两个组成部分?
快照监控(SNAPSHOTMONITOR)可返回特定时间点的数据库活动的快照.
事件监控(EVENTMONITOR)记录事件发生的数据.
106.系统监控的数据元素类型?
计数器(COUNTER)记录活动发生的次数.
测量(GAUGE)测量条目的当前值.
水线(WATERMARK)从监控来元素达到的最大或最小数值.
信息(INFORMATION)监控活动的参照类型细节.
时间点(TIMESTAMP)活动发生的日期时间.
时间(TIME)返回一个活动花费的时间.
107.如何知道监控堆所需的页的数量?
(NUMBEROFMONITORINGAPPLICATIONS+1)*(NUMBEROFDATABASES*(800+(NUMBEROFTABLES
ACCESSED*20)+((NUMBEROFAPPLICATIONSCONNECTED+1)*(200+(NUMBEROFTABLE
SPACES*100)))))/4096
其大小受参数MON_HEAD_SZ控制.
108.如何建立事件监控器?
CREATEEVENTMONITORTABLEMONFORTABLESWRITETOFILE'D:\TEMP'
109.如何激活事件监控器?
SETEVENTMONITORTABLEMONSTATE1
110.如何停止事件监控器?
SETEVENTMONITORTABLEMONSTATE0
111.如何查询监控器的状态?
SELECTEVMONNAME,EVENT_MON_STATE(EVMONNAME)FROMSYSCAT.EVENTMONITORS
112.如何删除事件监控器?
DROPEVENTMONITORTABLEMON
113.UNIX和WINDOWS上创建管道事件监控器(PIPE意EVNT见MONITOR)的不同?
第一步:定义事件监控器
UNIX:
CONNECTTOSAMPLE
CREATEEVENTMONITORSTMB2FORSTATEMENTSWRITETOPIPE'/TMP/EVPIPE1'
WINDOWS:
CONNECTTOSAMPLE
CREATEEVENTMONITORSTMB2FORSTATEMENTSWRITETOPIPE'\\.\TMP\EVPIPE1'
第二步:建立命名管道
UNIX:
可以使用MKFIFO()函数或者MKFIFO命令.
WINDOWS:
可以使用CREATENAMEDPIPE()函数,管道名称与CREATEEVENTMONITOR规定名称相同.
第三步:打开命名管道
UNIX:
使用OPEN()函数.
WINDOWS:
使用CONNECTNAMEDPIPE()函数.
也可以用DB2EVMON命令,如:
DB2EVMON-DBSAMPLE-EVMSTMB2
第四步:激活命名管道事件监控器
除非自动激活命名管道事件监控器,否则
SETEVENTMONITORSTMB2STATE1
第五步:从命名管道读取数据
UNIX:
可以使用READ()函数.
WINDOWS:
可以使用READFILE()函数.
第六步:停止事件监控器
SETEVENTMONITORSTMB2STATE0
第七步:关闭命名管道
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-->SQLREFERENCE-->FUNCTIONS内
120.如何执行DB2的脚本文件?
DB2-VTFFILENAME
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的