Tablas Partición Horizontal

Tablas Particionadas

Las tablas que tienen muchos registros es conveniente que se particionen, esto será beneficioso si la base de datos tiene varios archivos y de preferencia inclusive varios grupos en varios discos.

Requisitos

  1. La base de datos debería tener varios archivos en varios grupos para que sea beneficioso.
  2. Definir el tipo de datos y los límites para los rangos por los cuales se particionará la tabla.
  3. Crear la función de partición para definir los límites.
  4. Crear el esquema de partición para asignar los rangos a cada grupo dentro de la base de datos.

Proceso

1. Crear FUNCION DE PARTICION: el objetivo es definir los rangos
CREATE PARTITION FUNCTION NombreFuncionParticion ( TipoDato )
AS RANGE [ LEFT | RIGHT ] FOR VALUES ( límites)

2. Crear Esquema de Partición: objetivo, repartir rango definidos en la función de partición en los filegroups
CREATE PARTITION SCHEME NombreEsquemaParticion
AS PARTITION NombreFuncionParticion
TO ( Grupos de Archivos)

3. Crear tabla… al finalizar la definición de la tabla se debe especificar el esquema de partición y el campo por el que se particionará.
Create table  Nombre Tabla (NombreCampo, … ) on NombreEsquemaParticion (NombreCampo)



Ejercicio

Primero crear la Base de datos

xp_create_subdir ‘C:\Bases’
go
Create database ERP
on Primary (name=’ERP01′, filename=’C:\Bases\ERP01.mdf’),
filegroup VENTAS
(name=’ERP02′, filename=’C:\Bases\ERP02.ndf’),
filegroup RRHH
(name=’ERP03′, filename=’C:\Bases\ERP03.ndf’)
log on
(name=’ERP04′, filename=’C:\Bases\ERP04.ldf’)
go
use ERP
go

— Función de partición
CREATE PARTITION FUNCTION FuncionParticionClientesCodigoFP (nchar(5))
AS RANGE LEFT FOR VALUES (‘D’,’L’,’Q’,’V’)
go
— Esquema de partición
CREATE PARTITION SCHEME EsquemaParticionClientesCodigoEP
AS PARTITION FuncionParticionClientesCodigoFP
TO (RRHH,VENTAS,[PRIMARY],[PRIMARY],RRHH)
go

Create table Clientes
(
ClientesCodigo nchar(5) ,
ClientesPaterno nvarchar(100),
ClientesMaterno nvarchar(100),
ClientesNombres nvarchar(100),
constraint ClientesPK Primary key (ClientesCodigo)
) on EsquemaParticionClientesCodigoEP (ClientesCodigo)
go

Note al final en negrita la especificación que es una tabla particionada por el campo ClientesCodigo y el esquema EsquemaParticionClientesCodigoEP.

Puede ver el resultado en las Propiedades de la tabla