JAVA面試資料整理(db2相關)

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表空間移動數據時會發生雙重緩衝(在數據庫管理程序級首先緩衝一次數據,然後在文件系統再緩衝一次數據,這就是雙重緩衝),所以使用設備容器可能提供更好的性能。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章