es tempdb, por qué es tan importante?

Post on 23-Jun-2015

1.839 Views

Category:

Documents

7 Downloads

Preview:

Click to see full reader

DESCRIPTION

TEMPDB es solo para datos temporales cierto o no? Se crea por defecto y se recrea cada vez que se reinicia SQL Server, entonces no debería ser importante, ESTO ES INCORRECTO. En esta sesión aprenderá sobre los aspectos internos de TEMPDB y por qué TEMPDB es importante. Se verán las mejores prácticas para configurar TEMPDB y cómo determina si hay centención. Si usted tiene sistemas en los cuales no se configurado TEMPDB entonces debe asistir a esta sesión

TRANSCRIPT

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

top related