Modificar tablas e índices con particiones

Las tablas e índices con particiones pueden modificarse de las maneras que se indican a continuación:

  • Modificar una función de partición para que vuelva a crear las particiones de las tablas e índices a las que haga referencia.

  • Modificar un esquema de partición para diseñar un grupo de archivos que albergue una partición recién agregada.

  • Convertir una tabla sin particiones en una tabla con particiones.

  • Convertir una tabla con particiones en una tabla sin particiones.

  • Transferir datos agregando, moviendo o eliminando particiones.

Modificar una función de partición

Puede cambiar el modo en que se crean las particiones de una tabla o un índice sumando o restando el número de particiones especificadas, en aumentos de 1, en la función de partición de la tabla o el índice con particiones.

Lo que sucede al agregar una partición es que se "divide" una partición existente en dos particiones y se vuelven a definir los límites de las particiones nuevas. Al quitar una partición, se "mezclan" los límites de dos particiones en una sola. Lo que hace esta última acción es volver a llenar una partición y dejar la otra sin asignar.

Nota importanteImportante

Para agregar una partición es preciso que exista un grupo de archivos y que esté marcado con la propiedad NEXT USED para que albergue la partición nueva. Para obtener más información acerca de cómo especificar un grupo de archivos NEXT USED en un esquema de partición, vea Modificar un esquema de partición, más adelante en este mismo tema.

ALTER PARTITION FUNCTION sólo se puede utilizar para dividir en dos una partición o para mezclar dos particiones en una sola. Para cambiar el modo en que se crean las particiones de una tabla o un índice (de 10 a 5 particiones, por ejemplo) puede recurrir a cualquiera de las opciones que se indican a continuación. El consumo de recursos de cada opción varía en función de la configuración del sistema.

  • Crear una tabla con particiones con la función de partición que desee y luego insertar los datos de la tabla antigua en la nueva mediante la instrucción INSERT INTO...SELECT FROM.

  • Crear un índice agrupado con particiones en un montón.

    Nota

    La acción de quitar índices con particiones genera montones con particiones.

  • Quitar y volver a generar un índice con particiones existente mediante el comando CREATE INDEX de Transact-SQL y la cláusula establecida en DROP EXISTING = ON.

  • Ejecutar una secuencia de instrucciones ALTER PARTITION FUNCTION.

SQL Server no proporciona compatibilidad de replicación para modificar una función de partición.Si desea realizar cambios en una función de partición de una base de datos de publicaciones deberá hacerlo manualmente en la base de datos de suscripciones.

Para modificar una función de partición

Modificar un esquema de partición

Para modificar un esquema de partición puede diseñar un grupo de archivos que contenga la siguiente partición que se agregará a la tabla con particiones. Para hacerlo debe asignar la propiedad NEXT USED a un grupo de archivos. Puede asignar la propiedad NEXT USED a un grupo de archivos vacío o a uno que ya contenga una partición. Es decir, un grupo de archivos puede tener más de una partición.

Para modificar un esquema de partición

Convertir una tabla sin particiones en una tabla con particiones

Existen dos maneras de convertir una tabla sin particiones en una tabla con particiones.

Una consiste en crear un índice agrupado con particiones en la tabla mediante la instrucción CREATE INDEX. Esta acción es similar a crear un índice agrupado en cualquier tabla, puesto que lo que hace SQL Server es quitar la tabla y volver a crearla en formato de índice agrupado. Si la tabla ya tiene algún índice agrupado con particiones, puede quitar el índice y volver a generarlo en un esquema de partición mediante CREATE INDEX y la cláusula DROP EXISTING = ON.

Para obtener información acerca de los índices agrupados, vea Directrices para diseñar ndices clúster.

La otra manera consiste en utilizar la instrucción ALTER TABLE SWITCH de Transact-SQL para modificar los datos de la tabla por los de una tabla con particiones por intervalos que sólo tenga una partición. Esta tabla con particiones ya debe existir antes de que se lleve a cabo la conversión. También es preciso que la única partición que contenga esté vacía. Para obtener más información acerca de cómo dividir particiones, vea Transferir datos de forma eficaz con cambios de particiones. Después de modificar la tabla y crear particiones, puede modificar la función de partición correspondiente para que agregue particiones, tal como se ha descrito anteriormente en Modificar una función de partición.

Para convertir una tabla existente en una tabla con particiones

Convertir una tabla con particiones en una tabla sin particiones

Para cambiar una tabla con particiones en una tabla sin particiones, basta con modificar la función de partición de la tabla con particiones para que la convierta en una tabla con una sola partición. Aunque técnicamente siga siendo una tabla con particiones, este estado no es relevante para las operaciones posteriores que se vayan a efectuar en la tabla.

Si la tabla tiene aplicado un índice agrupado con particiones, simplemente debe quitar el índice y volver a generarlo como si se tratara de un índice sin particiones. Para hacerlo puede utilizar el comando CREATE INDEX de Transact-SQL con la cláusula DROP EXISTING = ON.

Para convertir una tabla con particiones en una tabla estándar sin particiones

Transferir datos con división de particiones

La instrucción ALTER TABLE...SWITCH de Transact-SQL permite transferir rápida y eficazmente bloques de datos entre tablas con particiones. Para obtener más información, vea Transferir datos de forma eficaz con cambios de particiones.