J'ai une grande table (~ 50 millions de lignes) J'essaie d'insérer en bloc dans SQL Server et j'obtiens l'erreur:
Impossible d'allouer de l'espace pour l'objet 'myDB' dans la base de données 'I 3 Stroke' car le groupe de fichiers 'PRIMARY' est plein. Créez de l'espace disque en supprimant les fichiers inutiles, en supprimant des objets dans le groupe de fichiers, en ajoutant des fichiers supplémentaires au groupe de fichiers ou en activant la croissance automatique pour les fichiers existants dans le groupe de fichiers.
Il existe une autre table dans la base de données avec environ 25 millions de lignes. Cette base de données ne sera utilisée que sur une seule machine, et elle sera conçue pour exploiter des données qui existent déjà et ne dépassera en aucun cas sa taille actuelle.
Dans une situation comme celle-ci, quelle est la meilleure façon de résoudre ce problème afin que SQL Server ne se plaigne pas? La solution importera-t-elle que cette base de données ne soit pas exposée à plusieurs utilisateurs?
la source
Réponses:
Suivez ces étapes:
( Suggestion: laissez au moins 20% d'espace disque libre si vous hébergez les fichiers de la base de données sur le même disque que votre système d'exploitation { Sous-suggestion : Don Ne faites pas cela! Reconstruisez / migrez vos données vers son propre disque; vous vous vissez sur les E / S.} et laissez au moins 8% pour un disque de données pur; ces chiffres sont des estimations de ce que je pense que les suggestions de pourcentage réel sont. )
( vous pouvez également considérer vos valeurs de "croissance automatique" pendant que vous êtes ici. )
Vous voulez donner à votre base de données autant d'allocation de stockage que vous pouvez vous le permettre. S'il manque d'espace, vous recevrez cette erreur sans croissance automatique et si la croissance automatique est activée, vous obtiendrez un impact sur les performances à chaque fois qu'il doit croître automatiquement. Si vous manquez d'espace disque, c'est votre réponse et vous avez besoin d'un disque plus gros.
la source
Express Edition 2014 a une limite de 10 Go par base de données. Si la croissance automatique d'une base de données atteint ce point, SQL Server génère le message d'erreur (obscur?), Sans mentionner la limite de licence. Il peut y avoir beaucoup d'espace disque mais vous voyez toujours ce message.
Solution si la conception le permet: utiliser plusieurs bases de données sous cette licence.
la source
Les bases de données manquent souvent d'espace lorsqu'elles sont en mode de récupération complète. Si vous n'effectuez pas de transactions et que les sauvegardes manuelles sont suffisantes, vous pouvez changer le mode de récupération en simple.
Vous devrez peut-être également récupérer de l'espace à partir du fichier journal. . . il peut être vidé mais utilise toujours de l'espace.
Cependant, vous feriez mieux de poser cette question aux administrateurs de base de données qui peuvent proposer plus de solutions.
la source
D'après mon expérience, ce message se produit lorsque le fichier principal (.mdf) n'a pas d'espace pour enregistrer les métadonnées de la base de données. Ce fichier comprend les tables système et ils y enregistrent uniquement leurs données.
Faites de l'espace dans le fichier et les commandes fonctionnent à nouveau. C'est tout, profitez-en
la source