Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az Azure Cosmos DB indexelési metrikákat biztosít a használt indexelt útvonalak és az ajánlott indexelt útvonalak megjelenítéséhez. Az indexelési metrikák használatával optimalizálhatja a lekérdezési teljesítményt, különösen olyan esetekben, amikor nem tudja biztosan, hogyan módosíthatja az indexelési szabályzatot).
Támogatott SDK-verziók
Az indexelési metrikák a következő SDK-verziókban támogatottak: | SDK | Támogatott verziók | | --- | --- | | .NET SDK v3 | >= 3.21.0 | Java SDK v4 | >= 4.19.0 | Python SDK | >= 4.6.0 |
Indexelési metrikák engedélyezése
A lekérdezéshez az indexelési metrikákat úgy engedélyezheti, ha a PopulateIndexMetrics tulajdonságot true beállítja. Ha nincs megadva, PopulateIndexMetrics az alapértelmezett érték a .false Csak az indexmetrikák engedélyezését javasoljuk a lekérdezési teljesítmény hibaelhárításához. Amíg a lekérdezések és az indexelési szabályzatok változatlanok maradnak, az indexmetrikák nem változnak. Ehelyett javasoljuk a drága lekérdezések azonosítását a lekérdezési RU egységek díjainak és késleltetésének diagnosztikai naplókkal történő monitorozásával.
string sqlQueryText = "SELECT TOP 10 c.id FROM c WHERE c.Item = 'value1234' AND c.Price > 2";
QueryDefinition query = new QueryDefinition(sqlQueryText);
FeedIterator<Item> resultSetIterator = container.GetItemQueryIterator<Item>(
query, requestOptions: new QueryRequestOptions
{
PopulateIndexMetrics = true
});
FeedResponse<Item> response = null;
while (resultSetIterator.HasMoreResults)
{
response = await resultSetIterator.ReadNextAsync();
Console.WriteLine(response.IndexMetrics);
}
Példa kimenet
Ebben a példalekérdezésben a használt útvonalakat /Item/? és /Price/? a lehetséges összetett indexeket (/Item ASC, /Price ASC)figyeljük meg.
Index Utilization Information
Utilized Single Indexes
Index Spec: /Item/?
Index Impact Score: High
---
Index Spec: /Price/?
Index Impact Score: High
---
Potential Single Indexes
Utilized Composite Indexes
Potential Composite Indexes
Index Spec: /Item ASC, /Price ASC
Index Impact Score: High
---
Használt indexelt elérési utak
A használt önálló indexek és a használt összetett indexek a lekérdezés által használt elérési utakat és összetett indexeket mutatják. A lekérdezések több indexelt elérési utat, valamint a belefoglalt útvonalak és az összetett indexek kombinációját is használhatják. Ha egy indexelt elérési út nem szerepel használatban, az indexelt elérési út eltávolítása nem befolyásolja a lekérdezés teljesítményét.
A használt indexelt elérési utak listáját tekintheti annak bizonyítékaként, hogy egy lekérdezés használta ezeket az útvonalakat. Ha nem biztos abban, hogy egy új indexelt elérési út javítja-e a lekérdezés teljesítményét, próbálja meg hozzáadni az új indexelt elérési utakat, és ellenőrizze, hogy a lekérdezés használja-e őket.
Lehetséges indexelt útvonalak
A lehetséges önálló indexek és a lehetséges összetett indexek a belefoglalt elérési utakat és az összetett indexeket mutatják, amelyeket hozzáadva a lekérdezés hasznosíthat. Ha potenciális indexelt elérési utakat lát, érdemes lehet hozzáadni őket az indexelési szabályzathoz, és megfigyelni, hogy javítják-e a lekérdezési teljesítményt.
A lehetséges indexelt útvonalak listáját érdemes javaslatnak tekinteni, nem pedig annak meggyőző bizonyítékát, hogy egy lekérdezés egy adott indexelt elérési utat fog használni. A lehetséges indexelt útvonalak nem az indexelt elérési utak teljes listája, amelyeket a lekérdezések használhatnak. Emellett előfordulhat, hogy egyes indexelt útvonalak nem befolyásolják a lekérdezés teljesítményét. Adja hozzá az ajánlott indexelt elérési utakat , és győződjön meg arról, hogy javítják a lekérdezési teljesítményt.
Megjegyzés:
Van visszajelzése az indexelési metrikákról? Hallani akarjuk! Nyugodtan megoszthatja visszajelzéseit közvetlenül az Azure Cosmos DB mérnöki csapatával: cosmosdbindexing@microsoft.com
Indexhatási pontszám
Az index hatáspontszáma annak a valószínűsége, hogy egy indexelt elérési út a lekérdezési alakzaton alapul, jelentős hatással van a lekérdezési teljesítményre. Más szóval az index hatáspontszáma annak a valószínűsége, hogy az adott indexelt elérési út nélkül a lekérdezés RU-díja lényegesen magasabb lett volna.
Az index hatásának két lehetséges pontszáma lehet: magas és alacsony. Ha több lehetséges indexelt útvonallal rendelkezik, javasoljuk, hogy a magas hatáspontszámú indexelt útvonalakra összpontosítson.
Az egyetlen tényező, amelyet az index hatáspontszámában használnak, a lekérdezés formája. Az alábbi lekérdezésben például az indexelt elérési út /name/?magas indexhatási pontszámot kap:
SELECT *
FROM c
WHERE c.name = "Samer"
Az adatok jellegétől függően a tényleges hatás. Ha csak néhány elem felel meg a /name szűrőnek, az indexelt elérési út jelentősen javítja a lekérdezés RU-díját. Ha azonban a legtöbb elem mégis megfelel a /name szűrőnek, előfordulhat, hogy az indexelt elérési út nem javítja a lekérdezés teljesítményét. Minden ilyen esetben az indexelt elérési út /name/?magas indexhatási pontszámot kap, mert a lekérdezési alakzat alapján az indexelt elérési út nagy valószínűséggel javítja a lekérdezés teljesítményét.
További példák
Példa lekérdezés
SELECT c.id
FROM c
WHERE c.name = 'Tim' AND c.age > 15 AND c.town = 'Redmond' AND c.timestamp > 2349230183
Indexmetrikák
Index Utilization Information
Utilized Single Indexes
Index Spec: /name/?
Index Impact Score: High
---
Index Spec: /age/?
Index Impact Score: High
---
Index Spec: /town/?
Index Impact Score: High
---
Index Spec: /timestamp/?
Index Impact Score: High
---
Potential Single Indexes
Utilized Composite Indexes
Potential Composite Indexes
Index Spec: /name ASC, /town ASC, /age ASC
Index Impact Score: High
---
Index Spec: /name ASC, /town ASC, /timestamp ASC
Index Impact Score: High
---
Ezek az indexmetrikák azt mutatják, hogy a lekérdezés az indexelt elérési utakat /name/?, /age/?, /town/?, és /timestamp/? használta. Az indexmetrikák azt is jelzik, hogy nagy a valószínűsége annak, hogy hozzáadja az összetett indexeket (/name ASC, /town ASC, /age ASC) , és (/name ASC, /town ASC, /timestamp ASC) tovább javítja a teljesítményt.
Következő lépések
További információ az indexelésről az alábbi cikkekben: