Comment puis-je obtenir la taille en octets d'une table renvoyée par une requête SQL dans les SSM?Comment puis-je obtenir la taille en octets d'une table renvoyée par une requête SQL?
Répondre
Vous cherchez la taille de la table , ou la taille d'une rangée dans la table? Ce dernier n'est disponible que si toutes vos colonnes sont de taille fixe, c.-à-d. Nchar et non nvarchar etc.
Avec les colonnes de taille variable, vous pouvez utiliser la longueur maximale de chaque colonne, et les additionner pour obtenir une ligne maximale. taille, mais cela ne reflétera pas exactement la taille réelle des rangées.
select sum(max_length)
from sys.columns
where object_id = object_id('MyTable')
Vous pouvez également créer une requête qui retourne DATALENGTH pour chaque colonne dans une ligne particulière pour obtenir la taille totale de seulement cette ligne.
... ou vous pouvez utiliser 'sys.dm_db_index_physical_stats' pour obtenir des valeurs beaucoup plus précises pour ces métriques: http://msdn.microsoft.com/en-us/library/ms188917.aspx –
Merci @Remus, c'est un nouveau un pour moi. – ProfK
@RemusRusanu - Oui, mais est-ce que cela peut me donner la taille maximale (en octets) d'une colonne ou d'une ligne d'une table? Si oui, quelle serait la requête? –
Les requêtes SQL ne renvoient pas de tables, elles renvoient des résultats. Il n'y a pas d'API pour déterminer la taille d'un résultat car les résultats ont la sémantique en streaming, vous commencez à lire le résultat jusqu'à la fin et vous ne pouvez pas connaître la taille initiale. Envoyer la taille d'avance nécessiterait que le serveur obtienne d'abord le résultat, le stocke quelque part, détermine sa taille (nombre de lignes), puis envoie la taille suivie du résultat. Évidemment, c'est inefficace et complètement indésirable. Il est préférable de commencer à diffuser le résultat dès que disponible sans devoir le stocker de façon intermédiaire.
Peut-être cherchez-vous autre chose?
La taille d'une table dans la base de données peut toujours être déterminée à partir de son nombre de pages, voir sys.allocation_units
. La procédure d'assistance sp_spaceused
peut lire et formater cette information pour vous.
+1 pour "les requêtes ne retournent pas les tables, elles retournent les résultats" – ProfK
+1 pour la bonne explication et droit au but. – yrushka
Je pensais estimer la taille MAXIMALE d'une ligne, puis obtenir seulement le nombre() des lignes attendues. Ensuite, multipliez ces deux nombres pour obtenir une estimation de l'ensemble de résultats. Je ne sais pas si c'est la bonne façon de s'y prendre. Je suis coincé dans la première étape. Pouvez-vous m'aider - https://stackoverflow.com/questions/22518384/how-do-i-get-the-maximum-memory-consumed-by-all-data-types-in-sql-server Merci. –
En SSMS seulement, vous pouvez « inclure les statistiques du client » de l'un des menus qui donne certains informations
Dans le cas contraire, selon la réponse de Remus
- 1. Aucune table renvoyée par une requête SQL. Comment cela pourrait-il arriver?
- 2. Comment obtenir une taille exacte d'un GtkTextBuffer en octets?
- 3. Liste int renvoyée par requête LINQ
- 4. Comment obtenir la taille d'une image en octets avec Delphi?
- 5. Taille de la table SQL Azure
- 6. Total de la somme renvoyée par la requête
- 7. ajouter un élément de tableau à la ligne renvoyée par la requête sql
- 8. Comment déterminer la taille en octets d'un ensemble de résultats de LINQ à SQL
- 9. CFReadStreamRef et la taille des octets disponibles
- 10. comment stocker une valeur renvoyée à partir d'une requête sql dans une variable dans la programmation par lots?
- 11. Comment obtenir la taille de la ressource image en octets avec PHP et GD?
- 12. Incompatibilité de taille d'objet renvoyée par sos.dll et taille du processus en mémoire
- 13. Taille de table SQL et performances de requête
- 14. Chaîne tronquée Linq to sql renvoyée par la procédure stockée
- 15. Transposer une table par requête de sélection
- 16. Obtenir la longueur en octets d'une chaîne
- 17. Comment écrire une requête SQL pour la
- 18. requête partie d'un champ binaire de la table sql
- 19. comment trouver la taille de la table dans SQL?
- 20. Comment déterminer si une taille de colonne est en octets ou caractères à partir des métadonnées de la colonne?
- 21. Question concernant la valeur renvoyée par WebAuthenticationDetails.getRemoteAddress()
- 22. Meilleure façon de stocker une taille de fichier en octets?
- 23. NHibernate: Obtenir l'objet par requête SQL
- 24. C# Obtention de la taille des données renvoyées par et requête SQL
- 25. mise en requête de table SQL
- 26. Comment obtenir les contraintes sur une table
- 27. Comment faire une requête SQL pour obtenir une plage spécifique de lignes à partir d'une table
- 28. La requête est renvoyée en tant que booléen?
- 29. Comment obtenir une taille de tableau (et la plus grande) avec une instruction SQL?
- 30. Quelle est la taille d'une signature RSA en octets?
Retourné à quoi? Un code d'application, ou SSMS, ou autre chose? –
SSMS est ce que j'utilise. – Matt