SQL Server 2005 - PowerPoint PPT Presentation

1 / 39
About This Presentation
Title:

SQL Server 2005

Description:

Mayor eficiencia en 'Joins' ... Use tablas alineadas, particionadas en los campos JOIN. SELECT StartDate, EndDate ... v INNER JOIN Employees e. ON ... – PowerPoint PPT presentation

Number of Views:65
Avg rating:3.0/5.0
Slides: 40
Provided by: graeme47
Category:
Tags: sql | joins | server

less

Transcript and Presenter's Notes

Title: SQL Server 2005


1
SQL Server 2005
2
Comunidad TechNet
Regístrate en http//groups.msn.com/technetmexico
-online
3
Gestión de Bases de Datos Grandes
4
Que veremos hoy
  • Conceptos de Tablas e Índices particionados
  • Como utilizar Tablas e Índices particionados

5
Prerrequisitos
  • Conocimiento de sentencias Transact-SQL
  • Conocimiento básico de tablas e indices

Level 200
6
Agenda
  • Revisión (tema anterior)
  • Vista general de tablas e índices particionados
  • Implementación de particionamiento

7
RevisiónEncripción de Datos
Encripción
Algoritmo
Datos
Datos encriptados
Decripción
8
Revisió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

9
RevisiónFirmas modulares
10
Revisió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.

11
Revisió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.

12
Agenda
  • Revisión
  • Vista general de tablas e índices particionados
  • Implementación de particionamiento

13
Tablas e Índices particionadosDatos
Particionados
  • Sin datos almacenados en múltiples objetos
    físicos, pero que se manejan como un solo objeto
    lógico.

14
Tablas e Índices particionadosTablas
Particionadas vs Vistas Particionadas
15
Tablas 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

16
Tablas 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

17
Tablas 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

18
Tablas 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

19
Tablas 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
20
Tablas 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

21
RevisiónRevisión de Tablas e Índices
Particionados
  • Los datos en una tabla particionada puede
    consultarse desde múltiples
  • Filegroups.
  • Bases de Datos.
  • Instancias.
  • Servidores.

22
Revisió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.

23
Agenda
  • Revisión
  • Vista general de tablas e índices particionados
  • Implementación de particionamiento

24
Implementando 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)
25
Implementando 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)
26
Implementando 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)
27
Implementando 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)
28
Implementando 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
29
Implementando 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

31
Implementando 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
32
Implementando 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
33
Implementing 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

35
Revisió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.

36
Revisió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.

37
Resumé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

38
Preguntas
  • Visita el foro de TechNet en http//groups.msn.com
    /technetmexico-online

39
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com