2015-11-19 6 views
-2

У меня есть таблица inventory_history, содержащая 2 миллиона данных, на которых я выполняю нераскрытый поиск.Проблема с незащищенным поиском Ошибка

Из исходной таблицы, я извлекаю данные за последние 3 месяца, что составляет около 300 тысяч строк.

Мое сопоставление содержит один поиск и не распадается (inventory_history). Lookup overide используется для извлечения данных из таблицы inventory_history, столбцы условий индексируются и не используют никаких нежелательных столбцов.

Но я вижу, что процент занятого t/m занят 100% и как ниже 100. Запрос на переопределение запроса выполняется в базе данных. Это отображение берет навсегда. Как я могу настроить производительность.

Не знаю, где проблема существует ... Любые предложения?

SELECT 
    SUM(CASE WHEN UPPER(GM) = 'B' and UNITS> 100 THEN A.QTY/B.UNITS ELSE QTY END) AS QTY, 
    A.TDATE as TDATE, 
    A.TDATE_ID as TDATE_ID, 
    A.DIST_ID as DIST_ID, 
    A.PRODID as PROD_ID 
FROM 
    HUSA_ODS.INVENTORY_HISTORY A, 
    HUSA_ODS.PRODUCT B 
WHERE 
    A.PROD_ID = B.PROD_ID 
    AND TCODE = '10' AND 
    DISTID = ?DISTID_IN? 
    AND A.PROD_ID = ?PROD_ID_IN? 
    AND TDATE <= ?PERIOD_DATE_IN? 
GROUP BY 
    TDATE, 
    TDATE_ID, 
    DIST_ID, 
    A.PROD_ID 
ORDER BY 
    TDATE DESC, 
    DIST_ID, 
    A.PROD_ID , TDATE-- 

Здесь выходные столбцы QTY и TDate

ответ

0

Uncached поиск ударят базу данных для каждого из 300 тысяч строк, поступающих от источника. Используйте кэшированный поиск и посмотрите, можете ли вы отфильтровать некоторые данные в вашем поисковом запросе.