Noções básicas do particionamento no Babelfish
A partir da versão 4.3.0, o Babelfish introduz o particionamento de tabelas e índices com suporte limitado. As seções a seguir fornecem detalhes sobre como criar funções de partição, definir esquemas de partição e implementar tabelas e índices particionados no Babelfish.
Introdução ao particionamento no Babelfish
-
Funções de partição:
-
CREATE PARTITION FUNCTION:
define como uma tabela ou um índice é particionado especificando o tipo de coluna de particionamento e o intervalo de valores de cada partição. -
DROP PARTITION FUNCTION:
remove uma função de partição existente.
-
-
Esquemas de partição:
-
CREATE PARTITION SCHEME:
define o mapeamento entre partições e grupos de arquivos.nota
No Babelfish, os grupos de arquivos são tratados como objetos fictícios e não representam locais de armazenamento físico.
-
DROP PARTITION SCHEME:
remove um esquema de partição existente.
-
-
Função do sistema:
-
$PARTITION:
essa função do sistema exibe o número da partição à qual um valor especificado em uma coluna de particionamento pertenceria em uma tabela particionada especificada.
-
-
Tabelas e índices particionados:
-
CREATE TABLE ... ON partition_scheme_name (partition_column_name):
cria uma tabela particionada com base em um esquema de particionamento e uma coluna de particionamento especificados. -
CREATE INDEX ... ON partition_scheme_name (partition_column_name):
cria um índice particionado com base em um esquema de particionamento e uma coluna de particionamento especificados.
-
-
Visualizações do sistema para particionar metadados:
As seguintes visualizações do sistema foram adicionadas para fornecer metadados relacionados ao particionamento:
-
sys.destination_data_spaces
-
sys.partitions
-
sys.partition_functions
-
sys.partition_parameters
-
sys.partition_range_values
-
sys.partition_schemes
-
Limitações e soluções alternativas
Os seguintes recursos de particionamento do SQL Server ainda não são aceitos no Babelfish:
-
ALTER PARTITION FUNCTION
eALTER PARTITION SCHEME
.nota
O Babelfish não comporta operações de divisão e de mesclagem. Defina todas as partições nas funções de partição durante a criação, pois não é possível adicionar nem remover partições posteriormente.
-
Colunas computadas como colunas de particionamento.
-
Utilitários
INSERT BULK
eBCP
para tabelas particionadas. -
Opção de limite
LEFT
para funções de partição. -
Tipo de dados
SQL_VARIANT
para funções de partição. -
TRUNCATE TABLE ... WITH PARTITION
. -
ALTER TABLE ... SWITCH PARTITION
. -
Índices particionados não alinhados, como esquema de partição e coluna de partição que diferem da tabela particionada.
-
A migração do DMS da origem do Babelfish é possível somente com tarefas de carga total em tabelas particionadas.
-
Uso de agrupamento na função de partição.
-
Uso de uma coluna de particionamento com um agrupamento diferente do agrupamento padrão do banco de dados.
-
O Babelfish não aceita essas opções de sintaxe, mas fornece soluções alternativas:
Uso do esquema de partição com restrições ou índices na instrução CREATE TABLE.
ALTER TABLE ... ADD CONSTRAINT ... ON partition_scheme_name (partition_column_name).
nota
Você pode configurar o hatch de escape
babelfishpg_tsql.escape_hatch_storage_on_partition
para ser ignorado. Isso permitirá que o analisador ignore a opção de esquema de partição usada com restrições ou índices, e o backend criará restrições ou índices individuais para cada partição.