Я использую Cosmos DB в режиме автопилота с максимальным значением RU / s, установленным на Collection для 20K RU / s. Я использую SQL API. У меня есть несколько сотен тысяч записей в этом конкретном разделе. У меня есть политика индексации по умолчанию, которая заключается в том, что все индексируется. Я зашел в Data Explorer на портале Azure и выполнил следующий запрос:
SELECT count(1) FROM c where c.partitionKey = "12140" and c.uniqueId = "20cdb686-6959-4ed6-ac31-c7f414238f68" and c.timestampAsString = null
Статистика запросов показывает, что в RU / s начисляется 3,46. Это здорово!
Затем я выполняю очень похожий запрос, но я проверяю c .timestampAsString на наличие ненулевого значения:
SELECT count(1) FROM c where c.partitionKey = "12140" and c.uniqueId = "20cdb686-6959-4ed6-ac31-c7f414238f68" and c.timestampAsString != null
Всего RU / Плата за указанный запрос составляет 2989,73 RU / с. Это немного выше. Я ожидал чего-то похожего на исходный запрос.
Кто-нибудь может объяснить, почему эти расходы на запрос так сильно отличаются?