Compartir a través de


Particiones

La creación de particiones en una base de datos mejora el rendimiento y simplifica el mantenimiento. Al dividir una tabla grande en tablas individuales más pequeñas, las consultas que tengan acceso únicamente a una parte de los datos pueden ejecutarse con mayor rapidez, ya que deben recorrer menos datos. Las tareas de mantenimiento (por ejemplo, volver a generar los índices o hacer copias de seguridad de una tabla), pueden ejecutarse con mayor rapidez.

Se puede conseguir la creación de particiones sin dividir las tablas si las tablas se colocan físicamente en unidades de disco individuales. La colocación de una tabla en una unidad física y de las tablas relacionadas en una unidad independiente puede mejorar el rendimiento de las consultas, debido a que, cuando se ejecutan consultas que implican combinaciones entre las tablas, varios encabezados de discos leen los datos al mismo tiempo. Se pueden utilizar grupos de archivos de SQL Server para especificar los discos en los que se colocarán las tablas.

Particiones de hardware

La creación de particiones de hardware diseña la base de datos de forma que aproveche la arquitectura del hardware disponible. Estos son ejemplos de particiones de hardware:

  • Varios procesadores que permiten múltiples subprocesos de operaciones, lo que permite que muchas consultas se ejecuten al mismo tiempo. Opcionalmente, una sola consulta puede ejecutarse más rápidamente en varios procesadores, ya que permiten la ejecución simultánea de los componentes de la consulta. Por ejemplo, distintos subprocesos pueden recorrer al mismo tiempo cada una de las tablas a las que hace referencia la consulta.

  • Dispositivos RAID (matriz redundante de discos independientes) que permiten crear bandas de datos a través de varias unidades de disco, para obtener un acceso más rápido a los datos, ya que hay más cabezales de lectura y escritura que leen los datos al mismo tiempo. Normalmente, se puede recorrer más rápidamente una tabla separada en bandas a través de varias unidades que la misma tabla almacenada en una sola unidad. De forma alternativa, almacenar tablas en unidades independientes desde las tablas relacionadas puede mejorar de forma significativa el rendimiento de las consultas que combinan esas tablas. Para obtener más información, vea RAID.

Crear particiones horizontales

La creación de particiones horizontales divide una tabla en varias tablas. Así, cada tabla contiene el mismo número de columnas, pero menos filas. Por ejemplo, se podría crear una partición horizontal de una tabla que contenga mil millones de filas en 12 tablas; cada una de las tablas más pequeñas representaría un mes de datos de un año específico. Las consultas que requieran datos de un mes específico sólo hacen referencia a la tabla apropiada.

La determinación del modo de crear particiones horizontales de las tablas depende de cómo se analicen los datos. Debería crear particiones de tablas de forma que las consultas hagan referencia al menor número posible de tablas. De lo contrario, un número excesivo de consultas UNION, utilizadas para mezclar las tablas de forma lógica en el momento de la consulta, podría afectar al rendimiento. Para obtener más información acerca de cómo consultar tablas con particiones horizontales, vea Escenarios de utilización de vistas.

Es común crear particiones horizontales de datos basadas en la edad y el uso. Por ejemplo, una tabla puede contener datos de los últimos cinco años, pero normalmente sólo se obtiene acceso a los datos del año actual. En este caso, puede considerar la posibilidad de crear particiones de datos en cinco tablas, cada una de las cuales contendrá sólo los datos de un año.

Para obtener más información, vea Tablas e índices con particiones.

Particionamiento vertical

El particionamiento vertical divide una tabla en varias tablas que contienen menos columnas. Los dos tipos de particionamiento vertical son la normalización y la división de filas:

  • La normalización es el proceso estándar de bases de datos que consiste en quitar columnas redundantes de una tabla y colocarlas en tablas secundarias vinculadas a la tabla principal mediante relaciones de clave principal y clave externa.

  • La división de filas divide verticalmente la tabla original en tablas con menos columnas. Cada fila lógica de una tabla dividida coincide con la misma fila lógica en las demás tablas, según se identifica en la columna UNIQUE KEY que es idéntica en todas las tablas con particiones. Por ejemplo, al combinar la fila con el Id. 712 de cada tabla dividida se vuelve a crear la fila original.

Al Igual que las particiones horizontales, el particionamiento vertical permite a las consultas recorrer menos datos. De ese modo se aumenta el rendimiento de las consultas. Por ejemplo, una tabla que contenga siete columnas de las cuales generalmente sólo se hace referencia a las cuatro primeras, puede beneficiarse de la división de las tres últimas columnas en una tabla independiente.

El particionamiento vertical se debe considerar detenidamente, ya que analizar datos de varias particiones requiere consultas que combinen las tablas. El particionamiento vertical también puede afectar al rendimiento si las particiones son muy grandes.