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
エスケープハッチは無視するように設定できます。これにより、パーサーは制約またはインデックスで使用されるパーティションスキームオプションを無視でき、バックエンドは各パーティションに個別の制約またはインデックスを作成します。