Le groupe de fichiers principal est complet SQL Server 2008

15

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?

wootscootinboogie
la source
2
Vous devez ajouter plus d'espace à la base de données ou supprimer les objets inutilisés. Quelle est ta question?
Gordon Linoff
@GordonLinoff lorsque la base de données a été créée, le groupe de fichiers a été conçu pour avoir une croissance illimitée, et pourtant je rencontre ce problème. J'espère trouver un moyen d'empêcher que cela ne se reproduise.
wootscootinboogie
1
Avez-vous plus d'espace disque physique disponible? Si tel est le cas, consultez les journaux d'erreurs SQL Server et voyez s'il existe des informations supplémentaires sur la raison de l'échec de la croissance automatique.
Kevin
Pourriez-vous s'il vous plaît confirmer que suffisamment d'espace disque est disponible? C'est la seule cause plausible, à l'exception de la croissance limitée des fichiers (ce que vous avez dit n'est pas le cas).
usr
1
Peut-être que vous atteignez la limite de taille db de l'édition sql express.
Bruno Martinez

Réponses:

17

Suivez ces étapes:

  1. Identifiez la quantité d'espace que vous souhaitez ajouter à l'allocation de stockage de base de données:
    1. Ouvrez l'explorateur Windows
    2. Cliquez avec le bouton droit sur le lecteur de disque sur lequel vos fichiers de base de données existent
    3. Sélectionnez les propriétés
    4. Vérifiez l'espace disque disponible et décidez de la quantité que vous souhaitez allouer à la base de données
      ( 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. )
  2. Mettez à jour l'allocation de stockage pour la base de données.
    1. Ouvrir SSMS
    2. Cliquez sur l'onglet "Affichage"
    3. Sélectionnez "Explorateur d'objets"
    4. Développez le dossier "Bases de données"
    5. Cliquez avec le bouton droit sur la base de données dans laquelle vous essayez d'insérer en bloc
    6. Sélectionnez "Propriétés"
    7. Cliquez sur l'option de liste "Fichiers" dans la zone "Sélectionner une page" à gauche de la fenêtre des propriétés
    8. Recherchez la ligne "Fichiers de base de données" avec le "Groupe de fichiers" comme "PRIMAIRE"
    9. Ajoutez le nombre de mégaoctets que vous souhaitez ajouter à l'allocation de base de données au nombre "Taille initiale (Mo)"
    10. Appuyez sur "OK"
      ( 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.

Eric J. Price
la source
1
Ne voulons-nous pas tous de plus gros DIsK? : P
Santa
12

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.

RickC
la source
1

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.

Gordon Linoff
la source
Ce n'est pas un problème d'échec de croissance des journaux. La croissance des données a échoué.
usr
@usr. . . Ils occupent probablement le même espace disque sous-jacent. Le problème est un manque d'espace disque.
Gordon Linoff
Il dit que l'espace disque est disponible. J'ai demandé explicitement parce que j'étais méfiant aussi.
usr
Combien d'espace disque est disponible / gratuit? Quelle est la taille actuelle de tous les fichiers du groupe de fichiers principal et quel est leur paramètre de croissance? Il est possible que l'incrément de croissance soit plus grand que l'espace libre disponible.
user9164
1

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

FcoJavier99
la source