

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.

# Analysieren von Sperrbäumen für Amazon Aurora PostgreSQL und Amazon RDS for PostgreSQL mit Database Insights CloudWatch
<a name="Database-Insights-Lock-Analysis"></a>

Um Leistungsprobleme zu beheben, die durch Sperren verursacht werden, können Sie Sperrbäume für Amazon Aurora PostgreSQL- und Amazon RDS for PostgreSQL PostgreSQL-Datenbanken mit CloudWatch Database Insights wie folgt analysieren.
+ Dropdown **Aufgeteilt nach**: Wählen Sie im Diagramm **Datenbanklast** die Dimensionen **Blockierendes Objekt**, **Blockierende Sitzung** oder **Blockierendes SQL** aus, um zu sehen, wie individuelle Top-Blocker im Laufe der Zeit zur DB-Last beitragen. Mit dem Diagramm „DB-Last“ können Sie analysieren, ob die Top-Blocker konstant sind oder sich häufig ändern. Anschließend können Sie Blocker beheben.  
![\[Die Tabelle Top-SQL, bei der im Dropdown-Menü Aufgeteilt nach die Option „Blockierende Sitzung“ ausgewählt ist\]](http://docs.aws.amazon.com/de_de/AmazonCloudWatch/latest/monitoring/images/DBInsights_TopSQLBlocking.png)
+ Registerkarte **Sperranalyse**: Wählen Sie **DB-Auslastungsanalyse** und anschließend die Registerkarte **Sperranalyse** aus, um Informationen zu Sperrkonflikten in Ihrer Datenbank anzuzeigen.  
![\[Die Tabelle Sperrstruktur im Dashboard „Datenbanklast“\]](http://docs.aws.amazon.com/de_de/AmazonCloudWatch/latest/monitoring/images/DBInsights_LoadLockAnalysis.png)

**Anmerkung**  
CloudWatch Database Insights unterstützt die Sperranalyse für alle Aurora PostgreSQL-Versionen. Um Sperrstrukturen zu analysieren, muss der erweiterte Modus von Database Insights aktiviert sein. Informationen zum Aktivieren des erweiterten Modus finden Sie unter [Aktivieren des erweiterten Modus von Database Insights für Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_DatabaseInsights.TurningOnAdvanced.html) und [Aktivieren des erweiterten Modus von Database Insights für Amazon Relational Database Service](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.TurningOnAdvanced.html).

Die Registerkarte „Sperranalyse“ enthält Informationen zu Sperrkonflikten in Ihrer Datenbank. Die Sperrstruktur-Visualisierung zeigt die Beziehungen und Abhängigkeiten zwischen Sperranforderungen aus verschiedenen Sitzungen.

Database Insights erfasst alle 15 Sekunden Snapshots. Snapshots zeigen die Sperrdaten für Ihre Datenbank zu einem bestimmten Zeitpunkt.

**Anmerkung**  
Wenn eine hohe Sperre CloudWatch erkannt CloudWatch wird, wird das Banner **Hohe Sperre erkannt** auf der Registerkarte **Sperranalyse** angezeigt. CloudWatch erkennt eine hohe Sperre, wenn CloudWatch für jedes 15-Sekunden-Intervall für 15 aufeinanderfolgende Minuten ein Snapshot der Sperre erstellt wird.

Jeder Knoten in der Struktur steht für eine bestimmte Sitzung. Der übergeordnete Knoten ist eine Sitzung, die die untergeordneten Knoten blockiert.

Führen Sie die folgenden Schritte aus, um Sperrstrukturen zu analysieren.

**Analysieren Sie Sperrstrukturen wie folgt:**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CloudWatch Konsole unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Wählen Sie **Insights** aus.

1. Wählen Sie **Database Insights** aus.

1. Wählen Sie die Ansicht **Datenbank-Instance** aus.

1. Wählen Sie eine DB-Instance aus.

1. Wählen Sie die Registerkarte **DB-Auslastungsanalyse** aus.

1. Wählen Sie die Registerkarte **Sperranalyse** aus.

   Um Sperrdaten für eine DB-Instance anzuzeigen, wählen Sie einen Zeitraum von höchstens 1 Tag aus.

1. Wählen Sie ein Snapshot-Fenster aus. Standardmäßig wählt Database Insights das Snapshot-Fenster mit den meisten blockierten Sitzungen aus.  
![\[Tabelle „Sperranalyse“\]](http://docs.aws.amazon.com/de_de/AmazonCloudWatch/latest/monitoring/images/dbi_lock-analysis.png)

1. Um Sperrdaten für einen Snapshot anzuzeigen, wählen Sie den Zeitpunkt aus, zu dem Database Insights den Snapshot erfasst hat.

1. Zum Erweitern einer Sperrstruktur wählen Sie den Pfeil neben der Sitzungs-ID aus.  
![\[Erweiterte Sperrstruktur\]](http://docs.aws.amazon.com/de_de/AmazonCloudWatch/latest/monitoring/images/dbi_lock-analysis-expand.png)

## Sperren von Snapshot-Daten
<a name="Database-Insights-Lock-Analysis-snapshot-data"></a>

Database Insights liefert für jede Sperranforderung die folgenden Informationen. Um Spalten anzuzeigen, die standardmäßig nicht aktiviert sind, wählen Sie das **Einstellungssymbol** für die Tabelle **Sperrstrukturen** aus und aktivieren Sie andere Spalten.


| Name der Spalte | Definition  | Standardspalte | Hinweise | 
| --- | --- | --- | --- | 
|  `session_id`  | Die eindeutige Sitzungskennung. |  Ja  | Die `session_id` wird von `HEX(pg_stat_activity.backend_start).HEX(pg_locks.pid)` abgeleitet. | 
|  `pid`  | Die PID dieses Backends. |  Ja  | `pg_locks.pid` | 
|  `blocked_sessions_count`  | Die Anzahl der durch diese Sperre blockierten Sitzungen. |  Ja  | Der `blocked_sessions_count` wird von der Anzahl der durch diese Sperre IDs blockierten Sitzungen abgeleitet. | 
|  `last_query_executed`  | Die letzte von dieser Sitzung ausgeführte Abfrage. Bei Blockern ist es möglicherweise nicht die Abfrage, die die blockierende Sperre enthält. |  Ja  | `pg_stat_activity.query` | 
|  `wait_event`  | Der Name des Warteereignisses, wenn das Backend gerade wartet, andernfalls ist der Wert NULL. |  Ja  | `pg_stat_activity.wait_event` | 
|  `blocking_time_(In Seconds)`  | Die Zeit (in Sekunden) seit dem Start dieser Sperre. |  Ja  | Die `blocking_time_(In Seconds)` wird von der Startzeit der wartenden Transaktion (`pg_locks.waitstart`) für den ersten Waiter abgeleitet. | 
|  `blocking_mode`  | Der Sperrmodus, der von der blockierenden Sitzung aufrechterhalten wurde. |  Nein  | `pg_locks.mode` | 
|  `waiting_mode`  | Der von der wartenden Sitzung angeforderte Sperrmodus. |  Nein  | `pg_locks.mode` | 
|  `application`  | Der Name der Anwendung, die mit diesem Backend verbunden ist. |  Nein  | `pg_stat_activity.application_name` | 
|  `blocking_txn_start_time`  | Die Startzeit der blockierenden Transaktion oder Null, wenn keine Transaktion aktiv ist. |  Nein  | `pg_stat_activity.xact_start` | 
|  `waiting_start_time`  | Die Zeit, zu der eine wartende Benutzersitzung begann, auf diese Sperre zu warten, oder Null, wenn die Sperre aufrechterhalten wurde. |  Nein  | `pg_locks.waitstart` | 
|  `session_start_time`  | Die Startzeit einer Benutzersitzung. |  Nein  | `pg_stat_activity.backend_start` | 
|  `state`  | Der Status eines Backends.  |  Nein  | `pg_stat_activity.state` | 
|  `wait_event_type`  | Der Typ des Warteereignisses, auf das diese Sitzung wartet. |  Nein  | `pg_stat_activity.wait_event_type` | 
|  `last_query_exec_time`  | Die Startzeit der letzten Abfrage. |  Nein  | `pg_stat_activity.query_start` | 
|  `user`  | Der Name des Benutzers, der bei diesem Backend angemeldet ist. |  Nein  | `pg_stat_activity.usename` | 
|  `host`  | Der Hostname des verbundenen Clients gemäß einer umgekehrten DNS-Suche von `client_addr`. Dieses Feld ist nur für IP-Verbindungen ungleich Null und nur, wenn [log\$1hostname](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-HOSTNAME) aktiviert ist. |  Nein  | `pg_stat_activity.client_hostname` | 
|  `port`  | Die TCP-Portnummer, die der Client für die Kommunikation mit diesem Backend verwendet, oder `-1`, wenn ein Unix-Socket verwendet wird. Wenn dieses Feld Null ist, handelt es sich hierbei um einen internen Serverprozess. |  Nein  | `pg_stat_activity.client_port` | 
|  `client_address`  | Die IP-Adresse des Clients, der mit diesem Backend verbunden ist. Wenn dieses Feld Null ist, bedeutet das entweder, dass der Client über einen Unix-Socket auf dem Servercomputer verbunden ist oder dass es sich um einen internen Prozess wie Autovacuum handelt. |  Nein  | `pg_stat_activity.client_addr` | 
|  `granted`  | Der Wert ist wahr, wenn die Sperre aufrechterhalten wird, und falsch, wenn die Sperre erwartet wird. |  Nein  | `pg_locks.granted` | 
|  `waiting_tuple`  |  Die Tupelnummer, die das Ziel der Sperre innerhalb der Seite ist, oder Null, wenn das Ziel kein Tupel ist.  |  Nein  | `pg_locks.tuple` | 
|  `waiting_page`  | Die Seitennummer, die das Ziel der Sperre innerhalb der Beziehung ist, oder Null, wenn das Ziel keine Beziehungsseite und kein Tupel ist. |  Nein  | `pg_locks.page` | 
|  `waiting_transaction_id`  | Die ID der Transaktion, die das Ziel der Sperre ist, oder Null, wenn das Ziel keine Transaktions-ID ist. |  Nein  | `pg_locks.transactionid` | 
|  `waiting_relation`  | Die OID der Beziehung, die das Ziel der Sperre ist, oder Null, wenn das Ziel keine Beziehung und kein Teil einer Beziehung ist. |  Nein  | `pg_locks.relation` | 
|  `waiting_object_id`  | Die OID des Sperrziels innerhalb seines Systemkatalogs oder Null, wenn das Ziel kein allgemeines Datenbankobjekt ist. |  Nein  | `pg_locks.objid` | 
|  `waiting_database_id`  | Die OID der Datenbank, in der sich das Sperrziel befindet, oder 0, wenn das Ziel ein gemeinsam genutztes Objekt ist, oder Null, wenn das Ziel eine Transaktions-ID ist. |  Nein  | `pg_locks.database` | 
|  `waiting_database_name`  | Der Name der Datenbank, in der sich das Sperrziel befindet. |  Nein  | `pg_stat_activity.datname` | 
|  `waiting_locktype`  | Der Typ des sperrbaren Objekts: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, advisory oder applytransaction. |  Nein  | `pg_locks.locktype` | 
|  `is_fastpath`  | Der Wert ist wahr, wenn die Sperre mit Fast Path abgerufen wurde, und falsch, wenn die Sperre aus der Hauptsperrtabelle abgerufen wurde. |  Nein  | `pg_locks.fastpath` | 

Weitere Informationen zu den Werten in den Ansichten `pg_stat_activity` und `pg_locks` finden Sie in den folgenden Themen der PostgreSQL-Dokumentation.
+ [pg\$1locks](https://www.postgresql.org/docs/current/view-pg-locks.html)
+ [pg\$1stat\$1activity](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW)