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 / 186437
Accepted
Erik Darling
Erik Darling
Asked: 2017-09-21 06:43:22 +0800 CST2017-09-21 06:43:22 +0800 CST 2017-09-21 06:43:22 +0800 CST

Os valores em `sys.dm_os_wait_stats` são redefinidos para 0 ou param de acumular quando atingem o valor máximo?

  • 772

Ao examinar sys.dm_os_wait_stats , as colunas a seguir são definidas comoBIGINT

  • wait_tasks_count
  • wait_time_ms
  • max_wait_time_ms

Se algum desses valores for acima 9,223,372,036,854,775,807de , os contadores são redefinidos para 0 ou simplesmente param de contar?

Não está claro na definição da tabela o que acontece nos bastidores:

sp_helptext 'sys.dm_os_wait_stats'

Devoluções:

CREATE VIEW sys.dm_os_wait_stats AS  
 SELECT *  
 FROM OpenRowset(TABLE SYSWAITSTATS)  

Então isso é um pouco de uma caixa preta.

Existem alguns DMVs onde números grandes podem se tornar negativos. Um exemplo disso é a total_elapsed_timecoluna em dm_exec_requests.

sql-server dmv
  • 1 1 respostas
  • 177 Views

1 respostas

  • Voted
  1. Best Answer
    Sean Gallardy
    2017-09-21T12:22:52+08:002017-09-21T12:22:52+08:00

    De acordo com Docs :

    No SQL Server, os contadores de tempo de espera são valores bigint e, portanto, não são tão propensos à substituição do contador quanto os contadores equivalentes em versões anteriores do SQL Server.

    Eu vi isso com a versão anterior do SQL Server em que o rollover aconteceu e você obteria números negativos porque os valores são assinados.

    Dei uma olhada no código-fonte e, de fato, esses são valores assinados de 8 bytes. Como tudo isso é C++, criei uma reprodução simples:

    #include "stdint.h"
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int64_t i8 = 0;
        cout << "Size of integer: " << sizeof(i8) << " bytes." << endl;
        cout << "Max Value: " << INT64_MAX << endl;
        i8 = INT64_MAX + 1;
        cout << "Value of MAX + 1: " << i8 << endl;
        cin;
        return 0;
    }
    

    A saída é semelhante ao que experimentei nas versões anteriores do SQL Server, o valor assinado é transferido. Observe que, se você compilar isso, deverá receber um aviso do compilador de que haverá rollover - recebi o aviso do compilador 4307 .

    Saída de acima:

    Size of integer: 8 bytes.
    Max Value: 9223372036854775807
    Value of MAX + 1: -9223372036854775808
    

    NÃO estou afirmando que é exatamente assim que o SQL Server funciona em todos os casos, pois há muitas nuances ... mas essa deve ser uma aproximação semelhante.

    O que tudo isso realmente significa?

    Eu duvido muito, como Aaron disse, que você encontre rollover nos valores de 64 bits no clima atual de hardware. Se o fizesse, seria fácil identificar e realmente seria mais uma imprecisão de relatório do que qualquer problema real na minha opinião.

    • 9

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

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 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

    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
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • 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
    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