IBM DB2日常维护全面指南(第六部分) 91. 如何创建DB2概要表? DB2概要表的功能类似于Oracle的物化视图,是一种预先计算并存储查询结果的数据对象。 其基本创建语法如下: CREATE SUMMARY TABLE 表名 AS (完整查询语句)... 以下是一个具体的示例,创建一个支持
DB2概要表的功能类似于Oracle的物化视图,是一种预先计算并存储查询结果的数据对象。
其基本创建语法如下:
CREATE SUMMARY TABLE 表名 AS (完整查询语句)...
以下是一个具体的示例,创建一个支持延迟刷新的概要表:
CREATE SUMMARY TABLE 示例表 AS (SELECT * FROM 源表 WHERE 列1 = ‘AAA‘)
DATA INITIALLY DEFERRED REFRESH DEFERRED
关键字DATA INITIALLY DEFERRED确保创建时不立即插入数据。REFRESH DEFERRED表示表数据可在执行REFRESH TABLE命令时进行刷新。
刷新操作通过一条简单命令完成:
REFRESH TABLE 概要表名
其中概要表名为需要刷新的目标概要表名称。
可以使用标准的ALTER TABLE语句对概要表进行结构修改:
ALTER TABLE 概要表名...
创建全局临时表的语法示例如下:
DECLARE GLOBAL TEMPORARY TABLE 临时表名
AS (完整查询) DEFINITION ONLY
EXCLUDING IDENTITY COLUMN ATTRIBUTES
ON COMMIT DELETE ROWS
NOT LOGGED
首行定义临时表名称。第二行指定列定义方式。第三行EXCLUDING IDENTITY COLUMN ATTRIBUTES表示忽略源表自增属性。第四行ON COMMIT DELETE ROWS规定事务提交时删除所有行(使用WITH HOLD游标除外)。第五行NOT LOGGED声明不记录操作日志。
实际应用示例:
DECLARE GLOBAL TEMPORARY TABLE 临时员工表
AS (SELECT * FROM 员工主表) DEFINITION ONLY
EXCLUDING IDENTITY COLUMN ATTRIBUTES
ON COMMIT DELETE ROWS
NOT LOGGED
创建视图:
CREATE VIEW 视图名 AS SELECT * FROM 表名 WHERE...
删除视图:
DROP VIEW 视图名
通过查询系统目录表SYSCAT.VIEWS实现,视图定义存储于TEXT列:
SELECT * FROM SYSCAT.VIEWS
使用CREATE ALIAS语句创建别名:
CREATE ALIAS 别名 FOR 原对象名
原对象名可以是表、视图、别名或昵称等数据库对象。
创建序列的标准语法:
CREATE SEQUENCE 序列名
START WITH 起始值
INCREMENT BY 增量值
NO MAXVALUE
NO CYCLE
CACHE 缓存数量
首行定义序列名称。第二行设置起始值。第三行定义递增步长。第四行声明无最大值限制。第五行指定不循环。第六行设置缓存预分配值数量。
使用ALTER SEQUENCE语句进行修改:
ALTER SEQUENCE 序列名...
可修改参数包括:起始值(START WITH)、增量步长(INCREMENT BY)、最大值(NO MAXVALUE或具体值)、循环属性(CYCLE)、缓存大小(CACHE)。
直接使用DROP语句删除:
DROP SEQUENCE 序列名
支持格式包括:DEL(定界ASCII)、ASC(非定界ASCII)、IXF(集成交换格式)、WSF(工作表格式)等。
支持DEL、IXF、WSF格式。注意:不支持ASC格式导出。
支持DEL、ASC、IXF格式。注意:不支持WSF格式载入。
DB2MOVE数据迁移工具仅支持IXF格式,不支持ASC、DEL、WSF格式。
DB2监控系统包含两大组件:快照监控捕获特定时刻数据库活动状态;事件监控持续记录指定事件发生的详细信息。
监控数据元素主要类型:累计活动次数的计数器;反映瞬时值的测量器;记录极值的水线;提供详细信息的信息元素;标记时间的时间戳;记录耗时的时间值。
监控堆大小估算公式:
(监控应用数 + 1) * (数据库数 * (800 + (访问表数 * 20)) + ((连接应用数 + 1) * (200 + (表空间数 * 100))))) / 4096
大小主要由数据库配置参数MON_HEAD_SZ控制。
使用CREATE EVENT MONITOR语句,例如创建表事件文件监控器: CREATE EVENT MONITOR 表监控器 FOR TABLES WRITE TO FILE ‘D:\临时目录‘
使用SET命令将状态设为1: SET EVENT MONITOR 表监控器 STATE 1
使用SET命令将状态设为0: SET EVENT MONITOR 表监控器 STATE 0
查询系统视图获取所有事件监控器状态: SELECT 监控器名, EVENT_MON_STATE(监控器名) FROM SYSCAT.EVENTMONITORS
使用DROP语句删除: DROP EVENT MONITOR 表监控器
管道事件监控器创建在两大平台存在差异:
第一步:定义事件监控器
UNIX:
CONNECT TO SAMPLE
CREATE EVENT MONITOR 语句监控器 FOR STATEMENTS WRITE TO PIPE ‘/TMP/管道1‘
WINDOWS:
CONNECT TO SAMPLE
CREATE EVENT MONITOR 语句监控器 FOR STATEMENTS WRITE TO PIPE ‘\\.\TMP\管道1‘
第二步:建立命名管道
UNIX:使用mkfifo()系统调用或mkfifo命令。
WINDOWS:使用CreateNamedPipe() API函数,名称需与CREATE EVENT MONITOR指定一致。
第三步:打开命名管道
UNIX:使用open()函数。
WINDOWS:使用ConnectNamedPipe()函数。简化方法可直接使用DB2EVMON命令:DB2EVMON -DB SAMPLE -EVM 语句监控器
第四步:激活管道事件监控器
除非设置自动激活,否则需手动执行:SET EVENT MONITOR 语句监控器 STATE 1
第五步:从管道读取数据
UNIX:使用read()函数。
WINDOWS:使用ReadFile()函数。
第六步:停止事件监控器
SET EVENT MONITOR 语句监控器 STATE 0
第七步:关闭命名管道
UNIX:使用close()函数。
WINDOWS:使用DisconnectNamedPipe()函数。
第八步:删除命名管道
UNIX:使用unlink()函数。
WINDOWS:使用CloseHandle()函数。
DB2 SQL语句分为三大类:
DCL:数据控制语言,管理数据库对象访问权限。
DDL:数据定义语言,创建、修改和删除数据库对象。
DML:数据操纵语言,处理数据的插入、查询、更新和删除。
DCL核心为权限管理:对象创建者自动获得该对象CONTROL权限,拥有完全控制权。
GRANT语句用于授予权限。
REVOKE语句用于撤销权限。
常见DDL语句包括:CREATE(创建)、DECLARE(声明临时表)、ALTER(修改)、DROP(删除)。
核心DML语句:INSERT(插入)、SELECT(查询)、UPDATE(更新)、DELETE(删除)。
不支持。DB2未内置BOOLEAN数据类型。
通过DB2官方文档查询:管理指南 → SQL参考手册 → 函数章节。
使用DB2命令行工具-tvf参数:DB2 -tvf 文件名
DB2使用OLAP函数实现行号:ROW_NUMBER() OVER()
命令行中使用问号查询:DB2 SQL错误码
使用CAST()函数进行转换。
使用CHAR()函数。
使用DATE()函数。
使用CHAR()函数。
不能直接修改。需先DROP旧触发器,再CREATE新触发器。
端口信息记录于系统服务文件:\WINNT\SYSTEM32\DRIVERS\ETC\SERVICES
(不同Windows版本系统目录可能为WINNT或WINDOWS)
使用CALL语句:CALL 存储过程名
Windows命令提示符下输入:DB2CMD
执行以下命令获取连接应用信息(含进程句柄):DB2 LIST APPLICATIONS
使用FORCE APPLICATION命令:FORCE APPLICATION (应用句柄ID)
在B用户配置文件中源引入DB2实例用户的profile文件,例如:./HOME/DB2实例用户/SQLLIB/DB2PROFILE
DB2中对应功能为概要表。
上一页 [1] [2]
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述