2015-09-01 3 views
-1

У меня есть очень большая таблица, которая используется для сбора статистических данных, и я бегу ниже, чтобы собрать для разделов даты, ничего не возвращается, и очень медленноOracle Дата функция медленно

SELECT * FROM ABC.STATISTIC 
where ABS.FUNCTION = 'XX' 
and trunc(QMS_TIMESTAMP) >= to_date('2015/08/20','yyyy/mm/dd') 
and trunc(QMS_BUSINESS_DAY) <= to_date('2015/08/31','yyyy/mm/dd') 

делать также a SELECT * FROM ABC.STATISTIC возвращает строки в студию данных aqua с максимальными результатами, установленными, возможно, 100.

Любые идеи по запросу с использованием функции данных? Кроме того, таблица имеет индекс только для столбцов идентификатора, а не для даты.

+0

В вашем вопросе нет PL/SQL. Покажите нам свою полную хранимую процедуру (или функцию) –

+0

Hi- это не функция, просто простой запрос для извлечения данных из таблицы. – user1873160

+0

Что такое 'ABS.FUNCTION'? Это функция PL/SQL? Если это так, возможно, это большой вклад в вашу производительность. –

ответ

4

Я хотел бы предложить переписав запрос как:

SELECT s.* 
FROM ABC.STATISTIC s 
WHERE ABS.FUNCTION = 'XX' AND 
     QMS_TIMESTAMP >= DATE '2015-08-20' AND 
     QMS_BUSINESS_DAY < DATE '2015-09-01'; 

Затем, лучший показатель для этого запроса, вероятно, STATISTIC(FUNCTION, QMS_TIMESTAMP, QMS_BUSINESS_DAY).

+0

Хотелось бы создать индекс, однако это долгий процесс изменения. Пробовал запрос без результата – user1873160

0

Вы можете попробовать эти 2 вещи в Aqua Data Studio
1. Включите статистику клиентов, выбрав опцию меню Query> Show Client Statistics, а затем выполните медленный запрос. Это покажет, где происходит замедление.
2. Включите вкладку «Результаты визуального объяснения плана», выбрав опцию меню «Запрос»> «Показать план выполнения». Затем вы можете увидеть, указывает ли план объяснения на любые узкие места. Документация по визуальному пояснению: https://www.aquaclusters.com/app/home/project/public/aquadatastudio/wikibook/Documentation15/page/125/Visual-Explain-Plan

Смежные вопросы