SlideShare uma empresa Scribd logo
Globalcode – Open4education
Trilha – Banco de Dados
Ricardo Leka
Globalcode – Open4education
Quem?
Ricardo
@Leka.com.br
Globalcode – Open4education
Por que TempDB ?
Todos usam
Muita
informação
por aí
Mau
interpretada
Globalcode – Open4education
Quantos arquivos?
No Final Da Palestra
Globalcode – Open4education
Que se faça a luz
Logo após
a Master
ser iniciada,
o TempDB
é criado
A Model é
aberta
O TempDB
é criado
baseado na
Model
O SQL é
informado
que a base
está pronta
Em caso de
falha, o
serviço do
SQL para
Globalcode – Open4education
Criando o TempDB
• Conexões permitidas
• Mas nenhum acesso a TempDB
Lock na Model e na TempDB
• Cria o arquivo primário da base
• Copia os extents do Model para o arquivo primário
• Ajusta as configurações para a TempDB
• Cria o arquivo de transaction log
• Cria e anexa os outros arquivos
Create the new tempdb database
• Cria um arquivo primário do tamanho do da base Model
• Cria um arquivo de transaction log
• Cria os arquivos no diretório padrão para o DATA
• As informações originais são mantidas
E a opção –f?
Globalcode – Open4education
TempDB pronta
• Bases de usuários só termiam recovery
após TempDB Online
Recovery
• Arquivos atuais >= novos arquivos?
• Transaction Log <> IFI
Arquivos existentes
Globalcode – Open4education
Transaction Log
• Mínimo
• Sem informações sobre “after”
Insert/Update (heaps)
Log
• Sem Recovery
• Hard Checkpoint trunca o logSimple
• Shutdown
• Sem redoRollback
Globalcode – Open4education
A Lixeira do SQL
Globalcode – Open4education
A Lixeira do SQL
• Tabelas temporárias
• Tabelas variáveis
• Procedures temporárias
• User defined objects
Explícito
• Sorts
• Work tables
• Work files
• Versionamento
Implícito
Globalcode – Open4education
Sorts
WorkSpace ou QueryMemory
Não coube na
memória? TempDB
Pode ocupar
mais espaço do
que você imagina
Uniform extents
Cache?
Page type 7
Globalcode – Open4education
Índices e Sorts
Normalmente usa
Base do usuário
A não ser
SORT_IN_TEMPDB
Se houver RAM,
RAM será
Recomendado para
índice particionado
Globalcode – Open4education
Worktables
PlayGroud
dos DEV’s
Page ID
10
Object ID
negativo
Mixed
Extent
Globalcode – Open4education
Worktables
Service
Broker
XML
documents
CHECKDB
SPOOL
operators
Exchange
Spill
Merge
Joins
Cursors
LOB
variables
Globalcode – Open4education
Workfile
Hash Joins
Páginas no Buffer Pool
Sem log
Uniform
Extents
Usa
WorkTables
Page file 6
Globalcode – Open4education
Versionamento
Nada é
logado
Normalmente
usar para
SnapShot
Limpo
assíncrono
Rebuild
online índice
Page Type 2
Globalcode – Open4education
Múltiplos arquivos
Round
robin/preenchimento
proporcional
Para cada “alocação” é
alterado para o próximo
arquivo com espaço
livre equivalente
Arquivos mais
ocupados são
ignorados
É feito um cálculo de
proporção
• Após o recovery
• Quando um arquivo é
adicionado ou removido
• A cada 8192 extent
Globalcode – Open4education
Já sei qual arquivo usar,,,
e agora?
Para uniform
extents
Arquivo escolhido
Localize uma extent livre nas GAMs
do arquivo atual
Não possui espaço livre? Localize
extents livres em outros arquivos
Não deu certo? Cresça…
Para mixed
extents
Arquivo escolhido
Localize um mixed extent livre no
arquivo
Aloque o mixed extent no arquivo
Faça a mesma coisa em outros
arquivos
Não deu certo? Cresça…
Globalcode – Open4education
Criação de uma tabela
Criação do
catálogo de
sistema –
páginas das
tabelas de
sistema
Aloca IAM –
localiza uma
mixed extent e
marca uma
PFS
Aloca 1
página
Regista a
alocação na
tabela de
sistema
Localiza
SGAM
Localiza
e atualiza
PFS
Atualiza
IAM
Criação do
catálogo de
sistema –
páginas das
tabelas de
sistema
Globalcode – Open4education
Cache de tabela
temporária
• Apenas em procedures
• Sem DDL após a criação
• Sem constraints nomeadas
• Removido por pressão de memória
Restrições
• Cache de Metadados
• Cache por objeto para lincar ao cache plan
• Qualquer auto-estatística é lincada a tabela
Detalhes
Globalcode – Open4education
Contenção
A solução
• Temp Table caching
• Trace flag 1118
• Múltiplos arquivos
Data
• Desabilitar autogrow
• Avaliar utilização
• Localizar quais
objetos estão
consumindo recursos
A Pressão
• Páginas PFS, GAM e
SGAM
• Criação/remoção frequente
de tabelas
• Alocação/desalocação de
objetos internos
• Utilização de Heaps e PFS
Os sintomas
• PAGELATCH
• 2:<fileid>:<núm. da
página>
• Não é PAGEIOLATCH
Globalcode – Open4education
Mapas de Alocações
 No momento que as threads são disparadas, temos um grande
