El objetivo de este seminario fue aprender acerca de la mejor forma de utilización del SQL Server, partiendo del estudio de la arquitectura interna para poder entender como usa los recursos hasta llegar al análisis del rendimiento de aplicaciones y las alternativas para solucionar los problemas que se presenten. Esto apuntó a solucionar tanto los problemas de performance de aplicaciones que se han desarrollado y se tiene su código como de las que no se conoce detalladamente su diseño. El objetivo final fue tener el conocimiento necesario para optimizar el uso que hace una aplicación de los recursos disponibles en el SQL Server. En ocasiones se hizo comparaciones para ver diferencias y similitudes con el SQL Server 2000/05/08.
Los siguientes enlaces tienen el contenido de los materiales mostrados en el curso que no están incluidos en el CD que han recibido.
Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server Parte 1.pdf (650,83 kb)
Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server Parte 2.pdf (968,57 kb)
Demos.zip (44,44 kb)
DETALLES DE CONTENIDOS
1) Performance
a) Introducción teórica
b) El concepto de performance (rendimiento)
c) Indicadores de performance
2) Arquitectura y funcionamiento interno
a) Componentes internos
b) Gestión de la memoria
c) Páginas y Extents
d) Buffers y cache
e) Discos y RAID
f) Configuración
g) Hardware
h) Software
3) Bases de datos
a) Archivos físicos
b) Asignación de recursos y filegroups
c) Opciones de bases de datos
d) Collation
e) Shrink
f) Bases del sistema
g) Cambios en la tempdb
4) Logging y recuperación
a) Transaction Log
b) Backup y Restore
c) Fallos y recovery
5) Tablas
a) Arquitectura interna
b) Tipos de datos
c) Novedades y cambios en SQL Server 2005
d) Novedades en SQL Server 2008
6) Índices
a) Árboles B y Heaps
b) Índices clustered y non Clustered
c) Unicidad
d) Fillfactor y padd index
e) Estadísticas y densidades
f) Page splits y fragmentación
g) Reindexado
h) Particionamiento de tablas e índices
i) Gestión de índices
j) Intersección de índices
k) Cover index y variantes según la versión
l) Sparse index en SQL Server 2008
m) Índices parciales en SQL Server 2008
7) Planes de ejecución y procesamiento.
a) Operadores lógicos y físicos
i) Conceptos
ii) Entendiendo el plan
iii) Conceptos de Hash, Merge y Nested loops
b) Procesamiento de queries
i) Select, insert, delete, update
ii) Truncate
iii) Join
(1) Hash
(2) Merge
(3) Nested loops
iv) Where y SARGS
v) Subqueries
vi) Constraints
vii) Vistas simples
viii) Vistas indexadas
ix) Cursores
x) Triggers
c) Store procedures
i) El cache de procedimientos
ii) Compilación y recompilación
d) Funciones
e) Resultados intermedios
i) Tablas temporales
ii) tablas derivadas
iii) Tipo de dato tabla
f) Control del plan de ejecución
i) Heurísticas
ii) Hints
iii) Plan Guides
g) Novedades
h) XML e Indices XML en SQL Server 2005/8
8) Recursion y Common Table Expresions en SQL Server 2005
9) Operadores de conjunto en SQL Server 2005
10) Funciones de numeración en SQL Server 2005
11) Agregación y pivoteo en SQL Server 2005
12) Datos Jerárquicos en SQL Server 2008
13) Filestream en SQL Server 2008
14) Merge en SQL Server 2008
15) Transacciones y concurrencia
a) Modelos y propiedades ACID
b) Modos de aislamiento.
c) Snapshot Isolation level y row versioning.
d) Tipos de locks y escalamiento
e) Deadlocks
16) 9) Midiendo el rendimiento (monitoring)
a) Performance monitor
b) SQL Server Profiler
c) Dynamic management Views
d) Statistics time y Statistics IO
e) El debug en cada version
f) Index Tuning Wizard
g) Database Tuning Adviser
h) Query analizar
i) Management studio
j) Built-in Traces
k) Otras herrramientas
17) 10) CLR
a) Stored procedures y funciones
b) Performance
18) 11) Temas especiales
a) Manejo de grandes volúmenes
b) Normalización versus desnormalización
c) Database snapshots
d) NUMA y segregación de la carga
e) Control de la carga (2008)