Я пытаюсь считать записи из таблицы, в которой 194 миллиона записей. Используются параллельные подсказки и индексное быстрое сканирование, но оно все еще медленное. Пожалуйста, предложите любые альтернативные или улучшенные идеи для прикрепленного запроса.
SELECT
/*+ parallel(cs_salestransaction 8)
index_ffs(cs_salestransaction CS_SALESTRANSACTION_COMPDATE)
index_ffs(cs_salestransaction CS_SALESTRANSACTION_AK1) */
COUNT(1)
FROM cs_salestransaction
WHERE processingunitseq=38280596832649217
AND (compensationdate BETWEEN DATE '28-06-17' AND DATE '26-01-18'
OR eventtypeseq IN (16607023626823731, 16607023626823732, 16607023626823733, 16607023626823734));
Вот план выполнения:
[]
Запрос дал результат, но для расчета 194 миллионов потребовалось 2 часа.
Изменения:
Код отредактирован так, чтобы добавить DATE для каждого предложения Littlefoot. Код редактируется с фактическими именами столбцов. Я новичок в переполнении стека, поэтому прикрепил план как изображение.