db2详解
db2详解
文章引用地址:
https://blog.csdn.net/hanxin1987216/article/details/4506012
#性能 监控命令
get monitor switches 返回会话监控开关的状态
| update monitor switches using <on | off> 为设置会话监控开关的状态 |
reset monitor all 复位性能监控程序值
get snapshot for dbm
get snapshot for all on
get snapshot for dynamic sql on 返回动态SQL高速缓存的内容
runstats on table . 收集的统计信息
reorgchk on table all 确定是否需要重组 reorgchk on table .
reorg table 通过重组消除碎片
三种实用程序:EXPORT,IMPORT,LOAD
```plain text 这些实用程序支持的文件格式有:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
非定界或定长 ASCII(ASC):顾名思义,这种文件类型包含定长 ASCII 数据,以便与列数据对齐。每个 ASC 文件都是一个
ASCII 字符流,这个字符流由根据行和列排序的数据值组成。数据流中的行由行定界符分隔,而通常将行定界符假定为换行符。
定界 ASCII(DEL):它是各种数据库管理器用于数据交换的最常用文件格式。这种格式包含 ASCII 数据,它使用特殊字符定
界符分隔列值。数据流中的行由换行符充当行定界符进行分隔。
PC 版集成交换格式(PC version of the Integrated Exchange Format,PC/IXF):它是数据库表的结构化描述。这种文件格式不仅
可以用于导入数据,还可以用于创建目标数据库中尚不存在的表。
工作表格式(Worksheet Format,WSF):以这种格式存储的数据可以在工作表中显示。这种格式只能用于导出和导入。
游标:游标是用查询声明的。它只能用作装入操作的输入。
#EXPORT 实用程序使用 SQL SELECT 语句将数据从数据库表抽取到某个文件中。对于导出的数据而言,其文件格式可以是 DEL、IXF 或 WSF。建议您在
导出中包含 MESSAGES 子句,以便在导出期间捕获错误、警告和信息性消息。
EXPORT TO myfile.del OF DEL
```plain text
MESSAGES msg.out
SELECT staff.name, staff.dept, org.location
FROM org,staff
WHERE org.deptnumb = staff.dept;
在前一页上的示例中,数据被抽取到一个 DEL 格式的文件中。缺省情况下,列值由逗号(,)分隔,而字符串由双引号(“)括起来。如果要抽取
的数据已经包含逗号和双引号,那该怎么办呢?如果是这样的话,导入或装入实用程序不可能确定:哪些符号是实际的数据,哪些是定界符。要定
制 EXPORT 的运作方式,可以使用 MODIFIED BY 子句并指定想用文件类型修饰符修改什么。EXPORT 命令的格式如下:
EXPORT TO file_name OF file_type
```plain text MODIFIED BY file_type_modifiers
MESSAGES message_file
select_statement
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
chardelx
指定 x 为新的单字符串定界符。缺省值是双引号(“)。
coldelx
指定 x 为新的单字符列定界符。缺省值是逗号(,)。
codepage=x
指定 x 这个 ASCII 字符串为输出数据的新代码页。在导出操作期间,将字符数据从应用程序代码页转换成这一代码页。
timestampformat=“x”
x 是源表中时间戳记的格式。
考虑下面这个示例:
EXPORT TO myfile.del OF DEL
MODIFIED BY chardel! coldel@ codepage=1208 timestampformat=“yyyy.mm.dd hh:mm tt”
MESSAGES msg.out
SELECT * FROM schedule
面的命令以 DEL 格式从 SCHEDULE 表导出数据,其间发生了下列行为:
字符串由感叹号(!)括起来
列由 @ 号定界
字符串被转换成代码页 1208
SCHEDULE 表中用户定义的时间戳记具有 yyyy.mm.dd hh:mm tt 这种格式
#导出大对象
#可以在控制中心导出表,并进行调度。
#IMPORT实用程序
IMPORT FROM file_name OF file_type
```plain text
MESSAGES message_file
[ INSERT | INSERT_UPDATE | REPLACE | REPLACE_CREATE | CREATE ]
INTO target_table_name
INSERT 选项将导入的数据插入表中。目标表必须已经存在。
INSERT_UPDATE 向表中插入数据,或者用匹配的主键更新表中现有的行。目标表必须存在,且定义了主键。
REPLACE 选项删除现有的全部数据,然后将导入的数据插入现有的目标表中。
有 了 REPLACE_CREATE 选项,如果目标表存在,那么实用程序删除现有的数据,然后插入新数据,就好像指定了 REPLACE 选项一样。如果没有定义目标表,那么在导入数据之前将先创建该表及其相关索引。正如您可以想到的那样,输入文件必须是 PC/IXF 格式的,因为这种格式含有导出表的结构化描述。如果目标表是由外键引用的父表,就不能使用 REPLACE_CREATE。
CREATE 选项创建目标表及其索引,然后将数据导入到新表中。它唯一支持的文件格式是 PC/IXF。您也可以指定表空间的名称,新表将创建于其中。
示例:
IMPORT FROM emp.ixf OF IXF
COMMITCOUNT 500
```plain text MESSAGES msg.out
CREATE INTO employee IN datatbsp INDEX IN indtbsp
1
如果上面的命令因为某些原因而执行失败,那么您可以使用消息文件确定被成功导入并提交的最后一行。然后,您可以使用 ```
RESTARTCOUNT 选项重新启动导入。在下面的命令中,实用程序将跳过前面的 30000 条记录才开始 IMPORT 操作。
IMPORT FROM myfile.ixf OF IXF
COMMITCOUNT 500 RESTARTCOUNT 30000
MESSAGES msg.out
INSERT INTO newtable
```plain text compound=x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
使用非原子的复合 SQL 来插入数据。每次会尝试 x 条语句。
indexschema=schema
在创建索引期间对索引使用指定的模式。
striptblanks
在向变长字段装入数据时,截断任何尾部空格。
lobsinfile
指出要导入 LOB 数据。实用程序将检查 LOBS FROM 子句,以获取输入 LOB 文件的路径。
这里有一个实际使用这些文件类型修饰符的示例:
IMPORT FOR inputfile.asc OF ASC
```plain text
LOBS FROM /u/db2load/lob1, /u/db2load/lob2
MODIFIED BY compount=5 lobinsfile
```plain text INSERT INTO newtable
1
2
3
4
5
6
7
使用控制中心进行import。
##LOAD实用程序概述
```plain text
LOAD 实用程序是另一种用数据来填充表的方法。经过格式化的页被直接
写入数据库。这种机制允许进行比 IMPORT 实用程序更有效的数据移动。
不过,LOAD 实用程序不执行某些操作,如引用或表约束检查以及触发器调用。
LOAD FROM input_source OF input_type
```plain text MESSAGES message_file
| [ INSERT | REPLACE | TERMINATE | RESTART ] |
INTO target_tablename ```