

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.

# Weitere Aspekte der Arbeit mit der Abfrage-Operation in DynamoDB
<a name="Query.Other"></a>

In diesem Abschnitt werden weitere Aspekte der DynamoDB-Abfrageoperation behandelt, darunter die Beschränkung der Ergebnisgröße, das Zählen gescannter gegenüber zurückgegebener Elemente, die Überwachung des Lesekapazitätsverbrauchs und die Steuerung der Lesekonsistenz.

## Begrenzung der Anzahl an Elementen in der Ergebnismenge
<a name="Query.Limit"></a>

Die `Query`-Operation ermöglicht Ihnen, die Anzahl der Elemente einzuschränken, die gelesen werden. Legen Sie dazu den Parameter `Limit` auf die maximale Anzahl Elemente fest, die zurückgegeben werden sollen.

Beispiel: Sie führen eine `Query` für eine Tabelle mit einem `Limit`-Wert von `6` und ohne Filterausdruck durch. Das `Query`-Ergebnis enthält die ersten sechs Elemente der Tabelle, die mit dem Schlüsselbedingungsausdruck der Anforderung übereinstimmen.

Angenommen, Sie fügen nun einen Filterausdruck der `Query` hinzu. In diesem Fall liest DynamoDB bis zu sechs Elemente und gibt dann nur diejenigen zurück, die mit dem Filterausdruck übereinstimmen. Das `Query`-Endergebnis enthält sechs oder weniger Elemente, selbst wenn mehr Elemente mit dem Filterausdruck übereinstimmen würden, wenn DynamoDB weitere Elemente gelesen hätte.

## Zählen der Elemente in den Ergebnissen
<a name="Query.Count"></a>

Zusätzlich zu den Elementen, die mit Ihren Kriterien übereinstimmen, enthält die `Query`-Antwort noch die folgenden Elemente:
+ `ScannedCount` – die Anzahl der Elemente, die mit dem Schlüsselbedingungsausdruck übereinstimmten, *bevor* ein Filterausdruck (falls vorhanden) angewendet wurde.
+ `Count` – die Anzahl der Elemente, die verbleiben, *nachdem* ein Filterausdruck (falls vorhanden) angewendet wurde.

**Anmerkung**  
Wenn Sie keinen Filterausdruck verwenden, haben `ScannedCount` und `Count` den gleichen Wert.

Wenn der `Query`-Ergebnissatz größer als 1 MB ist, repräsentieren `ScannedCount` und `Count` nur eine Teilmenge der Gesamtelemente. Sie müssen mehrere `Query`-Operationen ausführen, um alle Ergebnisse abzurufen (siehe [Paginieren von Tabellenabfrageergebnissen in DynamoDB](Query.Pagination.md)).

Jede `Query`-Antwort enthält die `ScannedCount` und `Count` für die Elemente, die von der betreffenden `Query`-Anforderung verarbeitet wurden. Um eine Gesamtsumme für alle `Query`-Anforderungen zu erhalten, könnten Sie eine laufende Zählung der Werte `ScannedCount` und `Count` vornehmen.

## Durch die Abfrage verbrauchte Kapazitätseinheiten
<a name="Query.CapacityUnits"></a>

Sie können `Query` für jede Tabelle oder jeden sekundären Index verwenden, sofern Sie den Namen des Partitionsschlüsselattributs und einen einzelnen Wert für dieses Attribut angeben. `Query` gibt alle Elemente mit diesem Partitionsschlüsselwert zurück. Sie können optional ein Sortierschlüsselattribut angeben und einen Vergleichsoperator verwenden, um die Suchergebnisse zu verfeinern. `Query` API-Operationen verbrauchen Lesekapazitätseinheiten wie folgt.


****  

| Wenn Sie `Query` eine ... | DynamoDB verbraucht Lesekapazitätseinheiten von ... | 
| --- | --- | 
| Tabelle | Die bereitgestellte Lesekapazität der Tabelle. | 
| Globaler sekundärer Index | Die bereitgestellte Lesekapazität des Index. | 
| Lokaler sekundärer Index | Die bereitgestellte Lesekapazität der Basistabelle. | 

Standardmäßig gibt eine `Query`-Operation keine Daten über seinen Lesekapazitätsverbrauch zurück. Jedoch können Sie den `ReturnConsumedCapacity`-Parameter in einer `Query`-Anforderung angeben, um diese Information zu erhalten. Folgende sind die gültigen Einstellungen für `ReturnConsumedCapacity`:
+ `NONE` – Es werden keine verbrauchten Kapazitätsdaten zurückgegeben. (Dies ist die Standardeinstellung.)
+ `TOTAL` – Die Antwort enthält die zusammengefasste Anzahl der verbrauchten Lesekapazitätseinheiten.
+ `INDEXES` – Die Antwort zeigt die zusammengefasste Anzahl der verbrauchten Lesekapazitätseinheiten, zusammen mit der verbrauchten Kapazität für jede aufgerufene Tabelle und jeden aufgerufenen Index, an.

DynamoDB berechnet die Anzahl von verbrauchten Lesekapazitätseinheiten basierend auf der Anzahl und Größe der Elemente, nicht der Menge der Daten, die an eine Anwendung zurückgegeben werden. Aus diesem Grund bleibt die Anzahl der verbrauchten Kapazitätseinheiten gleich, unabhängig davon, ob Sie alle Attribute (das Standardverhalten) oder nur einige von ihnen anfordern (mithilfe eines Projektionsausdrucks). Die Anzahl ist auch gleich, unabhängig davon, ob Sie einen Filterausdruck verwenden oder nicht. `Query` verbraucht eine Mindestlesekapazitätseinheit für einen strikt konsistenten Lesevorgang pro Sekunde oder zwei letztendlich konsistente Lesevorgänge pro Sekunde für ein Element von bis zu 4 KB. Wenn Sie ein Element lesen möchten, das größer als 4 KB ist, benötigt DynamoDB zusätzliche Leseanforderungseinheiten. Bei leeren Tabellen und sehr großen Tabellen mit einer geringen Anzahl an Partitionsschlüsseln können zusätzliche RCUs Gebühren anfallen, die über die abgefragte Datenmenge hinausgehen. Dies deckt die Kosten für die `Query`-Bearbeitung der Anfrage, auch wenn keine Daten vorhanden sind.

## Lesekonsistenz für die Abfrage
<a name="Query.ReadConsistency"></a>

Eine `Query`-Operation führt standardmäßig lEventually Consistent-Lesevorgänge aus. Dies bedeutet, dass die `Query`-Ergebnisse Änderungen aufgrund kürzlich abgeschlossener `PutItem` oder `UpdateItem`-Operationen, nicht wiedergeben könnten. Weitere Informationen finden Sie unter [DynamoDB-Lesekonsistenz](HowItWorks.ReadConsistency.md).

Wenn Sie Strongly Consistent-Lesevorgänge benötigen, legen Sie den `ConsistentRead`-Parameter in der `Query`-Anforderung auf `true` fest.