Почему получение COUNT результатов так дорого? - PullRequest
2 голосов
/ 15 февраля 2020

Если я выполню запрос, подобный приведенному ниже:

SELECT 
DISTINCT c.vin,
c.year-model-trim, 
c.make
FROM c
WHERE c.make= @make    // make is partition key
AND c.manufactured > '2020-01-01'

Я верну 25 документов, статистика запросов будет выглядеть примерно так:

  • Плата за запрос 5,79 RU
  • Количество полученных документов 70
  • Размер полученных документов 25736 байт
  • Количество выходных документов 26
  • Размер выходных документов 1423 байта
  • Индекс число найденных документов 25,9
  • время просмотра индекса 0,6 мс
  • время загрузки документа 0,5900000000000001 мс
  • время выполнения механизма запросов 0,26 мс
  • время выполнения системной функции 0 мс
  • Время выполнения пользовательской функции 0 мс
  • Время записи документа 0,01 мс
  • Круглые поездки 1

Однако, если я хочу получить только Результаты COUNT этого запроса, я могу вложить вышеупомянутый запрос в запрос подсчета:

SELECT COUNT(m.vin)
FROM
(
    SELECT 
    DISTINCT c.vin,
    c.year-model-trim, 
    c.make
    FROM c
    WHERE c.make= @make    // make is partition key
    AND c.manufactured > '2020-01-01'
)m

И мой RU go от ~ 5 до ~ 150.

  • Запрос Стоимость 147,79 RU
  • Отображение результатов 1 - 1
  • Количество полученных документов 0
  • Извлеченный размер документа 0 байтов
  • Количество выходных документов 1
  • Размер выходного документа 79 байтов
  • Количество документов совпадений индекса 0
  • Время просмотра индекса 124,97000000000001 мс
  • Время загрузки документа 0 мс

Почему получение COUNT набора результатов в Cosmos столь дорого с точки зрения использования RU?

...