【发布时间】:2017-02-07 15:29:16
【问题描述】:
我的数据查询(选择)性能有问题。
在应收账款表中,我们有已编入索引的 account_id。 当我在脚本下面运行时,Account_ID=2003975183 没问题,但是 Account_ID=900025281 进程很慢。这是在 oracle 服务器意外停止后发生的。 两个帐户的行数几乎相同。
帐户的 SQL 脚本:
SELECT nvl(sum(invoice_amt),0) inv_amt
FROM ardb.receivables
WHERE
acct_id = 2003975183
AND entry_date >= trunc(SYSDATE)
AND entry_date < trunc(SYSDATE) + 1;
根据跟踪数据,Index 似乎无法正常工作,是吗?
附加了快速和慢速查询的两个跟踪:
请检查并帮助解决问题。 谢谢!
【问题讨论】:
-
你为什么不
gather stats的表应收账款,然后再次运行查询并查看。 -
我忘了说:1) 表数据已分区,2) 已经收集了统计信息。没有效果。顺便说一下,之前的gather stat num rows stats和partition是一样的。
标签: sql performance indexing oracle11g sql-tuning