Title: SQL Server 2005
 1SQL Server 2005 
 2Comunidad TechNet
Regístrate en http//groups.msn.com/technetmexico
-online 
 3Gestión de Bases de Datos Grandes 
 4Que veremos hoy
- Conceptos de Tablas e Índices particionados 
- Como utilizar Tablas e Índices particionados
5Prerrequisitos
- Conocimiento de sentencias Transact-SQL 
- Conocimiento básico de tablas e indices
Level 200 
 6Agenda
- Revisión (tema anterior) 
- Vista general de tablas e índices particionados 
- Implementación de particionamiento
7RevisiónEncripción de Datos
Encripción
Algoritmo
Datos
Datos encriptados
Decripción 
 8RevisiónEncripción de datos en SQL Server 2005
Simetría
Tabla
Base de Datos
- Se utiliza una llave simétrica para encriptar los 
 datos
- La llave pública del certificado principal se 
 utiliza para encriptar la llave simétrica
9RevisiónFirmas modulares 
 10RevisiónEncripción de datos en SQL Server 2005
- Razones por las cuales se deben encriptar los 
 datos con llaves simétricas, y después encriptar
 la llave simétrica con un certificado personal,
 en lugar de solo encriptar los datos
 asimétricamente con el certificado?
- No se pueden encriptar los datos directamente con 
 el certificado.
- La llave publica del certificado puede utilizarse 
 para decriptar los datos.
- La encripción simétrica es mas rápida que la 
 encripción asimétrica.
- La encripción simétrica es mas segura que la 
 asimétrica.
11RevisiónFirmas modulares
- En el momento en que un principal asociado con un 
 certificado obtiene permisos, un modulo firmado
 con el mismo certificado obtiene acceso a los
 objetos dependientes, sin importar quien los
 utilice.
-  Verdadero. 
-  Falso.
12Agenda
- Revisión 
- Vista general de tablas e índices particionados 
- Implementación de particionamiento
13Tablas e Índices particionadosDatos 
Particionados 
- Sin datos almacenados en múltiples objetos 
 físicos, pero que se manejan como un solo objeto
 lógico.
14Tablas e Índices particionadosTablas 
Particionadas vs Vistas Particionadas 
 15Tablas e Índices particionadosBeneficios de las 
tablas particionadas 
- Facilidad de uso 
- Facilidad de borrado y carga de datos 
- Backup parcial / Restauración de datos históricos 
- Manejo inteligente de índices particionados 
- Minimiza la fragmentación de índices para tablas 
 históricas particionadas
- Soporta alternativas de almacenamiento para datos 
 históricos
- Desempeño 
- Mayor eficiencia en Joins 
- Árboles de índices mas pequeños y/o escaneo de 
 tablas cuando se consulta a una sola partición
- Gran concurrencia
16Tablas e Índices particionados Índices 
particionados
- Los índices pueden particionarse de forma 
 independiente a las tablas
- Crear un índice en una tabla particionada da como 
 resultado un índice alineado y particionado
17Tablas e Índices particionados Índices 
particionados - Alineación
- Índices Alineados 
- Los argumentos de los tipos de datos del índice 
 particionado coinciden a los de las tablas
- El índice tiene el mismo numero de particiones 
 que las tablas
- Los rangos particionados del índice coinciden a 
 los de las tablas
- Índices No-Alineados 
- El índice se encuentra particionado de forma 
 distinta a las tablas
- Las particiones no se pueden cambiar
18Tablas e Índices particionados Índices 
particionados  Llaves indexadas
- Los índices únicos deben incluir una columna de 
 partición
- La columna de partición es agregada 
 automáticamente para índices cluster
- La columna de partición es agregada 
 automáticamente para índices no cluster en tablas
 previamente particionadas
19Tablas e Índices particionados Funciones 
Particionadas
- Definir los tipos y valores de la partición 
- Numero de particiones  numero de valores de 
 partición  1
- Los limites de valores incluidos pueden ser LEFT 
 o RIGHT
100
200
300
Valor de partición
Rango (LEFT)
lt100
101-200
201-300
gt300
Rango (RIGHT)
lt100
100-199
200-299
gt300 
 20Tablas e Índices particionados Esquemas 
Particionados
- Mapear particiones en una función de partición 
 para filegroups
- Facilita los respaldos por partes 
- Se puede especificar un filegroup siguiente
21RevisiónRevisión de Tablas e Índices 
Particionados
- Los datos en una tabla particionada puede 
 consultarse desde múltiples
-  Filegroups. 
-  Bases de Datos. 
-  Instancias. 
-  Servidores.
22RevisiónRevisión de Tablas e Índices 
Particionados
- Cual es el objetivo de una función de partición? 
-  
- Mapear particiones a los filegroups. 
- Para definir el numero de particiones, el tipo de 
 datos de la llave de particionamiento, y los
 rangos de valores.
- Para regresar información del particionamiento en 
 la base de datos actual.
- Para obtener datos de múltiples tablas como si 
 fuese una sola vista agregada.
