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)