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 / 258000
Accepted
Andres Arango
Andres Arango
Asked: 2020-01-23 11:51:58 +0800 CST2020-01-23 11:51:58 +0800 CST 2020-01-23 11:51:58 +0800 CST

Desempenho do Bigint e do SQL Server

  • 772

Herdei um banco de dados em que muitas das tabelas têm bigint como tipo de dados para muitos dos campos, e quando você vê o conteúdo ele não exige todo o espaço que o bigint oferece. O uso de bigint para campos que não precisam afeta o desempenho do banco de dados?

sql-server performance
  • 2 2 respostas
  • 1592 Views

2 respostas

  • Voted
  1. Best Answer
    Josh Darnell
    2020-01-23T13:14:46+08:002020-01-23T13:14:46+08:00

    Usar bigintcomparado a inttem, pelo menos, estas desvantagens de desempenho em potencial:

    • os dados usarão mais páginas no disco
      • isso pode afetar quanto tempo leva para ler os dados do disco quando não está na RAM
      • também fará com que quaisquer operações de manutenção envolvendo esses campos demorem mais (backups, reconstruções de índice, CHECKDB)
    • essas páginas de dados ocuparão mais espaço na RAM
      • isso significa que você precisará comprar mais RAM ou incorrer no custo de leitura do disco com mais frequência
    • concessões de memória que incluem essas colunas serão maiores
      • isso afeta os operadores de plano de consulta que consomem memória, como classificação e hash de dados
      • como um impacto secundário, isso tem o efeito de reduzir a concorrência

    Dito isto, o impacto prático que essas coisas têm para você depende muito de seu ambiente e carga de trabalho específicos.

    Observação: os aumentos nos problemas de uso de disco e RAM podem ser atenuados usando a compactação de linha , ao custo de maior uso da CPU. Como os servidores geralmente têm mais sobrecarga de CPU do que a RAM, isso geralmente é uma boa compensação (graças a Andy por este lembrete!)

    • 5
  2. kundan Sinha
    2020-02-02T11:15:17+08:002020-02-02T11:15:17+08:00

    Sim, o desempenho foi afetado.

    Na fase de otimização, o otimizador de consulta usa 50% do tamanho dos dados por coluna para estimar o tamanho dos dados da linha. Se usarmos tipos de dados maiores para colunas que armazenam dados menores, o tamanho estimado dos dados provenientes de tabelas será maior e causará maior exigência de concessão de memória ideal para consultas.

    O excesso de concessão de memória estimada causa pressão de memória para o SQL Server e afeta mal a expectativa de vida da página (diminua). O valor PLE mais baixo significa que as páginas de dados lidas do disco são armazenadas em cache na memória (RAM) por um período mais curto.

    Para evitar problemas de desempenho, todas as colunas de comprimento variável, variáveis ​​locais e parâmetros devem ser projetados adequadamente. Podemos usar int em vez de bigint para uma coluna de identidade e definir -2.147.483.648 como valor inicial para obter o benefício de tamanho duplo do tipo de dados int.

    • -1

relate perguntas

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

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

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

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