AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 44899
Accepted
meltdownmonk
meltdownmonk
Asked: 2013-06-20 16:55:59 +0800 CST2013-06-20 16:55:59 +0800 CST 2013-06-20 16:55:59 +0800 CST

Como interpreto o log quando executo DBCC TRACEON (3502, 3504, 3605, -1)

  • 772

Tenho usado DBCC Traceon (3502, 3504, 3605, -1) porque foi recomendado em um blog para descobrir problemas de desempenho relacionados a E/S. Estou executando o MS SQL Server 2008 R2 SP1

Os resultados no meu arquivo SQL Log são mais ou menos assim (números um pouco falsificados):

prestes a registrar o fim do ponto de verificação

último alvo pendente 2, avgWriteLatency 40ms

Taxa de transferência média: 0,67 MB/s, Saturação de E/S: 79, Chaves de contexto 201

FlushCache: limpou 125 Bufs com 69 gravações, em 1447ms (evitou 0 novos bufs sujos)

Ckpt dbid 9 fase 1 finalizada (8)

prestes a registrar o início do ponto de verificação.

Eu realmente não sei como ler isso, ou dividi-lo de uma maneira que eu consiga obter algo realmente significativo com isso.

O que significa "última meta pendente?"

A latência média de gravação significa o tempo de sobrecarga necessário por gravação? ou o tempo entre as gravações? 40 ms parece alto, a unidade física é de 1 TB e está configurada para RAID5.

O que é saturação de E/S?

O que isso tem a ver com os interruptores de contexto. Estou assumindo que as opções de contexto têm algo a ver com multitarefa. Alterando entre trabalhos/gravações.

FlushCache. Eu percebo que isso tem a ver com a limpeza do cache. O que são os Bufs? Essas páginas de dados precisavam ser escritas? Quais são os Bufs sujos? Por que eles seriam evitados?

Uma análise detalhada seria apreciada.

sql-server sql-server-2008-r2
  • 2 2 respostas
  • 3254 Views

2 respostas

  • Voted
  1. Best Answer
    Kin Shah
    2013-06-21T13:32:18+08:002013-06-21T13:32:18+08:00

    Os sinalizadores de rastreamento que você ativou informarão o que um ponto de verificação está fazendo nos bastidores.

    • 3502: grava no log de erros quando um ponto de verificação inicia e termina
    • 3504: grava no log de erros informações sobre o que está gravado no disco
    • 3605: permite que as impressões de rastreamento vão para o log de erros

    Consulte a postagem no blog de Paul Randall para obter mais detalhes sobre o que foi dito acima. Além disso, o ajuste fino para desempenho ideal tem uma excelente informação - especialmente na seção Em busca de picos .

    Algumas leituras realmente internas:

    1. Como funciona: quando a mensagem FlushCache é adicionada ao log de erros do SQL Server?
    2. Como funciona: Ponto de verificação do SQL Server (FlushCache) Alvo de E/S pendente
    3. Problemas de ponto de verificação do SQL Server

    Em vez de se concentrar diretamente no comportamento do ponto de verificação, sugiro que você olhe para DMVs e Perfmon (relacionado ao disco) -

    1. sys.dm_io_virtual_file_stats
    2. Objeto de disco físico: Avg. Comprimento da Fila de Disco
    3. média Disk Sec/Read
    4. média Disk Sec/Write
    5. Disco Físico: % Tempo de Disco
    6. média Leituras de disco/seg
    7. média Gravações de disco/seg

    Você pode consultar Investigando gargalos de E/S

    • 6
  2. meltdownmonk
    2013-06-21T11:18:12+08:002013-06-21T11:18:12+08:00

    Minha resposta:

    Bufs, são páginas SQL, são páginas de 8 KB, 8 páginas por existente (um grupo de páginas) que é de 64 KB e é o menor bloco em um arquivo de banco de dados SQL (mas não no arquivo de log, o arquivo de log pode usar os discos físicos menor tamanho de bloco, geralmente 512 Bytes)

    Portanto, no meu próprio exemplo, os 125 Bufs eram 125 páginas, quase 1 MB de dados distribuídos em 69 gravações. Demorou um total de 1447 para escrever essas 125 páginas (basicamente 1447 segundos para escrever 125x8KB) e se você multiplicar o tempo que levou pelo Throughput, obterá o tamanho dos dados que foram gravados e é muito próximo dos 125.

    Os Dirty Bufs são apenas páginas sujas, que são páginas que foram alteradas, mas não tiveram essas alterações refletidas em nenhum outro lugar, exceto no Cache.

    Ainda não entendo a saturação de E/S.

    A média de latência de gravação é o tempo necessário para concluir o ponto de verificação (1447) dividido pelo número de gravações. Neste caso, deve ser 20,97 ms. Portanto, os números que usei para o exemplo estão incorretos; Eles não são da mesma entrada de log.

    Parece que este servidor está executando lentamente com base nas estatísticas.

    • 0

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve