

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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.

# Abfragen der Systemtabellen und Ansichten
<a name="t_querying_redshift_system_tables"></a>

Zusätzlich zu den von Ihnen erstellten Tabellen enthält Ihr Data Warehouse eine Reihe von Systemtabellen und Ansichten. Diese Tabellen und Ansichten enthalten Informationen zu Ihrer Installation sowie zu den verschiedenen Abfragen und Prozessen, die auf dem System ausgeführt werden. Sie können diese Systemtabellen und Ansichten abfragen, um Informationen zu Ihrer Datenbank zu erhalten. Weitere Informationen finden Sie in der [Referenz zu Systemtabellen und Ansichten](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_system-tables.html) im *Datenbankentwicklerhandbuch zu Amazon Redshift*. Die Beschreibung für jede Tabelle oder Ansicht gibt an, ob die Tabelle für alle Benutzer oder nur für Superuser sichtbar ist. Um nur für Superuser sichtbare Tabellen anzuzeigen, melden Sie sich als Superuser an. 

## Anzeigen einer Liste von Tabellennamen
<a name="t_querying_redshift_system_tables-view-a-list-of-table-names"></a>

Um eine Liste aller Tabellen in einem Schema anzuzeigen, können Sie die Systemkatalogtabelle PG\$1TABLE\$1DEF abfragen. Sie können zunächst die Einstellung für prüfen `search_path`.

```
SHOW search_path;
```

Das Ergebnis sollte in etwa wie folgt aussehen.

```
  search_path
---------------
 $user, public
```

Im folgenden Beispiel wird das`SALES`-Schema dem Suchpfad hinzugefügt und es werden alle Tabellen im `SALES`-Schema angezeigt.

```
set search_path to '$user', 'public', 'sales';
                
SHOW search_path;

      search_path       
------------------------
 "$user", public, sales


select * from pg_table_def where schemaname = 'sales';

 schemaname | tablename |  column  |          type          | encoding | distkey | sortkey | notnull 
------------+-----------+----------+------------------------+----------+---------+---------+---------
 sales      | demo      | personid | integer                | az64     | f       |       0 | f
 sales      | demo      | city     | character varying(255) | lzo      | f       |       0 | f
```

Im folgenden Beispiel wird eine Liste aller Tabellen mit dem Namen `DEMO` in allen Schemata der aktuellen Datenbank angezeigt.

```
set search_path to '$user', 'public', 'sales';
select * from pg_table_def where tablename = 'demo';

 schemaname | tablename |  column  |          type          | encoding | distkey | sortkey | notnull 
------------+-----------+----------+------------------------+----------+---------+---------+---------
 public     | demo      | personid | integer                | az64     | f       |       0 | f
 public     | demo      | city     | character varying(255) | lzo      | f       |       0 | f
 sales      | demo      | personid | integer                | az64     | f       |       0 | f
 sales      | demo      | city     | character varying(255) | lzo      | f       |       0 | f
```

Weitere Informationen finden Sie in der Tabelle [PG\$1TABLE\$1DEF](https://docs.aws.amazon.com/redshift/latest/dg/r_PG_TABLE_DEF.html).

Sie können auch Amazon Redshift Query Editor v2 verwenden, um alle Tabellen in einem angegebenen Schema anzuzeigen, indem Sie zuerst eine Datenbank auswählen, mit der Sie eine Verbindung herstellen möchten.

## Anzeigen von Benutzern
<a name="t_querying_redshift_system_tables-view-database-users"></a>

Sie können den Katalog PG\$1USER abfragen, um eine Liste aller Benutzer zusammen mit Benutzer-ID (USESYSID) und Benutzerberechtigungen anzuzeigen. 

```
SELECT * FROM pg_user;

  usename   | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
------------+----------+-------------+----------+-----------+----------+----------+-----------
 rdsdb      |        1 | true        | true     | true      | ******** | infinity |
 awsuser    |      100 | true        | true     | false     | ******** |          |
 guest      |      104 | true        | false    | false     | ******** |          |
```

Der Benutzername `rdsdb` wird intern von Amazon Redshift für Routine-Verwaltungs- und Wartungsaufgaben verwendet. Sie können Ihre Abfrage so filtern, dass nur benutzerdefinierte Benutzernamen angezeigt werden, indem Sie Ihrer SELECT-Anweisung `where usesysid > 1` hinzufügen.

```
SELECT * FROM pg_user WHERE usesysid > 1;

  usename   | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
------------+----------+-------------+----------+-----------+----------+----------+-----------
 awsuser    |      100 | true        | true     | false     | ******** |          |
 guest      |      104 | true        | false    | false     | ******** |          |
```

## Anzeigen aktueller Abfragen
<a name="t_querying_redshift_system_tables-view-recent-queries"></a>

Im vorherigen Beispiel ist die Benutzer-ID (user\$1id) für `adminuser` 100. Um die vier letzten von `adminuser` ausgeführten Abfragen aufzulisten, können Sie die Ansicht SYS\$1QUERY\$1HISTORY abfragen. 

Anhand dieser Ansicht können Sie die Abfrage-ID (query\$1id) oder die Prozess-ID (session\$1id) für eine kürzlich ausgeführte Abfrage finden. Sie können diese Ansicht auch verwenden, um zu überprüfen, wie lange eine Abfrage in Anspruch nahm. SYS\$1QUERY\$1HISTORY enthält die ersten 4.000 Zeichen der Abfragezeichenfolge (query\$1text), damit Sie eine bestimmte Abfrage besser finden können. Verwenden Sie die LIMIT-Klausel mit Ihrer SELECT-Anweisung, um die Ergebnisse zu begrenzen. 

```
SELECT query_id, session_id, elapsed_time, query_text 
FROM sys_query_history
WHERE user_id = 100
ORDER BY start_time desc
LIMIT 4;
```

Das Ergebnis sieht in etwa wie folgt aus. 

```
 query_id |  session_id  |  elapsed_time |   query_text
----------+--------------+---------------+----------------------------------------------------------------
 892      |    21046     |       55868   | SELECT query, pid, elapsed, substring from ...
 620      |    17635     |     1296265   | SELECT query, pid, elapsed, substring from ...
 610      |    17607     |       82555   | SELECT * from DEMO; 
 596      |    16762     |      226372   | INSERT INTO DEMO VALUES (100);
```

## Feststellen der Sitzungs-ID einer laufenden Abfrage
<a name="determine_pid"></a>

Sie müssen möglicherweise die zu einer Abfrage gehörende Sitzungs-ID (Prozess-ID) angeben, um Systemtabelleninformationen zu einer Abfrage abzurufen. Möglicherweise müssen Sie aber auch die Sitzungs-ID für eine Abfrage ermitteln, die noch ausgeführt wird. So brauchen Sie etwa die Sitzungs-ID, wenn Sie eine Abfrage abbrechen müssen, die auf einem bereitgestellten Cluster zu viel Zeit in Anspruch nimmt. Sie können die STV\$1RECENTS-Systemtabelle abfragen, um eine Liste der Sitzungen IDs für laufende Abfragen zusammen mit der entsprechenden Abfragezeichenfolge zu erhalten. Wenn Ihre Abfrage mehrere Sitzungs-IDs ausgibt, können Sie anhand des Abfragetextes bestimmen, welche Sitzungs-ID Sie benötigen.

Um die Sitzungs-ID einer laufenden Abfrage zu bestimmen, führen Sie die folgende SELECT-Anweisung aus.

```
SELECT session_id, user_id, start_time, query_text
FROM sys_query_history
WHERE status='running';
```