23Agenda
- Revisión 
- Vista general de tablas e índices particionados 
- Implementación de particionamiento
24Implementando ParticionesCreando una función 
particionada
- CREATE PARTITION FUNCTION 
- Partition function name 
- Partitioning Type 
- LEFT  RIGHT 
- Partitioning values
CREATE PARTITION FUNCTION pf_EmployeeIDs (int) AS 
RANGE LEFT FOR VALUES (100, 200, 300) 
 25Implementando Particiones Creando un esquema 
Particionado 
- CREATE PARTITION SCHEME 
- Nombre del Esquema Partcionada 
- Fucnión Particionada 
- Grupo de archivos
CREATE PARTITION SCHEME ps_EmpScheme AS PARTITION 
pf_EmployeeIDs TO (FG1, FG2, FG3, FG4, FG5) 
 26Implementando Particiones Creando una tabla 
Particionada
- CREATE TABLE 
- En el esquema particonado (partition column) 
- Usar la clausula MOVE TO de ALTER TABLE 
CREATE TABLE EmployeeVacations ( VacationEventID 
int, EmployeeID int, StartDate datetime, 
EndDate datetime ) ON ps_EmpScheme(EmployeeID) 
 27Implementando Particiones Creando un indice 
particionado 
- CREATE INDEX 
- En el esquema particionado (partition column) 
- El Default debe coincidir en la tabla 
 particionada
- El indice unico debe ser includio en la columna 
 particionada
CREATE NONCLUSTERED INDEX idx_VacationDate ON 
EmployeeVacations(StartDate) ON 
ps_EmpScheme(EmployeeID) - redundant in this case
CREATE UNIQUE NONCLUSTERED INDEX 
idx_VacationID ON EmployeeVacations(VacationEventI
D, EmployeeID) ON ps_EmpScheme(EmployeeID) 
 28Implementando Particiones Consultas a una tabla 
particionada
- Use el comando partitioning en la sentencia WHERE 
 para minimizar las particiones buscadas
- Use tablas alineadas, particionadas en los campos 
 JOIN
SELECT StartDate, EndDate FROM EmployeeVacations W
HERE EmployeeID  175
SELECT e.FirstName, e.LastName, v.StartDate FROM 
EmployeeVacations v INNER JOIN Employees e ON 
v.EmployeeID  e.EmployeeID WHERE EmployeeID 
BETWEEN 150 AND 175 
 29Implementando Particiones Obteniendo información 
de la partición
- Partition function 
- Vistas de catalogo 
- sys.partitions 
- sys.tables 
- sys.indexes 
- sys.partition_functions 
- sys.partition_schemes 
- sys.partition_range_values 
- sys.partition_parameters
SELECT EmployeeID, Partition.pf_EmployeeIDs 
PartitionNo FROM EmployeeVacations 
 30 demo
- Tablas particionadas  
- Creando una función de partición y esquema 
- Creando una tabla particionada 
- Creando índices particionados
31Implementando Particiones Intercambiando 
Particiones 
- Cambiar el contenido de una tabla con datos o 
 partición con una tabla vacía o partición
101-200
201-300
301-400
401 
1-100
-- Switch Out ALTER TABLE EmployeeVacations SWITCH
 PARTITION 1 TO Emp1To100Vacations
-- Switch In ALTER TABLE Emp1To100Vacations SWITCH
 TO EmployeeVacations PARTITION 1
Emp1To100Vacations 
 32Implementando Particiones Mezclando Particiones 
- Consolidar dos particiones en una
101-200
201-300
301-400
401 
1-100
ALTER PARTITION FUNCTION pf_EmployeeIDs() MERGE 
RANGE (100)
201-300
301-400
401
1-200 
 33Implementing PartitioningHaciendo Splitting de 
una Partición
- Create a new partition and reassign data
101-200
201-300
301 
1-100
ALTER PARTITION FUNCTION pf_EmployeeIDs() SPLIT 
RANGE (400)
101-200
201-300
301-400
401 
1-100 
 34 demostración
- Usando Tablas Particionadas  
- Cambiando una partición 
- Uniendo particiones 
- Dividiendo particiones
35RevisiónImplementando Particiones
- En que orden deberán ser creados los siguientes 
 objetos de particiones?
-  
- Tabla particionada, función particionada, esquema 
 particionado.
- Esquema particionado, tabla particionada, función 
 particionada.
- Esquema particionado, función particionada, tabla 
 particionada.
- Función particionada, esquema particionado, 
 partitioned table.
36RevisiónImplementando Particiones
- Que esperarías que hiciera una operación split? 
-  
- Swap a populated partition with an empty table. 
- Consolidar 2 particiones en una. 
- Crear una nueva partición. 
- Particiona una tabla existente no-particionada.
37Resumén de la sesión
- Particionar los datos puede incrementar el 
 desempeño y mejorar la gestión
- Define particiones con una función particionada 
- Mapear particiones a grupos de archivos con un 
 esqquema particionado
- Creando tablas e índices particionados en 
 esquemas particionados
- Usar operaciones de juntar, cambiar y dividir 
 para manejar datos particionados
38Preguntas
- Visita el foro de TechNet en http//groups.msn.com
 /technetmexico-online
39(No Transcript)