número de requisições nas páginas de alocações, SGAM e PFS.
 GAM – Global Allocation Map
 Atende um intervalo de aproximadamente 511232 páginas ou 64000 extents (4GB).
Mapeia quais uniforms extents estão ou não sendo utilizadas. Cada Extent pertence
unicamente a um objeto.
 SGAM – Shared Global Allocation Map
 Atende as mesmas descrições da página GAM, entretanto, cada extent monitorada
por essa página são do tipo mistas, ( Cada Extent pode conter páginas de dados de
diferentes objetos.)
 PFS – Page Free Space
 Responsável por armazenar informações sobre espaço utlizado por cada página no
banco de dados (Heap ou LOB). PFS monitora um intervalo de 8088 páginas ou
64MB.
Globalcode – Open4education
Latchs
File 2
PFS
SGAM
PFS
SGAM
64MB
4GB
File 1
PFS
SGAM
PFS
SGAM
64MB
4GB
Globalcode – Open4education
Tipos de Latch
 Latch Waits
 PAGEIOLATCH_XX
 SH – Quando uma task aguarda uma solicitação de página realizada pelo Buffer ao
disco. Tipos de espera SH(Shared) são compartilhados.
 EX – Quando uma task aguarda uma solicitação de página realizada pelo Buffer ao
disco. Tipos de espera EX(Exclusive) são exclusivos.
 UP – Quando uma task aguarda uma solicitação de página realizada pelo Buffer ao
disco. Tipo de espera UP(UPDATE) é realizado no momento de uma atualização
(Diferentemente de um T-SQL Update).
 PAGELATCH_XX
 SH – Uma task aguarda por uma solicitação de página que exista no buffer. Tipos de
espera SH(Shared) são compartilhados.
 EX – Uma task aguarda por uma solicitação de página que exista no buffer. Tipos de
espera EX(Exclusive) são de modo exclusivo.
 UP – Uma task aguarda por uma solicitação de página que exista no buffer. Tipos de
espera UP(UPDATE) é realizado no momento de uma atualização (Diferentemente de
um T-SQL Update).
Globalcode – Open4education
Quantos arquivos????
< 8 CPUs, 1 arquivo por CPU
• 8 ou mais pode ajudar a ficar mais rápido
• -T1118 se você usa muita temp table ou tabela
variável
>= 8 CPUs, começa com 8
• Teste sua aplicação e monitore por contenção de
PAGELATCH
• Aumente em 4 arquivos
• Na emergência, considere um arquivo por CPU

Mais conteúdo relacionado

