Oracle Date功能很慢

时间:2015-09-01 12:16:06

标签: sql oracle date

我有一个非常大的表用于收集统计信息,我正在运行以下内容来收集日期部分,没有返回任何内容并且非常慢

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

同时执行SELECT * FROM ABC.STATISTIC会将行返回到aqua data studio,最大结果设置为100。

使用数据函数查询的任何想法?此外,该表只有ID列上的索引,而不是日期。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

您可以在Aqua Data Studio中试用这两件事 1.通过选择菜单选项Query&gt;启用客户端统计信息。显示客户端统计信息,然后执行慢速运行查询。这将显示减速发生的位置 2.通过选择菜单选项Query&gt;启用Visual Explain Plan结果选项卡。显示执行计划。然后,您可以查看解释计划是否表明存在任何瓶颈。视觉解释计划文档: https://www.aquaclusters.com/app/home/project/public/aquadatastudio/wikibook/Documentation15/page/125/Visual-Explain-Plan