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_TBL_PERM
Die Tabelle STV_TBL_PERM enthält Informationen zu den permanenten Tabellen in Amazon Redshift, einschließlich der temporären Tabellen, die von einem Benutzer für die aktuelle Sitzung erstellt wurden. STV_TBL_PERM enthält Informationen für alle Tabellen in allen Datenbanken.
Diese Tabelle unterscheidet sich von STV_TBL_TRANS, die Informationen über temporäre Datenbanktabellen enthält, die das System bei der Verarbeitung von Abfragen erstellt.
STV_TBL_PERM 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, der der Tabelle zugewiesen ist. |
id | integer | Tabellen-ID. |
Name | character(72) | Tabellenname. |
rows | bigint | Anzahl der Datenzeilen in dem Slice. |
sorted_rows | bigint | Anzahl der Zeilen in dem Slice, die bereits auf der Festplatte sortiert sind. Wenn diese Zahl nicht der ROWS-Zahl entspricht, bereinigen Sie die Tabelle, um die Zeilen erneut anzuordnen. |
temp | integer | Ob es sich bei der Tabelle um eine temporäre Tabelle handelt. 0 = false; 1 = true. |
db_id | integer | ID der Datenbank, in der die Tabelle erstellt wurde. |
insert_pristine | integer | Zur internen Verwendung. |
delete_pristine | integer | Zur internen Verwendung. |
backup | integer | Wert, der anzeigt, ob die Tabelle in Cluster-Snapshots einbezogen ist. 0 = no; 1 = yes. Für weitere Informationen vgl. den Parameter BACKUP für den Befehl CREATE TABLE. |
dist_style | Ganzzahl | Verteilungsstil der Tabelle, zu der der Slice gehört. Informationen zu den Werten finden Sie unter Anzeigen von Verteilungsstilen. Informationen zu Verteilungsstilen finden Sie unter Verteilungsstile. |
block_count | Ganzzahl | Anzahl der vom Slice verwendeten Blöcke. Der Wert ist -1, wenn die Anzahl der Blöcke nicht berechnet werden kann. |
Beispielabfragen
Die folgende Abfrage gibt eine Liste unterschiedlicher Tabellen IDs und Namen zurück:
select distinct id, name
from stv_tbl_perm order by name;
id | name
--------+-------------------------
100571 | category
100575 | date
100580 | event
100596 | listing
100003 | padb_config_harvest
100612 | sales
...
Andere Systemtabellen verwenden Tabellen. IDs Daher kann es sehr nützlich sein, zu wissen, welche Tabellen-ID einer bestimmten Tabelle entspricht. In diesem Beispiel wird SELECT DISTINCT verwendet, um die Duplikate zu entfernen (die Tabellen sind über mehrere Slices verteilt).
Um die Anzahl der 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;
col | count
-----+-------
0 | 8
1 | 8
2 | 8
3 | 8
4 | 8
5 | 8
6 | 8
7 | 8
(8 rows)
Nutzungshinweise
Die Spalte ROWS enthält die Anzahl der gelöschten Zeilen, die nicht bereinigt wurden (oder die bereinigt wurden, jedoch mit der Option SORT ONLY). Daher kann es sein, dass der Wert SUM der Spalte ROWS in der Tabelle STV_TBL_PERM nicht dem COUNT(*)-Ergebnis entspricht, wenn Sie eine bestimmte Tabelle direkt abfragen. Zum Beispiel: Wenn zwei Zeilen von VENUE gelöscht werden, ist das COUNT(*)-Ergebnis 200, das SUM(ROWS)-Ergebnis ist aber nach wie vor 202:
delete from venue
where venueid in (1,2);
select count(*) from venue;
count
-------
200
(1 row)
select trim(name) tablename, sum(rows)
from stv_tbl_perm where name='venue' group by name;
tablename | sum
-----------+-----
venue | 202
(1 row)
Um die Daten in STV_TBL_PERM zu synchronisieren, führen Sie eine vollständige Bereinigung in der VENUE-Tabelle durch.
vacuum venue;
select trim(name) tablename, sum(rows)
from stv_tbl_perm
where name='venue'
group by name;
tablename | sum
-----------+-----
venue | 200
(1 row)