本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 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
-
限制和解決方法
Babelfish 尚未支援下列 SQL Server 分割功能:
-
ALTER PARTITION FUNCTION
與ALTER PARTITION SCHEME
。注意
Babelfish 不支援分割和合併操作。在建立期間定義分割區函數中的所有分割區,因為您稍後無法新增或移除分割區。
-
運算的資料欄做為分割資料欄。
-
INSERT BULK
分割資料表的 和BCP
公用程式。 -
LEFT
分割區函數的邊界選項。 -
SQL_VARIANT
分割區函數的資料類型。 -
TRUNCATE TABLE ... WITH PARTITION
. -
ALTER TABLE ... SWITCH PARTITION
. -
未對齊的分割索引,例如分割區結構描述和與分割資料表不同的分割區資料欄。
-
只有分割資料表上的 Full Load 任務才支援從 Babelfish 來源遷移 DMS。
-
分割區函數中定序的使用。
-
使用分割資料欄搭配預設資料庫定序以外的定序。
-
Babelfish 不支援這些語法選項,但提供解決方法:
在 CREATE TABLE 陳述式中使用具有限制條件或索引的分割區結構描述。
ALTER TABLE ... 新增收縮... ON partition_scheme_name (partition_column_name)。
注意
您可以將
babelfishpg_tsql.escape_hatch_storage_on_partition
逃生艙設定為忽略。這可讓剖析器忽略與限制條件或索引搭配使用的分割區結構描述選項,而後端會為每個分割區建立個別限制條件或索引。