ODP
Uso de arquivos na linguagem Java
PDF
TDC2016POA | Trilha Android - Firebase Cloud Messaging para Android e IoT
PDF
TDC2016POA | Trilha Banco de Dados - Conheça o Debezium: uma plataforma distr...
PDF
TDC2016POA | Trilha DevOps - Métricas, métricas para todos os lados!
PDF
TDC2016POA | Trilha DevOps - DevOps Anti-Patterns
PDF
TDC2016POA | Trilha DevOps - Monitoramento real-time com ELK
PDF
TDC2016POA | Trilha DevOps - Monitoramento da infraestrutura para aplicac?o?e...
PPTX
TDC2016POA | Trilha Android - Monetização: conheça a rede de anúncios que pag...
Uso de arquivos na linguagem Java
TDC2016POA | Trilha Android - Firebase Cloud Messaging para Android e IoT
TDC2016POA | Trilha Banco de Dados - Conheça o Debezium: uma plataforma distr...
TDC2016POA | Trilha DevOps - Métricas, métricas para todos os lados!
TDC2016POA | Trilha DevOps - DevOps Anti-Patterns
TDC2016POA | Trilha DevOps - Monitoramento real-time com ELK
TDC2016POA | Trilha DevOps - Monitoramento da infraestrutura para aplicac?o?e...
TDC2016POA | Trilha Android - Monetização: conheça a rede de anúncios que pag...

Destaque (20)

PPTX
TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...
PPTX
TDC2016POA | Trilha Banco de Dados - RavenDB: um banco de dados NoSQL de segu...
PPTX
TDC2016POA | Trilha Management - Ágil equilibrando o dia a dia de uma equipe
PDF
TDC2016POA | Trilha Pyhton - Python para Internet of Things
PDF
TDC2016POA | Trilha Python - Python Assíncrono: tudo ao mesmo tempo agora
ODP
TDC2016POA | Trilha Python - Heimdall Guard - Spam Filter
PPTX
TDC2016POA | Trilha Management - Lean Team Canvas para uma equipe de sucesso!
PPTX
TDC2016POA | Trilha Management - Torne-se dispensável de suas funções.
PDF
TDC2016POA | Trilha Management - Como criar melhores times de desenvolvimento
PPTX
Desvendando a Plataforma de Serviços Windows Azure
PDF
A plataforma Azure da Microsoft
PPTX
Introdução à computação na nuvem e Windows Azure
PDF
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
KEY
Sistemas para o Mundo Real - TDC 2012
PPTX
Desenvolvendo para o Windows Azure e SQL Azure
PPTX
O que há de novo no Microsoft Azure IaaS
PDF
Mongo db no mundo real slides
PDF
Hadoop, Big Data e Cloud Computing
PDF
Azure @ Rio Cloud Meetup
PDF
TDC2016POA | Trilha D Thinking - Close your books: usando ferramentas criativ...
TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...
TDC2016POA | Trilha Banco de Dados - RavenDB: um banco de dados NoSQL de segu...
TDC2016POA | Trilha Management - Ágil equilibrando o dia a dia de uma equipe
TDC2016POA | Trilha Pyhton - Python para Internet of Things
TDC2016POA | Trilha Python - Python Assíncrono: tudo ao mesmo tempo agora
TDC2016POA | Trilha Python - Heimdall Guard - Spam Filter
TDC2016POA | Trilha Management - Lean Team Canvas para uma equipe de sucesso!
TDC2016POA | Trilha Management - Torne-se dispensável de suas funções.
TDC2016POA | Trilha Management - Como criar melhores times de desenvolvimento
Desvendando a Plataforma de Serviços Windows Azure
A plataforma Azure da Microsoft
Introdução à computação na nuvem e Windows Azure
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
Sistemas para o Mundo Real - TDC 2012
Desenvolvendo para o Windows Azure e SQL Azure
O que há de novo no Microsoft Azure IaaS
Mongo db no mundo real slides
Hadoop, Big Data e Cloud Computing
Azure @ Rio Cloud Meetup
TDC2016POA | Trilha D Thinking - Close your books: usando ferramentas criativ...
Anúncio

Semelhante a TDC2016POA | Trilha Banco de Dados - TempDB, aprecie com moderação (20)

