CosmosDB - ТОП 1 запрос с ORDER BY - Получено количество документов и RU - PullRequest
0 голосов
/ 30 апреля 2020

Учитывая следующий запрос:

SELECT TOP 1 * FROM c 
WHERE c.Type = 'Case' 
AND c.Entity.SomeField = @someValue
AND c.Entity.CreatedTimeUtc > @someTime
ORDER BY c.Entity.CreatedTimeUtc DESC

До недавнего времени, когда я выполнял этот запрос, количество документов, обработанных запросом (RetrievedDocumentCount в метриках запроса), было числом документов, которое удовлетворяет первому два условия, независимо от "CreatedTimeUt c" или TOP 1. Только когда я добавил составной индекс (Type DESC, Entity.SomeField DESC, Entity.CreatedTimeUtc DESC) и добавил их к предложению ORDER BY, количество найденных документов уменьшилось до количества документов, которое удовлетворяет всем 3 условиям (все еще не один документ, как ожидалось, но лучше).

Затем, начав несколько дней go, мы заметили в нашей среде разработки, что составной индекс больше не нужен, поскольку число найденных документов изменилось только на один документ (= число в ТОП, как и ожидалось), и RU / s значительно уменьшилось.

Мой вопрос - это новое улучшение / исправление в CosmosDB? Я не мог найти объявление / документацию по этому способу. Если да, завершено ли развертывание или все еще выполняется? У нас есть несколько производственных экземпляров в разных регионах.

Спасибо

1 Ответ

0 голосов
/ 01 мая 2020

Не было каких-либо недавних изменений в нашей обработчике запросов, которые объясняли бы, почему этот запрос неожиданно стал менее дорогим.

Единственное, что могло бы объяснить это, это меньше результатов, соответствующих фильтру, чем прежде, и что наш запрос Движок был в состоянии выполнить оптимизацию, которую он не смог бы сделать с большим набором результатов.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...