390 likes | 500 Views
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.
E N D
Comunidad TechNet Regístrate en: http://groups.msn.com/technetmexico-online
Que veremos hoy: • Conceptos de Tablas e Índices particionados • Como utilizar Tablas e Índices particionados
Prerrequisitos • Conocimiento de sentencias Transact-SQL • Conocimiento básico de tablas e indices Level 200
Agenda • Revisión (tema anterior) • Vista general de tablas e índices particionados • Implementación de particionamiento
RevisiónEncripción de Datos Encripción Algoritmo Datos Datos encriptados Decripción
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
SELECT * FROM sales.customer RevisiónFirmas modulares
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.
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.
Agenda • Revisión • Vista general de tablas e índices particionados • Implementación de particionamiento
Tablas e Índices particionadosDatos Particionados • Sin datos almacenados en múltiples objetos físicos, pero que se manejan como un solo objeto lógico.
Tablas e Índices particionadosTablas Particionadas vs Vistas Particionadas
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
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
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
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
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
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
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.
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.
Agenda • Revisión • Vista general de tablas e índices particionados • Implementación de particionamiento
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)
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)
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)
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)
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
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
demo • Tablas particionadas • Creando una función de partición y esquema • Creando una tabla particionada • Creando índices particionados
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
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
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 +
demostración • Usando Tablas Particionadas • Cambiando una partición • Uniendo particiones • Dividiendo particiones
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.
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.
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
Preguntas… • Visita el foro de TechNet enhttp://groups.msn.com/technetmexico-online