國產資料庫達夢資料庫(DM7)例項初始化引數淺析

qinglingjing發表於2019-09-03

國產達夢資料庫(DM7)在初始化資料庫例項時會涉及到資料庫標識如埠號的配置,也有頁大小、字符集等引數的初始化配置,其中一些引數是作用在資料庫例項的整個生命週期內的,一旦初始化不能修改。在實際使用過程中這些引數的不同,可能會對資料儲存、查詢、分組等存在不同的影響,本篇根據官方文件說明、實踐經驗、測例總結,主要闡述引數值不同帶來的不同影響效果。

1、 頁大小(PAGE_SIZE)

資料頁(也稱資料塊) 是 DM 資料庫中最小的資料儲存單元。 頁的大小對應物理儲存空間上特定數量的儲存位元組。頁大小可以為 4KB、 8KB、 16KB 或者 32KB,預設值為8K。

該引數主要影響的是資料庫中實際可儲存的字串長度大小和一行資料的總長度。

在基表列定義字串型別時,其最大儲存長度由資料庫頁面大小決定,可以指定一個不超過其最大儲存長度的正整數作為字元長度,最大儲存長度和頁面大小的對應關係請見下表。另外,實際插入表中的列長度要受到記錄長度的約束,每條記錄總長度不能大於頁面大小的一半(不包含大欄位列)。

資料庫例項頁大小

字串列定義實際最大長度

4K

1900

8K

3900

16K

8000

32K

8188

 這個限制長度只針對建表的情況,在定義變數的時候和表示式計算中,可以不受這個限制長度的限制。

選擇的頁大小越大,則 DM 支援的元組長度也越大,但同時空間利用率可能下降。通長預設為8K即夠用,也可根據實際業務需求選擇合理的頁大小或將長字串列變為大欄位列處理。

           2、 簇大小(EXTENT_SIZE)

簇是資料頁的上級邏輯單元 ,由同一個資料檔案中 16 個或 32 個連續的資料頁組成。即每次分配新的段空間時連續的頁數。沒有特殊需求預設16就可以。

3、 大小寫敏感(CASE_SENSITIVE)

識別符號大小寫敏感。當大小寫敏感時,小寫的識別符號應用""括起,否則被系統自動轉換為大寫;當大小寫不敏感時,系統不會轉換識別符號的大小寫,在識別符號比較時也不能區分大小寫。通俗來說,就是大小寫不敏感時無論大小寫都是一樣的;大小寫敏感時,只有“”中的內容是嚴格區分大小寫的,其他都會預設轉換成大寫。

如下圖示例中,大小寫敏感的情況下,表名因為沒有雙引號會預設轉換為大寫,欄位中加了雙引號的c3和Cc4會保持原有大小寫的樣子且只有使用定義時的方式才可查詢到相應內容。

 

如下圖示例中,大小寫不敏感的情況下,表名、列名、字串內容全部忽略大小寫,無論大寫、小寫、是否加雙引號都不影響。

 

4、 字符集編碼(CHARSET/UNICODE_FLAG)

字符集選項。 取值: 0 代表 GB18030, 1 代表 UTF-8, 2 代表韓文字符集 EUC-KR。 預設為 0 。

5、 VARCHAR型別長度是否以字元為單位(LENGTH_IN_CHAR)

1 或 Y:是, 所有 VARCHAR 型別物件的長度以字元為單位。 這種情況下, 定義長度並非真正按照字元長度調整,而是將儲存長度值按照理論字元長度進行放大。所以會出現實際可插入字元數超過定義長度的情況,這種情況也是允許的。同時,儲存的位元組長度 8188 上限仍然不變,也就是說,即使定義列長度為 8188 字元,其實際能插入的字串佔用總位元組長度仍然不能超過 8188;

0 或 N:否,所有 VARCHAR 型別物件的長度以位元組為單位。預設是0。

該引數影響的僅僅是VARCHAR資料型別,對CHAR型別不影響。

當length_in_char=0時,varchar型別列儲存單位為位元組,如下圖示例中c2列varchar(10)最多儲存10個位元組。

當length_in_char=1時,varchar型別列儲存單位為字元(即2個位元組),如下圖示例中c2列varchar(10)最多儲存20個位元組。

 

6、 空格填充模式(BLANK_PAD_MODE)

設定字串比較時, 結尾空格填充模式是否相容 ORACLE。 取值: 1 相容; 0 不相容。預設為 0。

通俗來說,就是在比較、count等操作時是否嚴格區分字串’a’和’a  ‘。

當BLANK_PAD_MODE=0時,除去group by 這種分組操作時嚴格區分外,其他比較、count等操作不嚴格區分’a’和’a  ‘,認為這兩個字串是相等的,如下圖示例。

 


當BLANK_PAD_MODE=1時,所有操作嚴格區分’a’和’a  ‘,如下圖示例。

 

除以上引數會影響到具體的使用外,還有預設加密演算法、預設HASH演算法、根金鑰加密引擎、全庫加密演算法、是否使用改進的字元型別HASH演算法(USE_NEW_HASH)等引數也是例項生命週期內不允許修改的,這些引數只會在做備份還原時要求一致性,對實際使用影響不大,可根據需求定義即可。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29130514/viewspace-2655856/,如需轉載,請註明出處,否則將追究法律責任。

相關文章