tamanho do arquivo do SQL Server

1

Há algo que não entendo com os arquivos mdf do MSSQLServer. Eu fui solicitado a substituir um arquivo pela sua versão anterior (o banco de dados foi modificado entre as duas versões), mas quando eu o busco no meu backup (feito com o Bacula), o tamanho do arquivo é o mesmo!

Minha pergunta é: o arquivo tem um tamanho pré-definido que dinamicamente cresce, pois falta espaço (hein, estou claro?), então meus backups têm o mesmo tamanho, mas não o mesmo conteúdo?

Desculpe, mas não estou familiarizado com o SQL Server ....

Obrigado pela sua ajuda,

Jérémie

    
por jpicaude 19.02.2015 / 15:13

2 respostas

0

Os bancos de dados SQL são um pouco como grandes planilhas Excel.

Existem colunas e linhas.

Quando você remove dados, ele não reduz o banco de dados porque ele não remove linha e dados, apenas os valores (e armazena o arquivo de log nas alterações, se você estiver no modo de log completo).

Você precisa fazer backup do banco de dados para recuperar espaço no arquivo de log e armazenamento. (log e mdf).

    
por 19.02.2015 / 15:21
1

(Além disso: espero que você também esteja executando backups do SQL Server . de dentro do SQL Server. Movendo-se para a direita ao longo ....)

Isso depende, em parte, dos tipos de dados reais que você usa em suas tabelas e dos tipos de consultas que você executa com mais frequência. Por exemplo, uma coluna de inteiros usa 4 bytes para armazenar dados, independentemente do número inteiro que você armazena lá. Um datetime usa 4 bytes para armazenar dados, independentemente da data que você armazena lá. Uniqueidentifiers (GUIDs) são 16 bytes, não importa o quê. Atualize, o tamanho do armazenamento permanece o mesmo.

Tipos de dados variáveis, como nvarchar, são variáveis (duh). Nvarchar, por exemplo, é duas vezes o número de caracteres digitados, em bytes, em tamanho.

Além disso, o tamanho do banco de dados é pré-alocado quando criado, seja com um valor inserido ou com os valores padrão do servidor (que é definido no banco de dados do modelo). Portanto, é possível que ainda não tenha preenchido o espaço pré-alocado, especialmente se você fizer mais atualizações do que inserções ou se não estiver muito ocupado. (E se o autogrole depende das configurações.)

Aqui está uma referência para os vários tipos de dados.

    
por 19.02.2015 / 20:04