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 / 292116
Accepted
xhr489
xhr489
Asked: 2021-05-24 11:28:36 +0800 CST2021-05-24 11:28:36 +0800 CST 2021-05-24 11:28:36 +0800 CST

Teste para ver quando a tabela é candidata à compactação (linha ou página)

  • 772

Alguém conhece uma ferramenta como esta página https://columnscore.com/ onde se pode determinar se uma tabela é uma boa candidata para compactação de linha ou página.

Também estou tentando entender os benefícios da compressão. Eu tenho lido sobre isso, mas ainda tenho essas dúvidas.

  1. A compactação fará com que mais 8 KB caibam no cache de buffer? Quando os dados se tornam descompactados, ou seja, em um select?
  2. os backups ficarão mais rápidos?
  3. A razão para a compressão dos anúncios é sobrecarga da CPU porque, por exemplo, as inserções precisam ser compactadas antes da inserção?
  4. Existe alguma boa razão para compactar tabelas sem investigar como as tabelas estão sendo usadas (ou seja, estáticas versus voláteis).

Um colega começou a compactar muitas tabelas (página). Não conheço a análise por trás dessa decisão. Eu sei que às vezes temos esperas de semáforos de recursos durante alguns horários de pico. Na verdade, acho que ele não sabe o que está fazendo. Eu posso ver que nossas esperas de rendimento do agendador sos aumentaram um pouco.

Eu acho que a compressão está causando mais danos e parece que as tarefas de manutenção ultrapassam mais agora (por exemplo, backups, checkdb...).

sql-server compression
  • 2 2 respostas
  • 412 Views

2 respostas

  • Voted
  1. Best Answer
    Paul White
    2021-05-26T03:55:35+08:002021-05-26T03:55:35+08:00

    Alguém conhece uma ferramenta como esta página https://columnscore.com/ onde se pode determinar se uma tabela é uma boa candidata para compactação de linha ou página.

    As recomendações de ferramentas estão fora do tópico aqui, principalmente porque pode haver qualquer número de respostas e elas tendem a ficar desatualizadas rapidamente. Dito isso, o SQL Server fornece um procedimento interno para estimar a economia de espaço da compactação, arquivos sp_estimate_data_compression_savings. Ele não tenta prever se a compactação será uma boa opção para a carga de trabalho como um todo, apenas se a economia de espaço pode ser esperada ou não. É essencialmente um wrapper em torno TABLESAMPLEde , criando um novo objeto e extrapolando o tamanho completo a partir daí.

    A compactação fará com que mais 8 KB caibam no cache de buffer?

    Se a compressão for eficaz, sim. As páginas permanecem compactadas no buffer pool.

    Quando os dados se tornam descompactados, ou seja, em um select?

    Os dados são descompactados quando um componente do SQL Server acima do nível do mecanismo de armazenamento precisa trabalhar com os dados. Por exemplo, um Index Scan apresentará dados descompactados para um operador Filter em um plano de execução.

    Principais componentes do SQL Server

    O rastreamento de pilha abaixo mostra um exemplo de descompactação antes de apresentar dados ao processador de consulta (código do mecanismo de armazenamento destacado):

    Rastreamento de pilha

    Você pode ler mais sobre isso em Estratégias de compressão de Sunil Agarwal (parte da equipe de engenharia do SQL Server na época).

    os backups ficarão mais rápidos?

    Muitas pessoas relataram que sim. A intuição é que dados compactados em armazenamento persistente requerem menos E/Ss para serem lidos para backup. Se sua instância normalmente estiver vinculada à CPU, você poderá ver backups mais lentos, pois o trabalho extra do processador necessário para a descompactação supera a aceleração de E/S.

    A razão para a compressão dos anúncios é sobrecarga da CPU porque, por exemplo, as inserções precisam ser compactadas antes da inserção?

    Certamente a compactação adiciona sobrecarga de CPU, mas isso geralmente é gerenciável porque os algoritmos de compactação de dados foram escolhidos pela eficiência e não pelo tamanho final. Observe que a compactação de dados e a compactação de backup são muito diferentes. A compactação de backup é baseada em uma variante da compactação gzip e destina-se a obter uma redução de tamanho muito boa às custas de mais uso da CPU.

    Cada inserção e atualização incorrerá em pelo menos alguma sobrecarga de compactação de dados. Isso é mais perceptível com a PAGEcompressão. O SQL Server também pode tentar recompactar uma página inteira depois que um determinado número de modificações tiver sido feito nessa página.

    Existe alguma boa razão para compactar tabelas sem investigar como as tabelas estão sendo usadas (ou seja, estáticas versus voláteis).

    Isso é subjetivo e depende de suas prioridades locais. Em geral, pode-se optar por compactar sem testes detalhados, onde fica claro que economias de espaço substanciais (e necessárias) serão feitas e o sistema tem bastante tempo livre do processador disponível.

    Um colega começou a compactar muitas tabelas (página). Não conheço a análise por trás dessa decisão.

    Você deve discutir o raciocínio com seu colega.

    • 9
  2. Stephen Morris - Mo64
    2021-05-24T12:07:47+08:002021-05-24T12:07:47+08:00

    Para sua primeira pergunta, existe um procedimento armazenado do sistema que você pode usar: -

    sp_estimate_data_compression_savings

    https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-estimate-data-compression-savings-transact-sql?view=sql-server-ver15

    para suas outras perguntas

    1 Como os dados são compactados, você pode inserir mais informações no mesmo tamanho de memória, os dados são descompactados quando são trocados com o aplicativo. consulte https://learn.microsoft.com/en-us/sql/relational-databases/data-compression/data-compression?view=sql-server-ver15

    2 Não, provavelmente não

    3 Sim

    4 Sua pergunta é uma pergunta principal: Quantas coisas você pode pensar que deveria fazer sem investigação?

    Você provavelmente deve conversar com seu colega se quiser descobrir por que ele fez algo, pode haver muitas razões pelas quais algumas tarefas estão sendo executadas.

    • 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

    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