1 / 39

SQL Server 2005

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

Download Presentation

SQL Server 2005

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. SELECT * FROM sales.customer 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 Valor de partición: 100 200 300 Rango (LEFT): <=100 101-200 201-300 >300 Rango (RIGHT): <100 100-199 200-299 >=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ó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(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 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 1-100 401 + -- Switch Out ALTER TABLE EmployeeVacations SWITCH PARTITION 1 TO Emp1To100Vacations -- Switch In ALTER TABLE Emp1To100Vacations SWITCH TO EmployeeVacations PARTITION 1 Emp1To100Vacations

  32. Implementando ParticionesMezclando Particiones • Consolidar dos particiones en una 101-200 201-300 301-400 1-100 401 + 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 1-100 401 +

  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 enhttp://groups.msn.com/technetmexico-online

More Related