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 / 72313
Accepted
A-K
A-K
Asked: 2014-07-25 12:38:16 +0800 CST2014-07-25 12:38:16 +0800 CST 2014-07-25 12:38:16 +0800 CST

Devo reduzir meu banco de dados?

  • 772

Eu tenho um banco de dados SQL Server 2008 R2 de 1,2 TB que está mais de 50% vazio, porque migrei muitas funcionalidades para o PostgreSql. O banco de dados ainda está em uso e ainda está crescendo um pouco, mas não acho que crescerá para usar todos os 1,2 TB nos próximos 3 a 5 anos.

No ritmo atual de crescimento, não vamos consumir 1,2 Tb em mais de 14 anos. Mais especificamente, continuamos migrando a funcionalidade para o PostgreSql sempre que precisamos fazer mudanças sérias. Em um ambiente ágil muito dinâmico, isso significa que frequentemente migramos dados para fora desse banco de dados do SQL Server. Portanto, é provável que esse banco de dados cresça ainda mais devagar no futuro: ele está sendo eliminado gradualmente.

Como tal, preferimos usar esse espaço vazio não utilizado para outros bancos de dados e tal - provavelmente não será necessário para o crescimento de tabelas/índices.

Lembro que a regra geral costumava ser "nunca reduza os bancos de dados". Aplica-se neste caso? Atualmente, o servidor está executando o 2008 R2 EE, mas planejamos atualizar para 2012 em breve. Acho que, como essa funcionalidade de redução existe, deve haver casos de uso válidos em que faça sentido reduzir. Caso contrário, por que ele existe?

Podemos nos dar ao luxo de algumas horas de inatividade durante um fim de semana.

Editar: o problema que estamos resolvendo é como eu disse acima: "preferimos usar esse espaço vazio não utilizado para outros bancos de dados". Além disso, preferimos uma solução que não exija investir muito tempo no aprendizado da tecnologia da qual estamos migrando.

sql-server-2008-r2 sql-server-2012
  • 3 3 respostas
  • 2345 Views

3 respostas

  • Voted
  1. Best Answer
    Kin Shah
    2014-07-25T13:08:35+08:002014-07-25T13:08:35+08:00

    Lembro que a regra geral costumava ser "nunca reduza os bancos de dados". Aplica-se neste caso?

    Sim. Não toque no botão encolher - é uma regra geral e um conselho muito, muito bom de muitos renomados gurus do SQL Server - Paul Randal , Brent Ozar , Mike Walsh , Gail Shaw e muitos mais.

    O banco de dados ainda está em uso e ainda está crescendo um pouco, mas não acho que crescerá para usar todos os 1,2 TB nos próximos 3 a 5 anos.

    Você tem que ter 1000% de certeza sobre sua suposição de que está crescendo, mas não crescerá até esse tamanho nos 3 a 5 anos propostos (também é uma diferença de 2 anos :-)).

    still somewhat growing-->Você realmente precisa descobrir em que ritmo ela está crescendo. Você está rastreando o crescimento do banco de dados coletando o crescimento de dados durante todo o ciclo de negócios?

    Hoje em dia, os dados são o que mantém as empresas nos negócios e os bancos de dados devem crescer.

    Pense nisso: o que você vai fazer com o espaço em disco que ganha com a redução do banco de dados?

    Concentre-se em áreas mais importantes de otimização, como sugere @AaronBertrand .

    Mesmo se você decidir encolher, eu sugiro que você

    • Faça uma reorganização/reconstrução e atualize as estatísticas após a desagradável operação de redução
    • Faça um backup completo para ficar seguro com todos os índices intactos.
    • Ajuste suas configurações de crescimento automático para não permitir que os eventos de crescimento automático comecem com mais frequência.

    Editar

    Após os comentários do OP ---

    Então vá em frente ... já que você está ou estará movendo dados do SQL Server para o PostgreSql. Mas execute as etapas do post uma vez, como mencionei na minha resposta - depois de fazer a operação de redução. Além disso, use DBCC SHRINKFILE, pois você tem mais controle sobre o que está encolhendo em oposição a DBCC SHRINKDATABASE.

    • 3
  2. usr
    2014-07-25T13:47:27+08:002014-07-25T13:47:27+08:00

    A regra é nunca encolher. A regra é não encolher quando precisar crescer novamente.

    Vá em frente e encolha para recuperar o espaço. Lide com a fragmentação resultante. Esteja ciente de que o encolhimento pode causar carga extrema no disco. Esses são praticamente os únicos problemas resultantes do encolhimento.

    Ou reconstrua todos os índices em um novo grupo de arquivos e descarte/trunque o antigo. Isso pode ser muito mais rápido e desfragmentar/compactar todos os índices no processo. Observe que mover dados blob entre grupos de arquivos é muito mais difícil, então isso pode não funcionar para todos os índices/tabelas. Apenas uma ideia.

    • 2
  3. Shanky
    2014-07-25T14:26:47+08:002014-07-25T14:26:47+08:00

    Uma coisa importante com a operação de redução ao encolher através do estúdio de gerenciamento é a opção ' Liberar espaço não utilizado ', o que isso faz é

    ''Faça com que qualquer espaço não utilizado nos arquivos seja liberado para o sistema operacional e reduza o arquivo até a última extensão alocada, reduzindo o tamanho do arquivo sem mover nenhum dado. Nenhuma tentativa é feita para realocar linhas para páginas não alocadas. ''

    Você deve tentar esta opção, pois não há movimento de página, as chances de fragmentação são muito menores e esta opção pode ser usada se houver espaço livre no banco de dados.

    É bom que você esteja ciente das desvantagens do encolhimento. Tenho certeza de que as recomendações de Paul, Brent e Gail são mais em termos de educar o usuário sobre as desvantagens do encolhimento do que impedi-las. Se você quiser recuperar espaço, terá que encolher em algum momento e o fato de encolher causa fragmentação, então você precisa lidar com isso. Não é como se ninguém usasse o psiquiatra de banco de dados que as pessoas usam, mas não recomendam em um fórum público porque não estão cientes do ambiente e do impacto que isso causará.

    Eu diria que se você souber sobre o crescimento do banco de dados e souber que no próximo ano o espaço não será utilizado, reduza-o com cuidado , pode ser em pequenos pedaços, confira a opção que indiquei para ver se funciona

    • 1

relate perguntas

  • plano de manutenção executado pelo agente

  • Por que as sequências Denali devem ter um desempenho melhor do que as colunas de identidade?

  • O SQL Server não deveria oferecer suporte a RANGE?

  • Randomizando o conteúdo da tabela e armazenando-o de volta na tabela

  • O que é SQL Server "Denali"? O que há de novo?

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