Es TEMPDB, por qué es tan importante?
-
Upload
javier-loria -
Category
Documents
-
view
1.839 -
download
7
description
Transcript of Es TEMPDB, por qué es tan importante?
![Page 1: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/1.jpg)
Es TempDB, porque es tan
importante?
Javier Loria
Mentor
SolidQ
![Page 2: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/2.jpg)
SQL Saturday Sponsors
Gold Sponsors
Silver Sponsors
Bronze Sponsors
![Page 3: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/3.jpg)
Tim Radney
Javier Loria
![Page 4: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/4.jpg)
Itzik Ben-Gan
Eladio Rincón
Fabiano Amorim
Adam Machanic
Paul S. Randal
Tim Radney
Steve Stedman
…
![Page 5: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/5.jpg)
![Page 6: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/6.jpg)
Quién es TempDB?
![Page 7: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/7.jpg)
TempDB
http://www.microsoft.com
http://www.tempdb.com
It’s complicated
TempDB es como cualquier otra base de datos
casi
![Page 8: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/8.jpg)
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
![Page 9: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/9.jpg)
Qué es TempDB?
![Page 10: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/10.jpg)
![Page 11: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/11.jpg)
Recurso global
![Page 12: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/12.jpg)
Que almacena?
![Page 13: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/13.jpg)
Objetos Internos
Objetos de Usuario
Versionamiento
1
2
3
![Page 14: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/14.jpg)
Resultados
intermedios
para ordenar
Resultados intermedios
Hash JOIN/Agregados
LOB o XML
Resultados
Intermedios
de ConsultasCursores
Index
creation
Service
Broker
Internos1
![Page 15: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/15.jpg)
Spool
• Lazy/Eager
SpoolNonClustered
SpoolRowCount
Spool Table
Sort
Hash Match
• Join/Aggregate
Operadores1
![Page 16: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/16.jpg)
![Page 17: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/17.jpg)
Demo
• ORDER BY
• UNION
Sin Demo
• DISTINCT
• JOIN
• TOP / WHERE
![Page 18: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/18.jpg)
Plan de Ejecución Estimado
Plan de Ejecución Real
![Page 19: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/19.jpg)
CREATE NONCLUSTERED INDEX FLPS242DON dbo.FLPS242(PaiCod, DivNiv1Cod,EstNum, EscNumDet, PGETarNum,PGECtaObjCod, PGECatCtaObjCod)WITH (SORT_IN_TEMPDB = ON);
SORT_IN_TEMPDB1
![Page 20: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/20.jpg)
![Page 21: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/21.jpg)
Si tiene disco(s) separados
para TempDB: SORT_IN_TEMPDB
![Page 22: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/22.jpg)
Usu
ario
Tablas Temporales
Tablas Temporales Globales
Variables Tabla
Tablas funciones “Table-Value”
2
![Page 23: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/23.jpg)
SUBCONSULTAS TABLAS TEMPORALES
CTE VS VARIABLES TABLA
VISTAS
2
![Page 24: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/24.jpg)
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
![Page 25: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/25.jpg)
![Page 26: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/26.jpg)
• En general: Subconsultas, Vistas
y CTES ofrecen mejor desempeño,
pero …
• Variables tabla para número bajo
de filas sino Tablas Temporales
![Page 27: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/27.jpg)
Tipos de Funciones
Escalares En LíneaMulti-
Sentencia
![Page 28: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/28.jpg)
Tipos de Funciones
Escalares
•Mono-hilo
•Interpretadas
![Page 29: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/29.jpg)
Tipos de Funciones
Multi-
Sentencia
•Múltiples comandos
•Almacenan en TempDB
![Page 30: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/30.jpg)
Tipos de Funciones
•Funcionalidad limitada
•Sin cuerpo
•Mono-SELECT
En Línea
![Page 31: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/31.jpg)
![Page 32: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/32.jpg)
• De preferencia usar funciones En
línea (In-Line).
• Si se requiere la funcionalidad
multi-sentencia, pero con número
filas limitado.
![Page 33: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/33.jpg)
Snapshotisolation
ReadCommitedSnapshot
Online Index
MARSAfter
Triggers
Versionamiento 3
![Page 34: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/34.jpg)
![Page 35: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/35.jpg)
![Page 36: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/36.jpg)
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
![Page 37: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/37.jpg)
Cuando salen
mal las cosas?
![Page 38: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/38.jpg)
![Page 39: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/39.jpg)
Estructura
FISICA
![Page 40: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/40.jpg)
PFS
GAM
SGAM
IAM
Páginas
Extents
![Page 41: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/41.jpg)
Página
![Page 42: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/42.jpg)
Extent
![Page 43: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/43.jpg)
Byte por página
PFS
HEAPS
LOB
OVERFLOW
![Page 44: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/44.jpg)
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
![Page 45: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/45.jpg)
![Page 46: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/46.jpg)
![Page 47: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/47.jpg)
![Page 48: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/48.jpg)
• 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
![Page 49: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/49.jpg)
• 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
![Page 50: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/50.jpg)
![Page 51: Es TEMPDB, por qué es tan importante?](https://reader033.fdocuments.es/reader033/viewer/2022052600/558841f5d8b42a9e1a8b464e/html5/thumbnails/51.jpg)