Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Amazon Redshift crée la vue système SVV_DISKUSAGE en joignant les tables STV_TBL_PERM et STV_BLOCKLIST. La vue SVV_DISKUSAGE contient des informations sur l’allocation des données pour les tables d’une base de données.
Utilisez les requêtes d’agrégation avec SVV_DISKUSAGE, comme dans les exemples suivants, afin de déterminer le nombre de blocs de disque alloués par base de données, table, coupe ou colonne. Chaque bloc de données utilise 1 Mo. Vous pouvez également utiliser STV_PARTITIONS afin d’afficher des informations de synthèse sur l’utilisation du disque.
SVV_DISKUSAGE n’est visible que par les super-utilisateurs. Pour de plus amples informations, veuillez consulter Visibilité des données dans les tables et vues système.
Note
Cette vue n’est disponible que lors de l’interrogation des clusters alloués.
Colonnes de la table
Nom de la colonne | Type de données | Description |
---|---|---|
db_id | entier | ID de base de données. |
name | character(72) | Nom de la table. |
slice | entier | Tranche de données allouée à la table. |
col | entier | Index de base zéro de la colonne. Chaque table que vous créez possède trois colonnes masquées qui lui sont ajoutées : INSERT_XID, DELETE_XID et ROW_ID (OID). Une table avec 3 colonnes définies par l’utilisateur contient 6 colonnes réelles et les colonnes définies par l’utilisateur sont numérotées en interne 0, 1 et 2. Les colonnes INSERT_XID, DELETE_XID et ROW_ID sont numérotés respectivement 3, 4 et 5 dans cet exemple. |
tbl | entier | ID de table. |
blocknum | entier | ID du bloc de données. |
num_values | entier | Nombre de valeurs contenues dans le bloc. |
minvalue | bigint | Valeur minimale contenue dans le bloc. |
maxvalue | bigint | Valeur maximale contenue dans le bloc. |
sb_pos | entier | Identificateur interne de la position du super bloc sur le disque. |
pinned | entier | Indique si le bloc est mis en mémoire dans le cadre du préchargement ou non. 0 = faux ; 1 = vrai. La valeur par défaut est false. |
on_disk | entier | Indique si le bloc est automatiquement stocké sur le disque ou non. 0 = faux ; 1 = vrai. La valeur par défaut est false. |
modifié | entier | Indique si le bloc a été modifié ou non. 0 = faux ; 1 = vrai. La valeur par défaut est false. |
hdr_modified | entier | Indique si l’en-tête de bloc a été modifié ou non. 0 = faux ; 1 = vrai. La valeur par défaut est false. |
unsorted | entier | Indique si un bloc est trié ou non. 0 = faux ; 1 = vrai. La valeur par défaut est true. |
tombstone | entier | Pour utilisation interne. |
preferred_diskno | entier | Numéro de disque sur lequel le bloc doit être, sauf si le disque a échoué. Une fois que le disque a été corrigé, le bloc renvoie sur ce disque. |
temporary | entier | Indique si le bloc contient ou non des données temporaires, comme une table temporaire ou les résultats intermédiaires des requêtes. 0 = faux ; 1 = vrai. La valeur par défaut est false. |
newblock | entier | Indique si un bloc est nouveau (true) ou n’a jamais été validé sur le disque (false). 0 = faux ; 1 = vrai. |
Exemples de requêtes
SVV_DISKUSAGE contenant une ligne par bloc de disque alloué, une requête qui sélectionne toutes les lignes renvoie potentiellement un très grand nombre de lignes. Nous recommandons d’utiliser uniquement les requêtes d’agrégation avec SVV_DISKUSAGE.
renvoiez le plus grand nombre de blocs jamais alloués à la colonne 6 de la table USERS (colonne EMAIL) :
select db_id, trim(name) as tablename, max(blocknum)
from svv_diskusage
where name='users' and col=6
group by db_id, name;
db_id | tablename | max
--------+-----------+-----
175857 | users | 2
(1 row)
La requête suivante renvoie des résultats semblables pour toutes les colonnes de la grande table à 10 colonnes appelée SALESNEW. (Les trois dernières lignes des colonnes 10 à 12 correspondent aux colonnes de métadonnées masquées.)
select db_id, trim(name) as tablename, col, tbl, max(blocknum)
from svv_diskusage
where name='salesnew'
group by db_id, name, col, tbl
order by db_id, name, col, tbl;
db_id | tablename | col | tbl | max
--------+------------+-----+--------+-----
175857 | salesnew | 0 | 187605 | 154
175857 | salesnew | 1 | 187605 | 154
175857 | salesnew | 2 | 187605 | 154
175857 | salesnew | 3 | 187605 | 154
175857 | salesnew | 4 | 187605 | 154
175857 | salesnew | 5 | 187605 | 79
175857 | salesnew | 6 | 187605 | 79
175857 | salesnew | 7 | 187605 | 302
175857 | salesnew | 8 | 187605 | 302
175857 | salesnew | 9 | 187605 | 302
175857 | salesnew | 10 | 187605 | 3
175857 | salesnew | 11 | 187605 | 2
175857 | salesnew | 12 | 187605 | 296
(13 rows)