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 136898115
lignes de base de données . Cette SELECT
requête n'a qu'une simple WHERE
clause. 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 n'a que 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?
la source
Réponses:
Les résultats de la requête SSMS sont mis en cache par défaut sur le lecteur C :. Accédez à Tool \ Options. Voir ci-joint. Changez-le en un autre volume avec plus de stockage et tout ira bien.
la source
D'accord, je l'ai compris: Eric et moi avions 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 à moins que le jeu de résultats puisse tenir dans le dossier de profilla source
Je viens de subir le 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 retourné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 regardé la requête créer un très gros fichier dans mon répertoire Z: \ Temp.
la source