34
Aspectos esenciales de SQL Server 2012, parte 1 Guillermo Taylor F. Consultor Senior TI & Especialista SQL Server [email protected] http:// mastergt68.wordpress.com

SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Embed Size (px)

Citation preview

Page 1: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Aspectos esenciales de SQL Server 2012, parte 1

Guillermo Taylor F.Consultor Senior TI & Especialista SQL [email protected] http://mastergt68.wordpress.com

Page 2: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Hoy hablaremos de…

Archivos, grupos de archivos y discos.Respaldos & Estrategia de respaldos.Modelo de recuperación.Mantenimiento de base de datos.

Page 3: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

En esencia…

Los discos almacenan archivos…Los archivos almacenan datos…Los grupos de archivos están compuestos por archivos…

Page 4: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Estructura de BD – SQL Server 2012

Database

Data File.MDF (1)

.NDF (0-n)

Log File.LDF (1-n)

Latin1_General_CI_AS_KS_WS

Page 5: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Tipos de bases de datos

Bases de datos de sistema:Master – Configuración de SQL ServerMSDB – Automatización de SQL ServerTEMPDB – Área temporalModel – Plantilla para nuevas BD

Bases de datos de usuario.Otras de tipo no-de-sistema

Page 6: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Sobre la TEMPDB

Archivos de datos de Tempdb = Número de Núcleos de ProcesadorConfigurar el tamaño de la base de datos Tempdb

Al menos 10% del tamaño total de las bases de datos, OEl tamaño de la tabla más grande; cualquiera que sea el mayor número

Parámetros de configuración de TempdbIncrementar el tamaño inicialIncrementar el parámetro de “Autogrowth” (Usar MB en lugar de %)Usar el “Simple Recovery Model”Ubicarla físicamente en un sitio diferente a donde están las bases de datos de contenido

Page 7: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Separación de archivosPráctica recomendada

5 unidades de almacenamientoBases de datos del sistemaArchivos MDF/NDF de bases de datos de usuarioArchivos LDF de bases de datos de usuarioTEMPDBBACKUPS

Nota mental: Recordar sacarlos del servidor y probarlos

LDF: La más rápida posibleTEMPDB: Al menos, más rápida que la de MDFMDF: Que ofrezca redundanciaAmbientes de tipo Producción o Pruebas tipo QA

Page 8: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Sobre grupos de archivos

Estructura lógica para agrupar objetos en una base de datos.Todas las bases de datos tienen un grupo de archivo: el primario.

Éste contiene el archivo .MDF y .NDFs…En el grupo de archivo secundario podemos tener datos y objetos SQL Server.

Estos contienen archivos .NDF unicamente…Permite manejar los archivos contenidos en el grupo como uno solo.Ayuda en desempeño y en recuperación.

Page 9: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

RepresentaciónBase de datos

Filegroup 1 (PRIMARIO)

Filegroup 2 (SECUNDARIO)

Archivo A Archivo B

Archivo C Archivo D

Tabla 1

Tabla 2

Tabla 3

Tabla 4

Tabla 5

Tabla 6

Page 10: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Revisión de archivos, grupos de archivos y discos

demo

Page 11: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Respaldos

Mecanismo de protección de datos.Tres diferentes tipos de respaldos

Respaldo completo.Respaldo diferencial.Respaldo de log de transacción.

Opciones avanzadas de respaldo.Respaldos de grupos de archivos.

Guardar respaldos en otros servidores.Guardar respaldo en Windows Azure.

Page 12: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Respaldo completo

Genera una copia completa de la base de datos.El respaldo es una representación completa del estado de la base de datos de ese momento.Debería hacerse diario o semanal.

Page 13: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Respaldo diferencial

Genera copia diferencial de la base de datos.Desde el último, respaldo lo que sea diferente en la base de datos.Debería hacerse diario y responder a una estrategia de recuperación definida.

Page 14: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Importancia del respaldo

¡SIEMPRE hay que hacer respaldo!Primer nivel de estrategia de recuperación ante situación de desastre.Copia local para recuperación rápida

Mismo cuarto, mismo piso, mismo edificio, mismo ciudad…Ustedes definen

Copia remota para temas tipo desastreMismo país, mismo departamento…

¡Es importante tener definida una estrategia!

Page 15: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Respaldo de base de datos

demo

Page 16: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Modelos de recuperación

Relacionado con respaldo y restauración.Diseñados para controlar el mantenimiento del log de transacciones de la base de datos.En esencia, es una propiedad de base de datos que controla como se registran las transacciones.

Indica si el log de transacción requiere y permite respaldo.Indica que tipo de operaciones de restauración están disponibles.

Page 17: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Tipos de modelos de recuperación

Full – Menor exposición a pérdida de datos.Simple – Exposición a pérdida de datos desde el último respaldo generado.Bulk-Logged – Exposición a pérdida de datos si el archivo de log se ha dañado.Detalles y explicación en http://msdn.microsoft.com/en-us/library/ms189275.aspx

Page 18: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Modelo de recuperación Full

.LDF

Data

Data

.MDFAgregarConteni

