12.11.1 ノースプリットオプションの適用基準と指定方法
表に次に示すデータ型が定義されていて,次に示すデータ型の実際のデータ長が256バイト以上の場合,1行のデータを複数のページに格納します。このときのデータ格納方式を次の図に示します。
-
VARCHAR
-
MVARCHAR
-
NVARCHAR
図12‒21 可変長文字列の実際のデータ長が256バイト以上の場合のデータ格納方式
- 〔説明〕
-
可変長文字列を除いたデータと可変長文字列のデータは,異なるページに格納されます。このため,データの格納効率が低下します。このような場合に,ノースプリットオプションを指定してデータの格納効率を向上してください。
(1) 適用基準
ノースプリットオプションを指定すると,可変長文字列の実際のデータ長が256バイト以上であっても,1行を1ページに格納します。ノースプリットオプションを指定したときのデータ格納方式を次の図に示します。
- 〔説明〕
-
1行の全データを同じページに格納します。このため,データの格納効率がノースプリットオプションを指定しないときに比べて向上します。
(3) 注意
-
1行のデータ長の合計がページ長を超える場合は,ノースプリットオプションを指定してもスプリット(1行のデータを複数のページに格納)します。
-
可変長文字列の実際のデータ長が255バイト以下の場合にノースプリットオプションを指定すると,指定しないときに比べて列データ長が1バイト長くなります。
-
ノースプリットオプションを指定すると,可変長文字列の実際のデータ長が256バイト以上であっても分岐しないため,ノースプリットオプションを指定しない場合と比べて1ページに格納される行数が少なくなります。このため,インデクススキャンでノースプリットオプションが適用された可変長文字列型の列データを取り出さない検索をすると,ノースプリットオプションを指定しないときに比べてアクセスするページ数が多くなり,検索性能が低下することがあります。ただし,キースキャン及びテーブルスキャンの場合は影響はありません。