Ok, so hat die CosmosDb Collection ihre Index-Richtlinie auf konsistent, automatisch, hat die Standard-Hash-und Bereich Indizes UND wir einen Pfad zu unseren eigenen Timestamp Eigenschaften in um nach ihnen zu sortieren.Benutzerdefinierte Indizierung in Azure Cosmos Document DB funktioniert nicht
Ich weiß, dass die Pfade korrekt sind, da ich nicht in der Lage bin, nach ihnen zu sortieren, WENN ICH sie nicht eingestellt habe. Aber:
Wenn von Cosmos integrierte Eigenschaft Sortierung _ts - die Kosten für eine OrderBy Abfrage ist wie 20 RU/s. Das ist großartig. Wenn nun durch unsere OWN Zeitstempel Spalten (wir haben zwei Sortier, wo man einen String-Zeitstempel ist, und das andere ist Unixbased Zahl ebenso wie die eingebaute in _ts Spalte. Diese Abfrage kostet 400 RU/s! ???
Setzt man die neue Indexierungsregeln, uns zu ermöglichen es abzufragen und Ordnung, aber die EVUs sind verrückt. Warum ist das und wie wir es ansprechen?
ich, dass Sie wissen, konnte die Indizierung pol nicht ändern eisigen Ad Hoc früher, aber das wurde laut Microsoft angesprochen.
EDIT: Es ist eine einfache Sammlung, keine Partitionierung konfiguriert ist, und die Abfrage wird gegen diese einzige Sammlung wählt nur ein Dokument (top 1).
SELECT top 1 * FROM c WHERE c.AllCompleted = true ORDER BY c.EndFetchDateTimeUtcUnix DESC
vs
SELECT top 1 * FROM c WHERE c.AllCompleted = true ORDER BY c._ts DESC
Der Index wie folgt aussehen: { "indexingMode": "consistent", "automatic": true, "includedPaths": [ { "path": "/", "indexes": [ { "kind": "Hash", "dataType": "Number", "precision": 3 }, { "kind": "Hash", "dataType": "String", "precision": 3 } ] }, { "path": "/EndFetchDateTimeUtcUnix/?", "indexes": [ { "kind": "Range", "dataType": "Number", "precision": -1 }, { "kind": "Hash", "dataType": "String", "precision": 3 } ] } ], "excludedPaths": [] }
Können Sie zusätzliche Informationen hinzufügen, z. B. wie viele Dokumente von Ihrer benutzerdefinierten Abfrage im Vergleich zur Reihenfolge von _ts zurückgegeben werden und ob diese Abfrage auf eine einzelne Partition beschränkt ist? –
Sicher, es ist nur einer. Bearbeitet den obigen Post mit den Abfragen und dem Index. – imbageek