PPTX
TDC2016SP - Trilha Banco de Dados
PDF
InfluxDb: como monitorar milhares de dados por segundo em real time
PDF
Tdc2016 trilha-banco-influx.ppt
PPT
ORM - TDC Porto Alegre 2014 Trilha .NET
PPTX
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
PPT
Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...
PPT
SGDB OpenSource/Free vs Mercado
PPT
Controlando a versão de seu banco de dados com Migrations
PPT
Tdc2015
PDF
Event Sourcing - TDC 2015 - Pedro Góes
PPTX
Elasticsearch: o desafio como banco principal e cuidados em produção
PDF
TDC2016SP - Dark Launching: Minimizando os riscos de alterações críticas em p...
PDF
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
ODP
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...
PPT
TDC 2012 Goiânia - Entity Framework 5 e OData
PPT
Throughput, escalabilidade e distribuição global com Cosmos DB
PPT
6 Principios arquitetura de dados moderna
PPT
Tdc2015 NoSQL-documentdb
PPT
Tdc2015 NoSQL-documentdb
PPT
Trilha .Net - Programacao funcional usando f#
TDC2016SP - Trilha Banco de Dados
InfluxDb: como monitorar milhares de dados por segundo em real time
Tdc2016 trilha-banco-influx.ppt
ORM - TDC Porto Alegre 2014 Trilha .NET
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...
SGDB OpenSource/Free vs Mercado
Controlando a versão de seu banco de dados com Migrations
Tdc2015
Event Sourcing - TDC 2015 - Pedro Góes
Elasticsearch: o desafio como banco principal e cuidados em produção
TDC2016SP - Dark Launching: Minimizando os riscos de alterações críticas em p...
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...
TDC 2012 Goiânia - Entity Framework 5 e OData
Throughput, escalabilidade e distribuição global com Cosmos DB
6 Principios arquitetura de dados moderna
Tdc2015 NoSQL-documentdb
Tdc2015 NoSQL-documentdb
Trilha .Net - Programacao funcional usando f#
Anúncio

Mais de tdc-globalcode (20)

PDF
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
PDF
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
PDF
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
PDF
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
PDF
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
PDF
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
PDF
TDC2019 Intel Software Day - Inferencia de IA em edge devices
PDF
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
PDF
TDC2018SP | Trilha Go - Case Easylocus
PDF
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
PDF
TDC2018SP | Trilha Go - Clean architecture em Golang
PDF
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
PDF
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
PDF
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
PDF
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
PDF
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
PDF
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
PDF
TDC2018SP | Trilha .Net - .NET funcional com F#
PDF
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
PDF
TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - Inferencia de IA em edge devices
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1

Último (20)

PPTX
Ocupação e transformação dos territórios.pptx
PPTX
125511 - Aula 1 - América portuguesa antes da conquista patrimônio e preserva...
PPT
Caderno de Boas Práticas dos Professores Alfabetizadores.ppt
PPT
YY2015MM3DD6HH12MM42SS3-Organiza__o do Estado ILP.ppt
PPTX
AULA METodologia MODIFIC PART 1 MSC.pptx
PPT
AS VANGUARDAS EUROPEIAS NA LITERATURA E N
PDF
EXPRESSÕES IDIOMÁTICAS - LÍNGUA PORTUGUESA
PPSX
A epistemologia de Wilheim G Leibniz.ppsx
PPT
Domínios Morfoclimáticos.................................
PPTX
AULA 01 - INTRODUÇÃO AO ATENDIMENTO HUMANIZADO.pptx
PDF
01-slide-especialidade-mensageira-de-deus.pdf
PPT
1ª Telefonia Fixa Padrao Novo Jailton 2012_22.ppt
PPTX
Primeiros Socorros. Aula 1 VEROUVIRSENTIR.pptx
PDF
E-BOOK-Inovacao-em-Ciencia-e-Tecnologia-de-Alimentos.pdf
PPTX
BIÓTICOS E ABIOTICOS CADEIA ALIMENTAR.pptx
PDF
Reino Monera - Biologiaensinomediofun.pdf
PPT
Aula de Sociologia 22022022154507AULA 2.ppt
PPSX
4. A Cultura da Catedral - HistóriaCArtes .ppsx
PPTX
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
PPTX
1. A Cultura do Palco - muitos palcos, um espetáculo.pptx
Ocupação e transformação dos territórios.pptx
125511 - Aula 1 - América portuguesa antes da conquista patrimônio e preserva...
Caderno de Boas Práticas dos Professores Alfabetizadores.ppt
YY2015MM3DD6HH12MM42SS3-Organiza__o do Estado ILP.ppt
AULA METodologia MODIFIC PART 1 MSC.pptx
AS VANGUARDAS EUROPEIAS NA LITERATURA E N
EXPRESSÕES IDIOMÁTICAS - LÍNGUA PORTUGUESA
A epistemologia de Wilheim G Leibniz.ppsx
Domínios Morfoclimáticos.................................
AULA 01 - INTRODUÇÃO AO ATENDIMENTO HUMANIZADO.pptx
01-slide-especialidade-mensageira-de-deus.pdf
1ª Telefonia Fixa Padrao Novo Jailton 2012_22.ppt
Primeiros Socorros. Aula 1 VEROUVIRSENTIR.pptx
E-BOOK-Inovacao-em-Ciencia-e-Tecnologia-de-Alimentos.pdf
BIÓTICOS E ABIOTICOS CADEIA ALIMENTAR.pptx
Reino Monera - Biologiaensinomediofun.pdf
Aula de Sociologia 22022022154507AULA 2.ppt
4. A Cultura da Catedral - HistóriaCArtes .ppsx
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
1. A Cultura do Palco - muitos palcos, um espetáculo.pptx

