Share via


MongoDB için Azure Cosmos DB ile gelişmiş tanılama sorgularıyla ilgili sorunları giderme

ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB Cassandra Gremlin

Bu makalede, Azure Tanılama (eski) ve kaynağa özgü (önizleme) tablolara gönderilen tanılama günlüklerini kullanarak Azure Cosmos DB hesabınızla ilgili sorunları gidermeye yardımcı olmak için daha gelişmiş sorgular yazmayı ele alacağız.

Azure Tanılama tablolarda tüm veriler tek bir tabloya yazılır. Kullanıcılar sorgulamak istedikleri kategoriyi belirtir. İsteğinizin tam metin sorgusunu görüntülemek istiyorsanız bu özelliğin nasıl etkinleştirileceği hakkında bilgi edinmek için bkz. Azure'da tanılama ayarlarını kullanarak Azure Cosmos DB verilerini izleme .

Kaynağa özgü tablolar için veriler, kaynağın her kategorisi için tek tek tablolara yazılır. Şu nedenle bu modu öneririz:

  • Verilerle çalışmayı çok daha kolay hale getirir.
  • Şemaların daha iyi bulunabilirliğini sağlar.
  • Hem alma gecikme süresi hem de sorgu sürelerinde performansı artırır.

Yaygın sorgular

Kaynağa özgü ve Azure Tanılama tablolarında yaygın sorgular gösterilir.

Belirli bir zaman diliminde istekleri veya sorguları en çok tüketen N(10) İstek Birimi (RU)

//Enable full-text query to view entire query text
CDBMongoRequests
| where TimeGenerated > ago(24h)
| project PIICommandText, ActivityId, DatabaseName , CollectionName, RequestCharge
| order by RequestCharge desc
| take 10

Belirli bir zaman penceresinde kısıtlanan istekler (statusCode = 429 veya 16500)

CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "429" or ErrorCode == "16500"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated

Belirli bir zaman penceresinde zaman aşımına uğradı istekleri (statusCode = 50)

CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "50"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated

Büyük yanıt uzunluklarına sahip sorgular (sunucu yanıtının yük boyutu)

CDBMongoRequests
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
| summarize max(ResponseLength) by PIICommandText, RequestCharge, DurationMs, OperationName, TimeGenerated
| order by max_ResponseLength desc

Fiziksel bölüme göre RU tüketimi (çoğaltma kümesindeki tüm çoğaltmalar arasında)

CDBPartitionKeyRUConsumption
| where TimeGenerated >= now(-1d)
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
// filter by operation type
//| where operationType_s == 'Create'
| summarize sum(todouble(RequestCharge)) by toint(PartitionKeyRangeId)
| render columnchart

Mantıksal bölüme göre RU tüketimi (çoğaltma kümesindeki tüm çoğaltmalarda)

CDBPartitionKeyRUConsumption
| where TimeGenerated >= now(-1d)
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
// filter by operation type
//| where operationType_s == 'Create'
| summarize sum(todouble(RequestCharge)) by PartitionKey, PartitionKeyRangeId
| render columnchart  

Sonraki adımlar