Anda di halaman 1dari 2

GUIA5: PARTICIONAMIENTO HORIZONTAL DE TABLAS

--crear una base de datos con tres filegroup


create database Datos
on Primary
(name='datosEjemplo', filename='d:\Datos1\Datos1.mdf',
size=5GB, maxsize=10GB, filegrowth=25%
)
log on
(name='datosLog', filename='d:\Log\DatosLog.ldf',
size=1GB, maxsize=5GB, filegrowth=25%
)
--adicionar los filegroup
alter database Datos
add filegroup Secundario
alter database Datos
add filegroup Terciario
-- agregar un archivo al filegroup
alter database Datos
add file
(name='datosEjem2', filename='d:\Datos2\Datos2.ndf',
size=1GB, maxsize=10GB, filegrowth=25%
) to filegroup Secundario
alter database Datos
add file
(name='datosEjem3', filename='d:\Datos3\Datos3.ndf',
size=1GB, maxsize=10GB, filegrowth=25%
) to filegroup Terciario
--en necesario crear una funcion que limite los rangos de valores para
cada particion
create partition function FuncionDeParticion(varchar(500))
as range Right
for values ('G','N')
--crear un esquema que nos permita indicar que cada rango a que filegoup
debe desttinarse
create partition scheme EsquemadeParticion
as partition FuncionDeParticion to
([Primary], Secundario, Terciario)
--creamos la tabla particionada
create table Cliente
(codigo int,
nombre varchar(500),
direccion varchar(50),
telefono varchar(20)
)
on EsquemadeParticion(nombre)
--agregar datos
insert into Cliente values (10, 'Villagran Volgert Marlene', 'Los Nogales
1000', '25656566')

insert into Cliente values (20, 'Caceres Ojeda Marcos', 'Los Incas 2000',
'985745845')
insert into Cliente values (30, 'Lopez Castaeda Luis Angel', 'Larapa
3000', '25689854')
select * from Cliente
--revisar si los datos se distribuyeron sobre los filegroup
select codigo, nombre,
$partition.FuncionDeParticion(nombre) as particion
from Cliente
--consultas a la tabla (Mostrar plan de ejecucion)
use Datos
select codigo, nombre from Cliente
where nombre like 'Lopez%'
--crear un indice particionado
create nonclustered index idx_Nombre
on cliente(nombre)
on EsquemadeParticion(nombre)
drop index cliente.idx_Nombre

create nonclustered index idx_Nombre


on cliente(nombre)
include (codigo)
on EsquemadeParticion(nombre)