Babelfish でのパーティショニングについて
バージョン 4.3.0 以降、Babelfish はサポートが制限されたテーブルとインデックスのパーティショニングを導入しました。以下のセクションでは、パーティション関数の作成、パーティションスキームの定義、Babelfish でのパーティションテーブルとインデックスの実装について詳しく説明します。
Babelfish でのパーティショニングの紹介
-
パーティション関数:
-
CREATE PARTITION FUNCTION:パーティション分割列タイプと各パーティションの値の範囲を指定して、テーブルまたはインデックスをパーティション分割する方法を定義します。 -
DROP PARTITION FUNCTION:既存のパーティション関数を削除します。
-
-
パーティションスキーム:
-
CREATE PARTITION SCHEME:パーティションとファイルグループ間のマッピングを定義します。注記
Babelfish では、ファイルグループはダミーオブジェクトとして扱われ、物理的なストレージの場所を表すものではありません。
-
DROP PARTITION SCHEME:既存のパーティションスキームを削除します。
-
-
システム関数:
-
$PARTITION:このシステム関数は、パーティショニング列内の指定された値が、指定されたパーティションテーブルに属するパーティション番号を返します。
-
-
パーティションテーブルとインデックス:
-
CREATE TABLE ... ON partition_scheme_name (partition_column_name):指定されたパーティションスキームとパーティション列に基づいてパーティションテーブルを作成します。 -
CREATE INDEX ... ON partition_scheme_name (partition_column_name):指定されたパーティションスキームとパーティション列に基づいてパーティションインデックスを作成します。
-
-
メタデータをパーティショニングするためのシステムビュー:
パーティショニングに関連するメタデータを提供するために、次のシステムビューが追加されました。
-
sys.destination_data_spaces -
sys.partitions -
sys.partition_functions -
sys.partition_parameters -
sys.partition_range_values -
sys.partition_schemes
-
制限と回避策
次の SQL Server パーティショニング機能は、Babelfish ではまだサポートされていません。
-
ALTER PARTITION FUNCTIONおよびALTER PARTITION SCHEME。注記
Babelfish は、分割オペレーションとマージオペレーションをサポートしていません。パーティションを後から追加または削除することはできないため、作成時にパーティション関数ですべてのパーティションを定義してください。
-
パーティショニング列としての計算列。
-
パーティションテーブルに対する
INSERT BULKおよびBCPユーティリティ。 -
パーティション関数の
LEFT境界オプション。 -
パーティション関数の
SQL_VARIANTデータ型。 -
TRUNCATE TABLE ... WITH PARTITION. -
ALTER TABLE ... SWITCH PARTITION. -
パーティションスキームやパーティションテーブルとは異なるパーティション列など、整列されていないパーティションインデックス。
-
Babelfish ソースからの DMS 移行は、パーティションテーブルのフルロードタスクでのみサポートされます。
-
パーティション関数での照合の使用。
-
デフォルトのデータベース照合以外の照合におけるパーティショニング列の使用。
-
Babelfish は次の構文オプションをサポートしていませんが、回避策があります。
CREATE TABLE ステートメントでの制約またはインデックスを含むパーティションスキームの使用。
ALTER TABLE ... ADD CONSTRAINT ... ON partition_scheme_name (partition_column_name)。
注記
babelfishpg_tsql.escape_hatch_storage_on_partitionエスケープハッチは無視するように設定できます。これにより、パーサーは制約またはインデックスで使用されるパーティションスキームオプションを無視でき、バックエンドは各パーティションに個別の制約またはインデックスを作成します。