我有inventory_history表,其中包含2百万个数据,我正在执行未缓存的查找。
从源表中,我正在检索最近3个月的数据,大约有30万行。
我的映射包含单个查找并且未缓存(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 :(得分:0)
对于来自源的30万行中的每一行,未缓存的查找都将访问数据库。使用缓存查找,看看是否可以过滤掉查询查询中的某些数据。