Es TEMPDB, por qué es tan importante?
-
Upload
javier-loria -
Category
Documents
-
view
1.837 -
download
7
description
Transcript of Es TEMPDB, por qué es tan importante?
Es TempDB, porque es tan
importante?
Javier Loria
Mentor
SolidQ
SQL Saturday Sponsors
Gold Sponsors
Silver Sponsors
Bronze Sponsors
Tim Radney
Javier Loria
Itzik Ben-Gan
Eladio Rincón
Fabiano Amorim
Adam Machanic
Paul S. Randal
Tim Radney
Steve Stedman
…
Quién es TempDB?
TempDB
http://www.microsoft.com
http://www.tempdb.com
It’s complicated
TempDB es como cualquier otra base de datos
casi
No persiste
• Se recrea cada vez que SQL se apaga
Solo tiene un Filegroup
• Pero puede tener múltiples archivos.
Puede hacer Rollback
• Pero no Rollforward (Redo)
Restricciones
• Única, AUTOSHRINK, CHECKSUM, Snapshots
casi
Qué es TempDB?
Recurso global
Que almacena?
Objetos Internos
Objetos de Usuario
Versionamiento
1
2
3
Resultados
intermedios
para ordenar
Resultados intermedios
Hash JOIN/Agregados
LOB o XML
Resultados
Intermedios
de ConsultasCursores
Index
creation
Service
Broker
Internos1
Spool
• Lazy/Eager
SpoolNonClustered
SpoolRowCount
Spool Table
Sort
Hash Match
• Join/Aggregate
Operadores1
Demo
• ORDER BY
• UNION
Sin Demo
• DISTINCT
• JOIN
• TOP / WHERE
Plan de Ejecución Estimado
Plan de Ejecución Real
CREATE NONCLUSTERED INDEX FLPS242DON dbo.FLPS242(PaiCod, DivNiv1Cod,EstNum, EscNumDet, PGETarNum,PGECtaObjCod, PGECatCtaObjCod)WITH (SORT_IN_TEMPDB = ON);
SORT_IN_TEMPDB1
Si tiene disco(s) separados
para TempDB: SORT_IN_TEMPDB
Usu
ario
Tablas Temporales
Tablas Temporales Globales
Variables Tabla
Tablas funciones “Table-Value”
2
SUBCONSULTAS TABLAS TEMPORALES
CTE VS VARIABLES TABLA
VISTAS
2
VARIABLES TABLA VS TABLAS TEMPORALES
2
TEMPORARY
TABLES TABLE VARIABLES
Statistics Yes No
Indexes Yes
Only with
constraints
Schema modifications Yes No
Available in child routines
including sp_executesql Yes No
Use with INSERT INTO … EXEC Yes No
In memory structures No No
• En general: Subconsultas, Vistas
y CTES ofrecen mejor desempeño,
pero …
• Variables tabla para número bajo
de filas sino Tablas Temporales
Tipos de Funciones
Escalares En LíneaMulti-
Sentencia
Tipos de Funciones
Escalares
•Mono-hilo
•Interpretadas
Tipos de Funciones
Multi-
Sentencia
•Múltiples comandos
•Almacenan en TempDB
Tipos de Funciones
•Funcionalidad limitada
•Sin cuerpo
•Mono-SELECT
En Línea
• De preferencia usar funciones En
línea (In-Line).
• Si se requiere la funcionalidad
multi-sentencia, pero con número
filas limitado.
Snapshotisolation
ReadCommitedSnapshot
Online Index
MARSAfter
Triggers
Versionamiento 3
Evita el “Shared Lock”= No espero consistencia
Puede retornar la misma fila, varias veces
Puede brincarse filas commited
Tiende a producir INDEX SCAN, y otros efectos colaterales
Cuando salen
mal las cosas?
Estructura
FISICA
PFS
GAM
SGAM
IAM
Páginas
Extents
Página
Extent
Byte por página
PFS
HEAPS
LOB
OVERFLOW
Glo
bal
Allo
cati
on
Map
GAM
Shar
edA
lloca
tio
nM
ap
SGAM
Ind
exA
lloca
tio
nM
ap
IAM
Bit por Extent
Estado GAM SGAM
Libre 1 0
Uniforme 0 0
Mixto 0 1
• 1 Archivo por núcleo (core), hasta 8.
<=8
• 8 archivos por los 8 primeros núcleos.
• 1 archivo por cada 2 núcleos adicionales.9-16
• 12 archivos para los primeros 16 núcleos
• +1 archivos para cada 4 núcleos.>16
• Lo que sea necesario
• En dividido en cantidades iguales por archivos
Tamaño
• RAID 10 $$$
• RAID 1 $RAID
• Discos Rápidos
• En algunos ambientes separar el LOG de la BD
IO