Je suis assez nouveau sur SQL Server 2012, je serais reconnaissant si quelqu'un pouvait aider. J'ai restauré une copie d'une énorme base de données vers SQL Server 2012 et j'ai essayé d'exécuter quelques requêtes simples contre lui.
J'essaie d'exécuter une requête SELECT sur une table de base de données de 136898115
lignes. Cette requête SELECT
n'a qu'une simple clause WHERE
. Chaque fois que j'exécute cette requête, elle échoue car le disque système (la partition sur laquelle Windows est installé - C:\
) manque d'espace (cette partition ne dispose que de 6 Go d'espace libre), et je ne comprends pas pourquoi. J'ai défini mon tempdb sur un autre lecteur, qui a plus de 14 téraoctets d'espace libre. Bien sûr, ma base de données se trouve également sur un autre lecteur.
Qu'est-ce qui fait que ma partition système manque d'espace? Est-ce le fichier d'échange?
Le cache des résultats de la requête SSMS sur le lecteur C: par défaut. Accédez à Tool\Options. Voir ci-joint. Changez-le en un autre volume avec plus de stockage et tout ira bien.
D'accord, je l'ai compris: Eric et j'avais raison tous les deux!
C:\Users\<UserName>\AppData\Local\Temp
dans mon cas ici). J'ai vérifié, et il ne semble pas y avoir de moyen évident de désactiver cette mise en cache.Les plats à emporter sont donc:
SELECT *
à partir d'une énorme table dans SSMS, sauf si l'ensemble de résultats peut tenir dans le dossier de profilJe viens de souffrir du même problème. Après avoir lu les réponses ci-dessus, j'ai trouvé ce qui suit.
Outils | Les options ne sont pas la réponse. Le mien était réglé sur le lecteur Y: mais j'ai regardé ma requête s'exécuter et l'espace sur le lecteur C: plongé de 2,9 Go à 5,04 Mo (avant de tuer la requête).
J'ai donc pensé que c'était probablement la mise en cache des résultats (car ils sont très grands avec chaque ligne renvoyée contenant un gros morceau de XML) dans le répertoire Temp, ce que Jon a dit, mais il n'était pas sûr de la façon dont vous changeriez cela.
Ce que j'ai fait pour changer où les fichiers temporaires sont écrits était d'ouvrir mes variables d'environnement et de modifier les variables utilisateur TEMP et TMP (qui étaient toutes deux définies sur C:\Temp) pour écrire dans Z:\Temp.
Je peux confirmer qu'après ce changement, j'ai vu la requête créer un très gros fichier dans mon répertoire Z:\Temp.