数据库检索性能问题(大量数据)

fength2004 2007-01-23 12:32:44
有2张表, A,B , A的数量级有40万件,B的数量级有100万件,

P:SELECT A.KEY_A,A.AMOUNT FROM A WHERE (A.复杂条件), 检索A的对象数据有1万件左右,

Q:SELECT B.KEY_B,SUM(B.AMOUNT)AMOUNT FROM B GROUP BY B.KEY_B, 分组后对象数据有10万件,
方法1SQL:
SELECT A.KEY_A, A.AMOUNT, BB.AMOUNT
FROM A,(SELECT B.KEY_B,SUM(B.AMOUNT)AMOUNT FROM B GROUP BY
B.KEY_B) BB
WHERE (A.复杂条件), A.KEY_A = BB.KEY_B order by A.KEY_A
耗时5分多,时间太久
方法2,把Q先检出来,放在内存中,然后根据P1件件循环,耗时2分多,时间主要是化在内存里取 BB.AMOUNT 上了(1.5分),但是这样做的话,就是担心内存溢出, 有没有跟好一点的方法啊,,
...全文
248 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tgm78 2007-01-23
  • 打赏
  • 举报
回复
建议第一次返回的结果集相对的少
yzh963 2007-01-23
  • 打赏
  • 举报
回复
使用分区表试试
bobfang 2007-01-23
  • 打赏
  • 举报
回复
将Q查询出的放到临时表中或许速度可以快些。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