La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

SQL Server 2005. Comunidad TechNet Regístrate en:

Presentaciones similares


Presentación del tema: "SQL Server 2005. Comunidad TechNet Regístrate en:"— Transcripción de la presentación:

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 Level 200 Conocimiento de sentencias Transact-SQL Conocimiento básico de tablas e indices

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

7 Revisión Encripción de Datos Datos Algoritmo Datos encriptados Decripción Encripción

8 Revisión Encripción de datos en SQL Server 2005 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 Simetría Tabla Base de Datos

9 Revisión Firmas modulares SELECT * FROM sales.customer SELECT * FROM sales.customer

10 Revisión Encripció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? 1.No se pueden encriptar los datos directamente con el certificado. 2.La llave publica del certificado puede utilizarse para decriptar los datos. 3.La encripción simétrica es mas rápida que la encripción asimétrica. 4.La encripción simétrica es mas segura que la asimétrica.

11 Revisión Firmas 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. 1. Verdadero. 2. Falso.

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

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

14 Tablas e Índices particionados Tablas Particionadas vs Vistas Particionadas Tabla ParticionadaVista Particionada Query PlansUn objeto = optimización rápidaMúltiples objetos T-SQLSoporta Auto-ParametrizaciónSin Auto-Parametrización Bulk Copy / InsertInserción directa a las tablasReferencia a la tabla indicada Numero de Particiones 1000 por tablaRestricciones de uso Método de AccesoParaleloSecuencial UbicaciónUna sola base de datosMúltiples bases de datos e inst.

15 Tablas e Índices particionados Beneficios 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 100200300Valor de partición: Rango (LEFT): Rango (RIGHT): <=100 <100 101-200 100-199 201-300 200-299 >300 >=300

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ón Revisión de Tablas e Índices Particionados Los datos en una tabla particionada puede consultarse desde múltiples 1. Filegroups. 2. Bases de Datos. 3. Instancias. 4. Servidores.

22 Revisión Revisión de Tablas e Índices Particionados Cual es el objetivo de una función de partición? 1.Mapear particiones a los filegroups. 2.Para definir el numero de particiones, el tipo de datos de la llave de particionamiento, y los rangos de valores. 3.Para regresar información del particionamiento en la base de datos actual. 4.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 Particiones Creando una función particionada CREATE PARTITION FUNCTION pf_EmployeeIDs (int) AS RANGE LEFT FOR VALUES (100, 200, 300) CREATE PARTITION FUNCTION pf_EmployeeIDs (int) AS RANGE LEFT FOR VALUES (100, 200, 300) CREATE PARTITION FUNCTION Partition function name Partitioning Type LEFT | RIGHT Partitioning values

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) 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) 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 NONCLUSTERED INDEX idx_VacationDate ON EmployeeVacations(StartDate) ON ps_EmpScheme(EmployeeID) –- redundant in this case CREATE UNIQUE NONCLUSTERED INDEX idx_VacationID ON EmployeeVacations(VacationEventID, EmployeeID) ON ps_EmpScheme(EmployeeID) CREATE UNIQUE NONCLUSTERED INDEX idx_VacationID ON EmployeeVacations(VacationEventID, 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 WHERE EmployeeID = 175 SELECT StartDate, EndDate FROM EmployeeVacations WHERE 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 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 SELECT EmployeeID, $Partition.pf_EmployeeIDs PartitionNo FROM EmployeeVacations

30 Tablas particionadas Creando una función de partición y esquema Creando una función de partición y esquema Creando una tabla particionada Creando una tabla particionada Creando índices particionados Creando índices particionados demo demo

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-200201-300301-400 401 +1-100 -- Switch Out ALTER TABLE EmployeeVacations SWITCH PARTITION 1 TO Emp1To100Vacations -- Switch Out ALTER TABLE EmployeeVacations SWITCH PARTITION 1 TO Emp1To100Vacations Emp1To100Vacations -- Switch In ALTER TABLE Emp1To100Vacations SWITCH TO EmployeeVacations PARTITION 1 -- Switch In ALTER TABLE Emp1To100Vacations SWITCH TO EmployeeVacations PARTITION 1

32 Implementando Particiones Mezclando Particiones Consolidar dos particiones en una 101-200201-300301-400 201-300301-400401+ 1-100 1-200 ALTER PARTITION FUNCTION pf_EmployeeIDs() MERGE RANGE (100) ALTER PARTITION FUNCTION pf_EmployeeIDs() MERGE RANGE (100)

33 Implementing Partitioning Haciendo Splitting de una Partición Create a new partition and reassign data 101-200201-300301 + 101-200201-300301-400 401 + 1-100 ALTER PARTITION FUNCTION pf_EmployeeIDs() SPLIT RANGE (400) ALTER PARTITION FUNCTION pf_EmployeeIDs() SPLIT RANGE (400)

34 Usando Tablas Particionadas Cambiando una partición Cambiando una partición Uniendo particiones Uniendo particiones Dividiendo particiones Dividiendo particiones demostración demostración

35 Revisión Implementando Particiones En que orden deberán ser creados los siguientes objetos de particiones? 1.Tabla particionada, función particionada, esquema particionado. 2.Esquema particionado, tabla particionada, función particionada. 3.Esquema particionado, función particionada, tabla particionada. 4.Función particionada, esquema particionado, partitioned table.

36 Revisión Implementando Particiones Que esperarías que hiciera una operación split? 1.Swap a populated partition with an empty table. 2.Consolidar 2 particiones en una. 3.Crear una nueva partición. 4.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


Descargar ppt "SQL Server 2005. Comunidad TechNet Regístrate en:"

Presentaciones similares


Anuncios Google