Orientdb Super Slow Query Performance - PullRequest
0 голосов
/ 09 июня 2018

Я слишком долго пробовал несколько вещей, и я борюсь с производительностью из Orientdb Community edition 3.0.0RC2 .Текущий запрос выполняется где-то между 60-100 секунд , но я думаю, что это займет миллисекунды, поскольку только 27k записей для сканирования с настройкой индекса.Сервер ( обычная конфигурация сервера ) настроен на моем персональном компьютере, который имеет 8 ГБ памяти и HDD .

Запрос на запуск: select count(*) from ClassA where InitialInvestment = 2000

  • Класс A (26 844 записи):
  • InitialInvestment |DOUBLE
  • LeveragedEtfPercent |DOUBLE
  • MarketPercent |DOUBLE
  • Общий возврат |DOUBLE
  • PercentCash |DOUBLE
  • QuarterlyAdd |DOUBLE
  • StartDate |Дата
  • Результаты |EmbeddedList -> Class DataRecord (каждый список результатов содержит около 9-10 тыс. Элементов)

Индекс (все были "перестроены"):

  • NotUnique SBTREE onInitialInvestment
  • NotUnique SBTREE на MarketPercent и LeveragedEtfPercent
  • Уникальное SBTree на MarketPercent, LeveragedEtfPercent и StartDate

Класс DataRecord (странно, 0 записей отображаются в представлении схемы в Studio, но элементы во встроенном списке показывают класс «DataRecord» - об этом позже).Этот класс имеет только три поля DOUBLE и одно поле даты.Сомневаюсь, что этот класс влияет на данный запрос, я не пытаюсь его запросить.

Есть мысли?

1 Ответ

0 голосов
/ 09 июня 2018
  1. Не используйте Release Candidate, если версия 3.0 GA выпущена более чем на 1 месяц.Прямо сейчас вы можете получить GA 3.0.0.2.
  2. Не могли бы вы выполнить объяснение?explain select..., чтобы вы могли проверить, использовались ли какие-либо индексы.Пожалуйста, опубликуйте результат, обновив свой вопрос.
  3. Похоже, ваши записи слишком толстые, встраивая 9-10 тысяч объектов DataRecord.Гораздо легче создавать объекты DataRecord вне основной записи и ссылаться на них.
...