5. Bases de datos de sistema:
Master – Configuración de SQL Server
MSDB – Automatización de SQL Server
TEMPDB – Área temporal
Model – Plantilla para nuevas BD
Bases de datos de usuario.
Otras de tipo no-de-sistema
6. Archivos de datos de Tempdb = Número de Núcleos de
Procesador
Configurar el tamaño de la base de datos Tempdb
Al menos 10% del tamaño total de las bases de datos, O
El tamaño de la tabla más grande; cualquiera que sea el
mayor número
Parámetros de configuración de Tempdb
Incrementar el tamaño inicial
Incrementar 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
7. 5 unidades de almacenamiento
Bases de datos del sistema
Archivos MDF/NDF de bases de datos de usuario
Archivos LDF de bases de datos de usuario
TEMPDB
BACKUPS
Nota mental: Recordar sacarlos del servidor y probarlos
LDF: La más rápida posible
TEMPDB: Al menos, más rápida que la de MDF
MDF: Que ofrezca redundancia
Ambientes de tipo Producción o Pruebas tipo QA
8. 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.
9. Base de datos
Filegroup 1 (PRIMARIO)
Archivo A
Archivo B
Tabla 1
Tabla 2
Tabla 3
Filegroup 2 (SECUNDARIO)
Archivo C
Tabla 4
Archivo D
Tabla 5
Tabla 6
10.
11. 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.
12. 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.
13. 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.
14. ¡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 desastre
Mismo país, mismo departamento…
¡Es importante tener definida una estrategia!
15.
16. 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.
17. 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/enus/library/ms189275.aspx
18. Base de datos de contenido en Disco
Duro
Agregar
Contenid
o
Dato
Data
s
.LDF
Checkpoint
.MDF
Dato
Data
s
Full Recovery Model (Recomendado)
19. Base de datos de contenido en Disco
Duro
Datos
Agregar
Contenido
.LDF
Checkpoint
Datos
Simple Recovery Model
.MDF
20.
21. Actividades para que la base de datos esté y
responda “como nueva”.
Regeneración y desfragmentación de índices.
Actualización de estadísticas.
23. SQL Server Index Design Guide: http://technet.microsoft.com/en-us/library/jj835095.aspx
24. 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.
25. 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)*
26. REGENERACIÓN
Puede 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ÓN
Siempre es online.
Mueve los datos en las
páginas en un esquema
registro por registro.
Únicamente mueve
aquellos registros que
requieren ser movidos.
27. 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.
28. 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.
29. 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.
30. 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.
31. 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…
32.
33. 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.
34. Guillermo Taylor F.
Consultor Senior TI & Especialista SQL Server
guillermotaylor@hotmail.com
http://mastergt68.wordpress.com