Eu tenho uma tabela grande (~ 50 milhões de linhas). Estou tentando inserir em massa no SQL Server e recebo o erro:
Não foi possível alocar espaço para o objeto 'myDB' no banco de dados 'I 3 Stroke' porque o grupo de arquivos 'PRIMARY' está cheio. Crie espaço em disco excluindo arquivos desnecessários, descartando objetos no grupo de arquivos, adicionando arquivos adicionais ao grupo de arquivos ou configurando o crescimento automático para arquivos existentes no grupo de arquivos.
Há outra tabela no banco de dados com cerca de 25 milhões de linhas. Esse banco de dados será usado apenas em uma única máquina e será projetado para extrair dados que já existem e, sob nenhuma circunstância, crescerá além do tamanho atual.
Para uma situação como essa, qual é a melhor maneira de resolver isso para que o SQL Server não se queixe? A solução importará que esse banco de dados não seja exposto a vários usuários?
fonte
Respostas:
Siga esses passos:
( Sugestão: deixe pelo menos 20% de espaço livre em disco se você hospedar os arquivos de banco de dados no mesmo disco que o seu SO { Sub-sugestão : Não Reconstrua / migre seus dados para seu próprio disco; você está se atrapalhando com a E / S.} e deixe pelo menos 8% para um disco de dados puro; esses números são estimativas do que eu acho que as porcentagens reais sugerem são. )
( você também pode considerar seus valores de "crescimento automático" enquanto estiver aqui ) .
Você deseja fornecer ao seu banco de dados o máximo de alocação de armazenamento possível. Se ficar sem espaço, você receberá esse erro sem o crescimento automático ativado e se o crescimento automático estiver ativado, você terá um impacto no desempenho sempre que precisar crescer automaticamente. Se você está simplesmente sem espaço em disco, essa é a sua resposta e precisa de um disco maior.
fonte
O Express Edition 2014 tem um limite de 10 GB por banco de dados. Se o crescimento automático de um banco de dados atingir esse ponto, o SQL Server lançará a mensagem de erro (obscura?), Sem mencionar o limite de licença. Pode haver muito espaço em disco, mas você ainda vê esta mensagem.
Solução se o design permitir: use vários bancos de dados sob esta licença.
fonte
Os bancos de dados geralmente ficam sem espaço quando estão no modo de recuperação total. Se você não estiver fazendo transações e os backups manuais forem suficientes, poderá alterar o modo de recuperação para simples.
Também pode ser necessário recuperar espaço no arquivo de log. . . pode ser esvaziado, mas ainda usa espaço.
No entanto, é melhor fazer essa pergunta aos DBAs, que podem oferecer mais soluções.
fonte
Na minha experiência, essa mensagem ocorre quando o arquivo primário (.mdf) não possui espaço para salvar os metadados do banco de dados. Este arquivo inclui as tabelas do sistema e eles apenas salvam seus dados nele.
Deixe algum espaço no arquivo e os comandos funcionarão novamente. Isso é tudo, aproveite
fonte