do

Base de datos de contenido en Disco Duro

Checkpoint

Datos

Datos

Full Recovery Model (Recomendado)

Page 19: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Modelo de recuperación Simple

.MDF .LDFAgregar

Contenido

Base de datos de contenido en Disco Duro

Checkpoint

Datos

Datos

Simple Recovery Model

Page 20: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Modelo de recuperación

demo

Page 21: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Mantenimiento de base de datos

Actividades para que la base de datos esté y responda “como nueva”.Regeneración y desfragmentación de índices.Actualización de estadísticas.

Page 22: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Evitando crecimientos enormes en Transaction Logs

.mdf .ldf

Sunday Monday Tuesday Wednesday

Full Backup Differential Differential Differential

Backup Log DB_Name to D:\SQLBackups\TempBackup.Bak

.ldf.mdf .ldf.mdf .ldf

.mdf .ldf

.mdf

Backup Log DB_Name to D:\SQLBackups\Weekly_T_Log.Bak with INIT

Lose .mdf file of database on Thursday at 4:00pm

(2) (3)

(1)(4)

Page 23: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Índices en SQL Server

SQL Server Index Design Guide: http://technet.microsoft.com/en-us/library/jj835095.aspx

Page 24: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

¿Por qué hay fragmentación?

El motor mantiene automáticamente los índices cada vez que ocurre INS, UPD o DEL.En el tiempo, esto puede ocasionar que la información en el índice se fragmente.La fragmentación se da cuando en las páginas de los índices el ordenamiento lógico basado en el valor de la clave, no concuerda con el ordenamiento físico dentro del archivo de datos.Puede causar degradación del desempeño del query; respuestas lentas.

Page 25: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Y, ¿cómo se corrige?

Reorganizando el índice…Regenerando el índice…Primero, detectar fragmentación…Si el valor de “avg_fragmentation_in_percent” de la DMV “sys.dm_db_index_physical_stats” es:

> 5% and < = 30% entonces ALTER INDEX REORGANIZE> 30% entonces ALTER INDEX REBUILD WITH (ONLINE = ON)*

Page 26: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Aspectos a tener en cuenta

REGENERACIÓNPuede ser online u offline, dependiendo de la versión, edición y tipos de datos de las columnas.Crea el nuevo índice y luego elimina el índice viejo.Actualiza las estadísticas en el índice.

DESFRAGMENTACIÓNSiempre es online.Mueve los datos en las páginas en un esquema registro por registro.Únicamente mueve aquellos registros que requieren ser movidos.

Page 27: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Estadísticas… Y, ¿qué es eso?

Metadatos dinámicos.Contienen información estadística sobre la distribución de valores.En uno o más columnas de una tabla.En una o más columnas de una vista indexada.Describen valores de llaves en índices.Se mantienen para columnas de índices.Se usan por SQL Server para decidir los índices más apropiados a usar cuando se ejecutan los queries.

Page 28: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Importancia de las estadísticas

El “query optimizer” usa las estadísticas para crear planes de ejecución de consultas que mejoran el desempeño de las mismas.Para la mayoría de las consultas el “query optimizer” genera las estadísticas para un plan de calidad para ejecución consultas.En algunos casos, muy pocos, es necesario crear estadísticas adicionales o modificar el diseño de la consulta para mejores resultados.

Page 29: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Consideraciones…

Por defecto, SQL Server mantiene estadísticas para las columnas de uno o de los índices de una tabla.Se pueden mantener estadísticas en columnas que no hacen parte de un índice, si se desea.Lo anterior genera un impacto sobre el límite de los índices “non-clustered” que se pueden tener en una tabla.

Dicho límite es de 249.

Page 30: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Es decir, las estadísticas…

Son cómo SQL Server define cómo accede a los datos que almacena.Se usan para crear un plan de ejecución.Contienen un muestreo de los valores dentro de una tabla o de un índice.

De hecho, pueden contener hasta 200 muestras de los valores dentro de una table.

Rastrean el número de valores entre los valores de los cuales se tienen muestras.

Page 31: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Concepto clave: Cardinalidad

Número de registros en el conjunto resultado de la consulta.El optimizador usa las estadísticas para estimar la cardinalidad de la consulta.Los estimados de la cardinalidad habilitan al optimizador a crear un plan de alta calidad para el plan.Ejemplo:

Uso de “Index Seek” en lugar de “Index Scan” para que una consulta tenga mejor desempeño.

Más adelante se revisa este concepto con otros aspectos…

Page 32: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Índices y estadísticas

demo

Page 33: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Conclusiones

Tener en cuenta conceptos y esquemas de organización de archivos y grupos de archivos para tener la BD bien organizada.Es importante respaldar y probar el respaldo, pero es más importante definir una estrategia de respaldo.Importancia del modelo de recuperación en el mantenimiento de base de datos.Mantenimiento para desempeño de queries y gestión de la base de datos.

Page 34: SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1

Aspectos esenciales de SQL Server 2012, parte 1

Guillermo Taylor F.Consultor Senior TI & Especialista SQL [email protected] http://mastergt68.wordpress.com