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 / server / Perguntas / 1005611
Accepted
entonio
entonio
Asked: 2020-03-05 12:24:27 +0800 CST2020-03-05 12:24:27 +0800 CST 2020-03-05 12:24:27 +0800 CST

Resultados da reorganização vs índice de reconstrução

  • 772

(Um pouco de contexto primeiro porque, embora eu espere que as perguntas sejam gerais o suficiente, sempre nos dizem que as soluções dependem do contexto. Não há DBA neste cenário.)

Este é um banco de dados [de escritório muito pequeno], usado 5 dias por semana, 8 horas por dia, por um punhado de clientes executando um programa que faz principalmente listagens e um pequeno número de inserções/atualizações a cada vez.

O banco de dados é um único arquivo, possui cerca de 25 tabelas, e atualmente roda até 20 GB, sendo 19 deles utilizados pela mesma tabela, que é aquela com imagecoluna blob().

Há um backup diário do arquivo de dados, mas em todos os seus mais de 10 anos nunca houve nenhuma manutenção, além de movê-lo de servidor para servidor - começou no SQL Server 2005 / Windows SBS 2003 ou algo assim, mudou 3 vezes, e agora está no SQL Server 2019 / Windows 2019.

Achei os 20 GB demais (não é problema para backups, o sistema é rápido o suficiente), mas quando vi a quantidade de registros na tabela com o blob concluí que são cerca de 300 KB por blob, o que parece justo . Seria um ótimo candidato para compactação ou armazenamento fora do banco de dados, mas eu não controlo o programa que usa o banco de dados.

O índice dessa tabela é 96% fragmentado. O conselho padrão seria fazer uma reconstrução e atualizar as estatísticas, mas tenho várias perguntas e aqui estão elas, finalmente, espero que sejam úteis a todos:

  • A reconstrução do índice não corre o risco de inflar o tamanho do arquivo de banco de dados em um grande fator? (mesmo que nunca tenha sido reduzido e o tamanho atual pareça estar preenchido com dados válidos em vez de vazios) Não estou interessado em aumentar o banco de dados para, digamos, 25 GB, especialmente porque os dados raramente são excluídos deste banco de dados , apenas adicionado. Eu poderia tolerar um aumento de 1 ou 2 GB; meu problema é que eu não tenho idéia do que esperar.

  • Dado que tenho muito tempo ocioso para usar, há uma desvantagem em apenas fazer uma reorganização? Pela descrição, parece uma operação menos intrusiva e apenas menos recomendada porque é um processo mais antigo e mais lento durante o qual o banco de dados será menos responsivo.

  • Posso combinar uma reorganização com a atualização das estatísticas ou essa pergunta revela que eu realmente não tenho ideia de como os índices funcionam?

  • Dado o padrão de uso do banco de dados, é um risco não ter backups dos logs e afins?

sql-server
  • 1 1 respostas
  • 140 Views

1 respostas

  • Voted
  1. Best Answer
    rvsc48
    2020-03-06T08:07:15+08:002020-03-06T08:07:15+08:00

    A reconstrução do índice não corre o risco de inflar o tamanho do arquivo de banco de dados em um grande fator? (mesmo que nunca tenha sido reduzido e o tamanho atual pareça estar preenchido com dados válidos em vez de vazios) Não estou interessado em aumentar o banco de dados para, digamos, 25 GB, especialmente porque os dados raramente são excluídos deste banco de dados , apenas adicionado. Eu poderia tolerar um aumento de 1 ou 2 GB; meu problema é que eu não tenho idéia do que esperar.

    • A regra geral é que você precisará de 100% do tamanho do seu índice como é hoje e um adicional de 20% para despesas gerais. Lembre-se também de que as reconstruções são totalmente registradas, portanto, seu log de transações também inflará um pouco. As práticas recomendadas dizem para permitir que os dados e o arquivo de log se expandam conforme necessário, certificando-se de que haja espaço suficiente nas unidades.

    Dado que tenho muito tempo ocioso para usar, há uma desvantagem em apenas fazer uma reorganização?

    • Eu faria uma reorganização, no mínimo, que pode ser feita a qualquer momento. Pelo menos isso aliviaria um pouco da fragmentação que você está vendo até que você possa agendar um horário para reconstruí-la.

    Posso combinar uma reorganização com a atualização das estatísticas ou essa pergunta revela que eu realmente não tenho ideia de como os índices funcionam? Sim -

    • As recriações executam automaticamente estatísticas em seus índices.
    • As reorganizações exigem que as estatísticas sejam executadas manualmente (exec sp_updatestats)

    Pela descrição, parece uma operação menos intrusiva e apenas menos recomendada porque é um processo mais antigo e mais lento durante o qual o banco de dados será menos responsivo.

    • As reorganizações desfragmentam o nível de folha de índices clusterizados e não clusterizados reordenando fisicamente as páginas de nível de folha para corresponder à ordem lógica (menos intrusiva e é feita online)

    • Reconstrói descarta e reconstrói os índices (o mais intrusivo e de bloqueio pode ocorrer e pode ser feito offline ou online, dependendo da sua edição)

    • Ambos removem a fragmentação, mas as reconstruções são mais eficientes

    Dado o padrão de uso do banco de dados, é um risco não ter backups dos logs e afins?

    • Se o Modelo de Recuperação do banco de dados for FULL, você deverá fazer backups do log de transações. Estou assumindo que o modelo de recuperação é Simples, caso em que os backups de log de transações não podem acontecer. Além disso, sem backups de log de transações, você não pode executar uma recuperação pontual, se alguma vez for necessária. Tudo isso é direcionado pelos RTO/RPOs ditados pelo negócio.

    Reconstruir Índice RebuildReorgIndex

    • 1

relate perguntas

Sidebar

Stats

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

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

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