JAVA面试资料整理(db2相关)

本文介绍了DB2中查看数据库参数的命令、错误日志位置以及SQL相关查询。重点阐述了DB2的两种表空间管理方式——SMS(System Managed Space)和DMS(Database Managed Space),分析了它们的存储机制、性能差异以及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 db2查看数据库参数的命令

db2 get dbm cfg

 

2、 db2错误日志记在哪个文件

diag.log

 

3、 db2 sqlcode (参考)

-102

54002

字符串常量太长

-103

42604

无效数学文字

-104

42601

SQL语句中遇到非法符号

-113

42602

遇到无效字符

-119

42803

HAVING语句中的列的列表与GROUP BY语句中的列列表不匹配

-125

42805

ORDER BY语句中指定了无效数字,该数字要么小于1要么大于选定的列数

-204

42704

没有定义的对象名

-205

42703

指定的表的列名无效

-206

42703

列名没有在FROM语句所引用的任何表中,或者没有在定义触发器所在的表中

-911

40001

当前工作单元已被回滚

-913

57033

因为死锁或超时导致不成功执行

4、如何查看db2的表属于哪个表空间,并查看该表空间的状态

Select * from syscat.table where tabname =‘’

Db2 list tablespaces show detail

5、 DB2中的SMS和DMS

在DB2中表空间的存储方式有两种,SMS(System Managed Space)和DMS(DatabaseManaged Space)。

  SMS直接利用操作系统的文件系统来管理数据。表空间中的数据按照系统中所有容器上进行数据块划分。表空间中的所有的表都被赋予了它自己的文件名,此文件名在所有的容器中使用。文件扩展名指示出该文件中存储的数据类型。

  DMS是由数据库进行表空间的存储空间控制。当定义DMS表空间时,需要选择设备或者文件列表,使其属于该表空间。

  DMS表空间和SMS表空间之间的主要差别在于,对于DMS的表空间,存储空间是在创建表空间时分配的,而不是在需要时在向操作系统申请的。并且,在这两种类型的表空间上,数据的放置也是有一些不同之处。例如:考虑进行高效率的表扫描时,数据块在物理上连续存放是很重要的。对于SMS来说,操作系统的文件系统将决定每个逻辑文件页面的物理存储位置。根据文件系统上其他活动的级别以及用来确定存放位置的算法不同,这些逻辑连续的页面可能会连续存放,也可能不连续分配。对于DMS,由于是数据库管理程序直接与磁盘打交道,所以它在理论上可能保证页面在物理上连续存放。

  但是,应该注意的是,当使用DMS表空间时,有两个容器选项:原始设备(raw)和文件(file)。当使用文件选项时,数据库管理程序在创建表空间时向文件系统申请分配整个容器。由于是从文件系统分配得来,导致物理分配通常(但也不保证)是连续的。当使用原始设备容器时,数据库管理程序直接控制整个设备,并总能确保数据块中的页连续分配。

  SMS和DMS表空间相比,SMS表空间特别适合一般用途。SMS表空间能够提供一定的性能,且管理成本很低。如果需要达到最佳的性能,则应该选用DMS表空间。因为使用文件容器或者SMS表空间移动数据时会发生双重缓冲(在数据库管理程序级首先缓冲一次数据,然后在文件系统再缓冲一次数据,这就是双重缓冲),所以使用设备容器可能提供更好的性能。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值