Descripción de las particiones en Babelfish
A partir de la versión 4.3.0, Babelfish introduce la partición de tablas e índices con una compatibilidad limitada. En las siguientes secciones, se proporciona información sobre la creación de funciones de partición, la definición de esquemas de partición y la implementación de tablas e índices particionados en Babelfish.
Introducción a las particiones en Babelfish
-
Funciones de partición:
-
CREATE PARTITION FUNCTION:
define cómo se particiona una tabla o un índice especificando el tipo de columna de partición y el rango de valores de cada partición. -
DROP PARTITION FUNCTION:
elimina una función de partición existente.
-
-
Esquemas de partición:
-
CREATE PARTITION SCHEME:
define la asignación entre particiones y grupos de archivos.nota
En Babelfish, los grupos de archivos se tratan como objetos ficticios y no representan ubicaciones físicas de almacenamiento.
-
DROP PARTITION SCHEME:
elimina un esquema de partición existente.
-
-
Función del sistema:
-
$PARTITION:
es una función del sistema que devuelve el número de partición al que pertenecería un valor especificado en una columna de particiones de una determinada tabla con particiones.
-
-
Tablas e índices con particiones:
-
CREATE TABLE ... ON partition_scheme_name (partition_column_name):
crea una tabla con particiones basada en un esquema de particiones y una columna de particiones específicos. -
CREATE INDEX ... ON partition_scheme_name (partition_column_name):
crea un índice con particiones basado en un esquema de particiones y una columna de particiones específicos.
-
-
Vistas del sistema para la partición de metadatos:
Se han añadido las siguientes vistas del sistema para proporcionar metadatos relacionados con la partición:
-
sys.destination_data_spaces
-
sys.partitions
-
sys.partition_functions
-
sys.partition_parameters
-
sys.partition_range_values
-
sys.partition_schemes
-
Limitaciones y soluciones provisionales
Babelfish aún no admite las siguientes capacidades de particionamiento de SQL Server:
-
ALTER PARTITION FUNCTION
yALTER PARTITION SCHEME
.nota
Babelfish no es compatible con las operaciones de división y fusión. Defina todas las particiones en las funciones de partición durante la creación, ya que no podrá agregar ni eliminar particiones posteriormente.
-
Columnas calculadas como columnas de particionamiento.
-
Utilidad de
INSERT BULK
yBCP
para tablas particionadas. -
Opción de límite
LEFT
para funciones de partición. -
Tipo de datos
SQL_VARIANT
para las funciones de partición. -
TRUNCATE TABLE ... WITH PARTITION
. -
ALTER TABLE ... SWITCH PARTITION
. -
Índices con particiones no alineados, como, por ejemplo, el esquema de particiones y la columna de particiones que difieren de la tabla con particiones.
-
La migración de DMS desde el origen de Babelfish solo se admite para tareas de carga completa en tablas con particiones.
-
Uso de la intercalación en la función de partición.
-
Uso de una columna de particionamiento con una intercalación distinta de la intercalación predeterminada de la base de datos.
-
Babelfish no admite estas opciones de sintaxis, pero ofrece soluciones alternativas:
Uso del esquema de particiones con restricciones o índices en la instrucción CREATE TABLE.
ALTER TABLE... ADD CONSTRAINT... ON partition_scheme_name (partition_column_name).
nota
Puede configurar la escotilla de escape
babelfishpg_tsql.escape_hatch_storage_on_partition
para omitirlo. Esto permitirá que el analizador omita la opción de esquema de particiones utilizada con las restricciones o los índices, y el backend creará restricciones o índices individuales para cada partición.