STV_BLOCKLIST - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

STV_BLOCKLIST

STV_BLOCKLIST enthält die Anzahl der 1 MB-Festplattenblöcke, die von jedem Slice, jeder Tabelle oder Spalte in einer Datenbank verwendet werden.

Verwenden Sie aggregierte Abfragen mit STV_BLOCKLIST, wie die folgenden Beispiele zeigen, um die Anzahl der 1 MB-Festplattenblöcke zu bestimmen, die pro Datenbank, Tabelle, Slice oder Spalte zugewiesen sind. Sie können auch STV_PARTITIONS verwenden, um zusammenfassende Informationen zur Festplattennutzung anzuzeigen.

STV_BLOCKLIST ist nur für Superuser sichtbar. Weitere Informationen finden Sie unter Sichtbarkeit der Daten in Systemtabellen und Ansichten.

Tabellenspalten

Spaltenname Datentyp Beschreibung
slice integer Knoten-Slice.
col integer Null-basierter Index für die Spalte. Jeder Tabelle, die Sie erstellen, werden diese drei verborgenen Spalten angehängt: INSERT_XID, DELETE_XID, und ROW_ID (OID). Eine Tabelle mit drei vom Benutzer definierten Spalten hat tatsächlich sechs Spalten, und die benutzerdefinierten Spalten haben die interne Nummerierung 0, 1 und 2. Die Spalten INSERT_XID, DELETE_XID, und ROW_ID haben in diesem Beispiel die Nummern 3, 4 und 5.
tbl integer Tabellen-ID für die Datenbanktabelle.
blocknum integer ID für den Datenblock.
num_values integer Anzahl der enthaltenen Werte für den Block.
extended_limits integer Zur internen Verwendung.
minvalue bigint Minimaler Datenwert des Blocks. Speichert die ersten acht Zeichen als 64-Bit-Ganzzahl für nicht-numerische Daten. Zum Scannen von Festplatten verwendet.
maxvalue bigint Maximaler Datenwert des Blocks. Speichert die ersten acht Zeichen als 64-Bit-Ganzzahl für nicht-numerische Daten. Zum Scannen von Festplatten verwendet.
sb_pos integer Interne Amazon-Redshift-Kennung für die Superblock-Position auf der Festplatte.
pinned integer Ob der Block im Rahmen des Pre-Load-Vorgangs im Speicher fixiert ist. 0 = false; 1 = true. Standard ist „false“.
on_disk integer Ob der Block automatisch auf der Festplatte gespeichert wird. 0 = false; 1 = true. Standard ist „false“.
modified integer Ob der Block modifiziert wurde. 0 = false; 1 = true. Standard ist „false“.
hdr_modified integer Ob der Block-Header modifiziert wurde. 0 = false; 1 = true. Standard ist „false“.
unsorted integer Ob der Block unsortiert ist. 0 = false; 1 = true. Der Standardwert ist „true“.
tombstone integer Zur internen Verwendung.
preferred_diskno integer Nummer der Festplatte, auf der sich der Block befinden sollte, sofern die Festplatte nicht ausgefallen ist. Sobald die Festplatte festgelegt ist, wird der Block wieder auf diese Festplatte übertragen.
temporary integer Ob der Block temporäre Daten enthält, etwa aus einer temporären Tabelle oder aus Abfragezwischenergebnissen. 0 = false; 1 = true. Standard ist „false“.
newblock integer Zeigt an, ob ein Block neu ist (true) oder noch nie einem Commit-Vorgang zu einer Festplatte unterzogen wurde (false). 0 = false; 1 = true.
num_readers integer Anzahl der Referenzen auf jedem Block.
flags integer Interne Amazon-Redshift-Flags für den Block-Header.

Beispielabfragen

STV_BLOCKLIST enthält eine Zeile pro zugewiesenem Festplattenblock, so dass eine Abfrage mit Auswahl aller Zeilen möglicherweise eine sehr große Zahl von Zeilen ausgibt. Wir empfehlen, nur aggregierte Abfragen mit STV_BLOCKLIST zu verwenden.

Die Ansicht SVV_DISKUSAGE bietet ähnliche Informationen in einem benutzerfreundlichen Format – das folgende Beispiel illustriert eine Verwendung der STV_BLOCKLIST-Tabelle.

Um die Anzahl der 1 MB-Blöcke zu bestimmen, die jede Spalte in der VENUE-Tabelle enthält, geben Sie die folgende Abfrage ein:

select col, count(*) from stv_blocklist, stv_tbl_perm where stv_blocklist.tbl = stv_tbl_perm.id and stv_blocklist.slice = stv_tbl_perm.slice and stv_tbl_perm.name = 'venue' group by col order by col;

Diese Abfrage gibt die Anzahl der jeder Spalte in der VENUE-Tabelle zugeordneten 1 MB-Blöcke zurück, vgl. die folgenden Beispieldaten:

col | count -----+------- 0 | 4 1 | 4 2 | 4 3 | 4 4 | 4 5 | 4 7 | 4 8 | 4 (8 rows)

Die folgende Abfrage zeigt, ob die Tabellendaten tatsächlich über alle Slices verteilt sind:

select trim(name) as table, stv_blocklist.slice, stv_tbl_perm.rows from stv_blocklist,stv_tbl_perm where stv_blocklist.tbl=stv_tbl_perm.id and stv_tbl_perm.slice=stv_blocklist.slice and stv_blocklist.id > 10000 and name not like '%#m%' and name not like 'systable%' group by name, stv_blocklist.slice, stv_tbl_perm.rows order by 3 desc;

Diese Abfrage erstellt die folgende Beispielausgabe, die die gleichmäßige Verteilung der Daten für die Tabelle mit den meisten Zeilen anzeigt:

table | slice | rows ----------+-------+------- listing | 13 | 10527 listing | 14 | 10526 listing | 8 | 10526 listing | 9 | 10526 listing | 7 | 10525 listing | 4 | 10525 listing | 17 | 10525 listing | 11 | 10525 listing | 5 | 10525 listing | 18 | 10525 listing | 12 | 10525 listing | 3 | 10525 listing | 10 | 10525 listing | 2 | 10524 listing | 15 | 10524 listing | 16 | 10524 listing | 6 | 10524 listing | 19 | 10524 listing | 1 | 10523 listing | 0 | 10521 ... (180 rows)

Die folgende Abfrage bestimmt, ob ein Tombstone-Block auf die Festplatte geschrieben wurde:

select slice, col, tbl, blocknum, newblock from stv_blocklist where tombstone > 0; slice | col | tbl | blocknum | newblock -------+-----+--------+----------+---------- 4 | 0 | 101285 | 0 | 1 4 | 2 | 101285 | 0 | 1 4 | 4 | 101285 | 1 | 1 5 | 2 | 101285 | 0 | 1 5 | 0 | 101285 | 0 | 1 5 | 1 | 101285 | 0 | 1 5 | 4 | 101285 | 1 | 1 ... (24 rows)