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 / 83096
Accepted
MetaGuru
MetaGuru
Asked: 2014-11-20 11:26:31 +0800 CST2014-11-20 11:26:31 +0800 CST 2014-11-20 11:26:31 +0800 CST

É normal que o tempdb não desista do espaço em disco quando libera as coisas?

  • 772

Então meu tempdb está ficando enorme. Tipo mais de 200 GB.

USE tempdb  GO  EXEC sp_spaceused

database_name   database_size   unallocated space 
tempdb          211668.88 MB    206803.45 MB

Está usando um modelo de recuperação SIMPLES, que de acordo com a Microsoft:

Defina o modelo de recuperação de tempdb como SIMPLE. Este modelo recupera automaticamente o espaço de log para manter os requisitos de espaço pequenos.

Mas 'recuperar espaço de log' significa que ainda mantém a alocação de disco?

Mais ou menos como se eu tivesse um influxo de clientes no meu negócio, então peguei emprestado um lote do outro lado da rua para colocar os carros extras, mas depois que não preciso mais de todo aquele espaço, ainda reservei aquele estacionamento extra para mais tarde (não permitir que qualquer outra pessoa o use) apesar de permanecer vazio?

Se esse for um comportamento normal, posso esperar que esteja acumulando espaço que pensa que pode usar novamente um dia e, portanto, se tivesse espaço 'infinito' para expandir, acabaria parando de crescer com base nos padrões de uso determinados.

Ou é suposto estar devolvendo espaço em disco ao sistema operacional quando ele for lançado?

ATUALIZAR

Também encontrei isto: http://technet.microsoft.com/en-us/library/ms176037(v=sql.105).aspx

Por padrão, o banco de dados tempdb cresce automaticamente conforme o espaço é necessário, porque o MAXSIZE dos arquivos é definido como UNLIMITED. Portanto, o tempdb pode continuar crescendo até que o espaço no disco que contém o tempdb seja esgotado. Você pode evitar que o tempdb cresça sem limites definindo um MAXSIZE para tempdb, mas isso não é recomendado. Limitar o tamanho de tempdb pode fazer com que o banco de dados fique sem espaço em disco. Isso pode causar interrupções significativas em seu ambiente de produção e impedir que os aplicativos em execução concluam as operações.

Talvez eu tenha respondido minha própria pergunta aqui, mas espero que alguém possa esclarecer: segue-se que eu deveria tê-lo em uma unidade/partição por si só? Então, ele pode crescer 'tão grande quanto possível' e, ao mesmo tempo, não ocupar espaço em disco que desejo usar para outras coisas? Mas, nesse caso, eu me pergunto qual é a diferença entre MAXSIZE e realmente não ter mais espaço para crescer fisicamente .

sql-server-2012 tempdb
  • 2 2 respostas
  • 19705 Views

2 respostas

  • Voted
  1. Your_comment_is_not_funny
    2014-11-20T13:05:43+08:002014-11-20T13:05:43+08:00

    O Tempdb liberará espaço quando você reiniciar o SQL Server ou quando reduzir os arquivos, consulte kb307487. Como foi mencionado, geralmente é uma prática ruim usar o autoshrink. Se você estiver com restrições de espaço porque o tempdb não foi provisionado para armazenamento separado, poderá reduzir os arquivos de dados usando dbcc shrinkfile . Se você não tem que fazer isso, eu não faria. Parece que você tem uma carga de trabalho que precisa de espaço e ter o espaço já alocado evita que ela tenha que crescer novamente. A Microsoft tem algumas orientações sobre como melhorar o desempenho do tempdb.

    • 2
  2. Best Answer
    Neghtasro
    2014-11-20T11:39:00+08:002014-11-20T11:39:00+08:00

    Sim, os arquivos do SQL Server não encolhem automaticamente. Eles permanecem do mesmo tamanho, a menos que você os reduza explicitamente, por meio do SQL Server Management Studio ou usando o comando DBCC SHRINKFILE. Embora você possa definir arquivos para encolher automaticamente, isso é amplamente desaconselhado porque reduzir/aumentar arquivos exige muitos recursos, especialmente quando você está lidando com arquivos de log que não possuem inicialização instantânea de arquivo.

    EDIT: Em resposta à sua edição: há uma diferença entre MAXSIZE e o tamanho que um arquivo pode obter antes de ficar sem disco. Você pode definir isso na seção Arquivos das propriedades do banco de dados ou com um comando ALTER DATABASE.

    • 0

relate perguntas

  • SQL Server 2012 Criar índice com Sort In TempDb On - Gains False?

  • Transparência de failover do SQL Server AlwaysOn

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

  • 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