gpt4 book ai didi

sql - 即使使用并行(8)提示,具有百万条记录的表中的计数(1)也很慢

转载 作者:行者123 更新时间:2023-12-01 06:22:25 27 4
gpt4 key购买 nike

我正在尝试从拥有 1.94 亿条记录的表中获取记录计数。使用并行提示和索引快速扫描,但仍然很慢。请针对所附查询提出任何替代方案或改进想法。

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));

这是执行计划:

[[Execution plan ]

查询给出了结果,但花了 2 个小时才计算出 1.94 亿。

编辑:


编辑代码以根据 Littlefoot 的建议添加日期。使用实际列名称编辑的代码。我是堆栈溢出的新手,因此附上了计划作为图像。

最佳答案

此外,如果 compensationdateDATE 数据类型,请勿将其与字符串进行比较(因为 '28-JUL-17 ' 一个字符串)并强制 Oracle 执行隐式转换并花费时间什么都没有。切换至

compensationdate BETWEEN date '2017-07-28' and date '2018-01-26'

关于sql - 即使使用并行(8)提示,具有百万条记录的表中的计数(1)也很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58387920/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com