Вызывает ли наличие одного UPPER в запросах SQL CosmosDb полное сканирование коллекции на разделе? - PullRequest
0 голосов
/ 27 февраля 2019

Учитывая следующий SQL, ManufacturerIdUpperCase является ключом раздела, а значение в нижнем регистре передается в качестве подсказки, чтобы направить Cosmos в правильный раздел."Boat.OwnerIdUpperCase" в проиндексированном свойстве.Будет ли Cosmos использовать ownerId, чтобы сузить сканирование до подмножества документов для этого владельца, или использование двух других вызовов UPPER требует полного сканирования коллекции?

SELECT * FROM boat 
WHERE boat.ManufacturerIdUpperCase= @ManufacturerId
AND UPPER(boat.Owner.Type)= UPPER(@OwnerType) 
AND boat.OwnerIdUppererCase= @BoatOwnerId) 
AND UPPER(boat.BoatType) = UPPER(@BoatType)

Я пытаюсь решить,Мне нужно сохранять строчную копию каждого свойства, включенного в различные предложения WHERE, или, если я могу сделать это, для одного из оставшихся преобразований UPPER для индексированного свойства, которое сократит область набора данных, так что сканирование требуется толькона полученном подмножестве, а не на всем разделе?

Я прочитал старые сообщения, подобные приведенным ниже, и запустил SQL в песочнице, как было предложено.В простом сценарии я вижу тот же результат, что и автор.Тем не менее, мой сценарий работы является более сложным, как описано выше.

DocumentDB: влияние на производительность встроенных строковых функций (например, UPPER)

1 Ответ

0 голосов
/ 27 февраля 2019

Виктор, добро пожаловать в StackOverflow!Я из команды разработчиков Cosmos DB.

В этом конкретном запросе, поскольку все предикаты фильтра являются пересечениями (AND), а не объединениями (OR), Cosmos DB сузит набор документов для оценки ине будет делать полное сканирование.Убедитесь, что все 4 поля (/ ManufacturerIdUpperCase, / Owner / Type, / OwnerIdUppererCase, / BoatType) проиндексированы (добавлены как часть «includesPaths» в indexingPolicy).

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