Лазурные RU на cosmosDB

Я пытаюсь выяснить, как работают RU, чтобы оптимизировать запросы к БД.

У меня есть простой запрос, где выбирается по идентификатору

SELECT * FROM c WHERE c.id='cl0'

Этот запрос стоит 277.08 юнита

Затем у меня есть другой запрос, где я выбираю по другому свойству

SELECT * FROM c WHERE c.name[0].id='35bfea78-ccda-4cc5-9539-bd7ff1dd474b' 

Этот запрос стоит 2.95 юнита

Я не могу понять, почему между этими двумя запросами существует большая разница в потребляемых RU.

Два запроса возвращают один и тот же результат

[
    {
        "label": "class",
        "id": "cl0",
        "_id": "cl0",
        "name": [
            {
                "_value": "C0.Iklos0",
                "id": "35bfea78-ccda-4cc5-9539-bd7ff1dd474b"
            }
        ],
        "_rid": "6Ds6AJHyfgBfAAAAADFT==",
        "_self": "dbs/6Ds4FA==/colls/6Ds6DFewfgA=/docs/6Ds6AJHyfgBdESFAAAAAAA==/",
        "_etag": "\"00007200-0000-0000-0000-w3we73140000\"",
        "_attachments": "attachments/",
        "_ts": 1528722196
    }
]

2 ответа

Решение

Ранее я сталкивался с подобной проблемой, поэтому вы не единственный, кто сталкивается с этой проблемой. Я предоставляю вам два решения.

1.sql SELECT * FROM c WHERE c.id='cl0' запрашивать документы по всей базе данных. Если вы можете сделать ключ раздела для правильного поля, это значительно улучшит вашу производительность. Вы можете обратиться к этому документу, чтобы узнать, как выбрать ключ раздела.

2. Я нашел ответ ниже в теме: Запрос Azure DocumentDB по Id очень медленный

Служба поддержки Microsoft ответила, и они решили проблему. Они добавили IndexVersion 2 для коллекции. К сожалению, он еще не доступен на портале, и вновь созданные учетные записи / коллекции по-прежнему не используют новую версию. Вам нужно будет связаться со службой поддержки Microsoft, чтобы внести изменения в свои учетные записи.

Я предлагаю вам оставить отзыв, чтобы отследить это объявление.

Надеюсь, это поможет вам.

Потребление RU зависит от размера вашего документа и вашего запроса, я настоятельно рекомендую ниже ссылку на метрики запроса. Если вы хотите настроить свой запрос или хотите понять задержку, проверьте детали фида.

X-MS-documentd b-запрос-метрики: totalExecutionTimeInMs=33,67;queryCompileTimeInMs=0,06;queryLogicalPlanBuildTimeInMs=0,02;queryPhysicalPlanBuildTimeInMs=0,10;queryOptimizationTimeInMs=0,00;VMExecutionTimeInMs=32,56;indexLookupTimeInMs=0,36;documentLoadTimeInMs=9,58;systemFunctionExecuteTimeInMs=0,00;userFunctionExecuteTimeInMs=0,00;retrievedDocumentCount=2000;retrievedDocumentSize=1125600;outputDocumentCount=2000;writeOutputTimeInMs=18.10;indexUtilizationRatio=1,00 x-ms-request-charge: 604.42

https://docs.microsoft.com/en-us/azure/cosmos-d b/sql-api-sql-query-metrics

Другие вопросы по тегам