Il filegroup primario è SQL Server 2008 completo


15

Ho una tabella di grandi dimensioni (~ 50 milioni di righe) Sto cercando di inserire in blocco in SQL Server e ottengo l'errore:

Impossibile allocare spazio per l'oggetto "myDB" nel database "I 3 Stroke" perché il filegroup "PRIMARY" è pieno. Crea spazio su disco eliminando i file non necessari, rilasciando oggetti nel filegroup, aggiungendo altri file al filegroup o impostando la crescita automatica per i file esistenti nel filegroup.

C'è un'altra tabella nel database con circa 25 milioni di righe. Questo database verrà utilizzato solo su una singola macchina e sarà progettato per estrarre i dati già esistenti e in nessun caso crescerà mai oltre le dimensioni attuali.

Per una situazione come questa, qual è il modo migliore per affrontarla in modo che SQL Server non si lamenti? La soluzione importerà che questo DB non sarà esposto a più utenti?


2
È necessario aggiungere più spazio al database o rimuovere oggetti inutilizzati. Qual è la tua domanda?
Gordon Linoff,

@GordonLinoff quando il database è stato creato, il filegroup è stato progettato per avere una crescita illimitata, eppure sto riscontrando questo problema. Spero di trovare un modo per impedire che ciò accada di nuovo.
wootscootinboogie,

1
Hai più spazio fisico su disco disponibile? In tal caso, controllare i log degli errori di SQL Server e vedere se sono disponibili ulteriori informazioni sul motivo per cui la crescita automatica non è riuscita.
Kevin,

Confermereste che è disponibile spazio su disco sufficiente? Questa è l'unica causa plausibile, ad eccezione della crescita limitata dei file (che hai detto non è il caso).
usr

1
Forse stai raggiungendo il limite di dimensioni db dell'edizione sql express.
Bruno Martinez,

Risposte:


17

Segui questi passi:

  1. Identificare lo spazio che si desidera aggiungere all'allocazione di archiviazione del database:
    1. Apri Windows Explorer
    2. Fare clic con il tasto destro del mouse sull'unità disco su cui sono presenti i file del database
    3. Seleziona proprietà
    4. Controlla quanto spazio su disco è disponibile e decidi quanto di ciò vuoi allocare per il database
      ( Suggerimento: lascia libero almeno il 20% di spazio su disco se i file del database sono ospitati sullo stesso disco del tuo sistema operativo { Sottotitolo : Don fai questo! Ricostruisci / migra i tuoi dati sul proprio disco; ti stai fregando su I / O.} e lasci almeno l'8% per un disco di dati puro; questi numeri sono stime di ciò che penso i suggerimenti percentuali effettivi sono. )
  2. Aggiorna l'allocazione di archiviazione per il database.
    1. Apri SSMS
    2. Fai clic sulla scheda "Visualizza"
    3. Seleziona "Esplora oggetti"
    4. Espandere la cartella "Database"
    5. Fare clic con il tasto destro del mouse sul database in cui si tenta di inserire in blocco
    6. Seleziona "Proprietà"
    7. Fai clic sull'opzione "File" nell'elenco nell'area "Seleziona una pagina" a sinistra della finestra delle proprietà
    8. Trova la riga "File database" con "Filegroup" come "PRIMARY"
    9. Aggiungi qualsiasi numero di megabyte che desideri aggiungere all'allocazione del database al numero "Dimensioni iniziali (MB)"
    10. Premi "OK"
      ( potresti anche considerare i tuoi valori di "Autogrowth" mentre sei qui. )

Volete dare al vostro database tutta l'allocazione di memoria che potete permettervi. Se esaurisce lo spazio, riceverai questo errore senza crescita automatica attivata e se la crescita automatica è attiva, subirai un calo delle prestazioni ogni volta che deve crescere automaticamente. Se sei semplicemente a corto di spazio su disco, questa è la tua risposta e hai bisogno di un disco più grande.


1
Non vogliamo tutti DIK più grandi? : P
Santa

12

Express Edition 2014 ha un limite di 10 GB per database. Se la crescita automatica di un database raggiunge tale punto, SQL Server genera il messaggio di errore (oscuro?), Senza menzionare il limite di licenza. Potrebbe esserci molto spazio su disco ma viene ancora visualizzato questo messaggio.

Rimedio se la progettazione lo consente: utilizzare più database sotto questa licenza.


1

I database spesso esauriscono lo spazio quando sono in modalità di ripristino completo. Se non si eseguono transazioni e i backup manuali sono sufficienti, è possibile modificare la modalità di ripristino in semplice.

Potrebbe inoltre essere necessario recuperare spazio dal file di registro. . . può essere svuotato ma usa ancora lo spazio.

Tuttavia, è meglio porre questa domanda ai DBA che potrebbero offrire più soluzioni.


Questo non è un problema di crescita dei tronchi fallita. Crescita dei dati fallita.
usr

@usr. . . Probabilmente occupano lo stesso spazio su disco sottostante. Il problema è la mancanza di spazio su disco.
Gordon Linoff,

Dice che lo spazio su disco è disponibile. Ho chiesto esplicitamente perché anche io ero sospettoso.
usr

Quanto spazio su disco è disponibile / libero? Qual è la dimensione corrente di tutti i file nel gruppo di file primario e qual è la loro impostazione di crescita? È possibile che l'incremento di crescita sia maggiore dello spazio libero disponibile.
user9164

1

Nella mia esperienza, questo messaggio appare quando il file primario (.mdf) non ha spazio per salvare i metadati del database. Questo file include le tabelle di sistema e in esse salvano solo i loro dati.

Crea un po 'di spazio nel file e i comandi funzionano di nuovo. Questo è tutto, divertiti

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.