TDC2016POA | Trilha Banco de Dados - TempDB, aprecie com moderação

  • 1. Globalcode – Open4education Trilha – Banco de Dados Ricardo Leka
  • 3. Globalcode – Open4education Por que TempDB ? Todos usam Muita informação por aí Mau interpretada
  • 4. Globalcode – Open4education Quantos arquivos? No Final Da Palestra
  • 5. Globalcode – Open4education Que se faça a luz Logo após a Master ser iniciada, o TempDB é criado A Model é aberta O TempDB é criado baseado na Model O SQL é informado que a base está pronta Em caso de falha, o serviço do SQL para
  • 6. Globalcode – Open4education Criando o TempDB • Conexões permitidas • Mas nenhum acesso a TempDB Lock na Model e na TempDB • Cria o arquivo primário da base • Copia os extents do Model para o arquivo primário • Ajusta as configurações para a TempDB • Cria o arquivo de transaction log • Cria e anexa os outros arquivos Create the new tempdb database • Cria um arquivo primário do tamanho do da base Model • Cria um arquivo de transaction log • Cria os arquivos no diretório padrão para o DATA • As informações originais são mantidas E a opção –f?
  • 7. Globalcode – Open4education TempDB pronta • Bases de usuários só termiam recovery após TempDB Online Recovery • Arquivos atuais >= novos arquivos? • Transaction Log <> IFI Arquivos existentes
  • 8. Globalcode – Open4education Transaction Log • Mínimo • Sem informações sobre “after” Insert/Update (heaps) Log • Sem Recovery • Hard Checkpoint trunca o logSimple • Shutdown • Sem redoRollback
  • 10. Globalcode – Open4education A Lixeira do SQL • Tabelas temporárias • Tabelas variáveis • Procedures temporárias • User defined objects Explícito • Sorts • Work tables • Work files • Versionamento Implícito
  • 11. Globalcode – Open4education Sorts WorkSpace ou QueryMemory Não coube na memória? TempDB Pode ocupar mais espaço do que você imagina Uniform extents Cache? Page type 7
  • 12. Globalcode – Open4education Índices e Sorts Normalmente usa Base do usuário A não ser SORT_IN_TEMPDB Se houver RAM, RAM será Recomendado para índice particionado
  • 13. Globalcode – Open4education Worktables PlayGroud dos DEV’s Page ID 10 Object ID negativo Mixed Extent
  • 15. Globalcode – Open4education Workfile Hash Joins Páginas no Buffer Pool Sem log Uniform Extents Usa WorkTables Page file 6
  • 16. Globalcode – Open4education Versionamento Nada é logado Normalmente usar para SnapShot Limpo assíncrono Rebuild online índice Page Type 2
  • 17. Globalcode – Open4education Múltiplos arquivos Round robin/preenchimento proporcional Para cada “alocação” é alterado para o próximo arquivo com espaço livre equivalente Arquivos mais ocupados são ignorados É feito um cálculo de proporção • Após o recovery • Quando um arquivo é adicionado ou removido • A cada 8192 extent
  • 18. Globalcode – Open4education Já sei qual arquivo usar,,, e agora? Para uniform extents Arquivo escolhido Localize uma extent livre nas GAMs do arquivo atual Não possui espaço livre? Localize extents livres em outros arquivos Não deu certo? Cresça… Para mixed extents Arquivo escolhido Localize um mixed extent livre no arquivo Aloque o mixed extent no arquivo Faça a mesma coisa em outros arquivos Não deu certo? Cresça…
  • 19. Globalcode – Open4education Criação de uma tabela Criação do catálogo de sistema – páginas das tabelas de sistema Aloca IAM – localiza uma mixed extent e marca uma PFS Aloca 1 página Regista a alocação na tabela de sistema Localiza SGAM Localiza e atualiza PFS Atualiza IAM Criação do catálogo de sistema – páginas das tabelas de sistema
  • 20. Globalcode – Open4education Cache de tabela temporária • Apenas em procedures • Sem DDL após a criação • Sem constraints nomeadas • Removido por pressão de memória Restrições • Cache de Metadados • Cache por objeto para lincar ao cache plan • Qualquer auto-estatística é lincada a tabela Detalhes
  • 21. Globalcode – Open4education Contenção A solução • Temp Table caching • Trace flag 1118 • Múltiplos arquivos Data • Desabilitar autogrow • Avaliar utilização • Localizar quais objetos estão consumindo recursos A Pressão • Páginas PFS, GAM e SGAM • Criação/remoção frequente de tabelas • Alocação/desalocação de objetos internos • Utilização de Heaps e PFS Os sintomas • PAGELATCH • 2:<fileid>:<núm. da página> • Não é PAGEIOLATCH
  • 22. Globalcode – Open4education Mapas de Alocações  No momento que as threads são disparadas, temos um grande número de requisições nas páginas de alocações, SGAM e PFS.  GAM – Global Allocation Map  Atende um intervalo de aproximadamente 511232 páginas ou 64000 extents (4GB). Mapeia quais uniforms extents estão ou não sendo utilizadas. Cada Extent pertence unicamente a um objeto.  SGAM – Shared Global Allocation Map  Atende as mesmas descrições da página GAM, entretanto, cada extent monitorada por essa página são do tipo mistas, ( Cada Extent pode conter páginas de dados de diferentes objetos.)  PFS – Page Free Space  Responsável por armazenar informações sobre espaço utlizado por cada página no banco de dados (Heap ou LOB). PFS monitora um intervalo de 8088 páginas ou 64MB.
  • 23. Globalcode – Open4education Latchs File 2 PFS SGAM PFS SGAM 64MB 4GB File 1 PFS SGAM PFS SGAM 64MB 4GB
  • 24. Globalcode – Open4education Tipos de Latch  Latch Waits  PAGEIOLATCH_XX  SH – Quando uma task aguarda uma solicitação de página realizada pelo Buffer ao disco. Tipos de espera SH(Shared) são compartilhados.  EX – Quando uma task aguarda uma solicitação de página realizada pelo Buffer ao disco. Tipos de espera EX(Exclusive) são exclusivos.  UP – Quando uma task aguarda uma solicitação de página realizada pelo Buffer ao disco. Tipo de espera UP(UPDATE) é realizado no momento de uma atualização (Diferentemente de um T-SQL Update).  PAGELATCH_XX  SH – Uma task aguarda por uma solicitação de página que exista no buffer. Tipos de espera SH(Shared) são compartilhados.  EX – Uma task aguarda por uma solicitação de página que exista no buffer. Tipos de espera EX(Exclusive) são de modo exclusivo.  UP – Uma task aguarda por uma solicitação de página que exista no buffer. Tipos de espera UP(UPDATE) é realizado no momento de uma atualização (Diferentemente de um T-SQL Update).
  • 25. Globalcode – Open4education Quantos arquivos???? < 8 CPUs, 1 arquivo por CPU • 8 ou mais pode ajudar a ficar mais rápido • -T1118 se você usa muita temp table ou tabela variável >= 8 CPUs, começa com 8 • Teste sua aplicação e monitore por contenção de PAGELATCH • Aumente em 4 arquivos • Na emergência, considere um arquivo por CPU

Notas do Editor

  • #26: https://blogs.msdn.microsoft.com/psssql/2008/12/17/sql-server-2005-and-2008-trace-flag-1118-t1118-usage/ - Uniform Extend no lugar de Mixed Extend