【发布时间】:2009-05-27 04:30:48
【问题描述】:
我正试图从这个 Oracle 查询中获得更好的性能(这非常慢)。我是 Oracle 初学者,所以也许有人可以指出一个更好的方法来处理这个查询。
我有一张表格,上面有不同家庭的信息。我想根据关系类型提取不同的关系。我想出的解决方案是使用哈希联接来查询数据库...
select *
from (
with target_person as (
select
p.person_id,
p.family_number,
p.relationship_type_id
from
people p
where
p.relationship_type_id = 1 -- parent
)
select
target_person.person_id,
related_person.related_person_id,
related_person.relationship_type_id
from
target_person,
people related_person
where
target_person.person_id != related_person.person_id
and target_person.family_number = related_person.family_number
and related_person.relationship_type_id = 1
);
【问题讨论】:
-
对于特定查询,如果您可以提供指向某处的链接以下载几个表创建脚本和一些测试数据,这将很有帮助 - 这就是我验证任何解决方案的方式提出。很高兴你得到了答案。
标签: oracle optimization