【发布时间】:2013-03-14 21:57:35
【问题描述】:
我想创建一个视图,我需要一个包含自连接的查询。我担心它的性能和行为,因为它将获取大量数据。表和查询的详细信息如下(原始表有更多列,我将需要多列的结果;这只是为您提供一个示例):-
人员表
PK NAME SPOUSE_REF_ID IS_MARRIED
1 John Null Y
2 Alice 1 Y
3 Varvatos Null Y
4 Barbara 5 Y
5 Stanely Null Y
6 Ross Null N
7 Henry Null N
我需要查询已婚且有supper_ref_id的人的数据。因此我提出的查询是:-
select a.NAME spouse_name, a.SERVICE_NO, a.id,a.employment_category_id, pf.name name, pf.service_no,pf.id,
pf.employment_category_id
from person a
inner join person pf on
a.id = pf.spouse_ref_id
where a.IS_MARRIED ='Y'
请就其优化向我提出建议,如果您认为重组查询会获得更好的结果,或者在查询等中不建议使用自联接等。
我将不胜感激具有优化视图的回复。
【问题讨论】:
-
您有什么问题,或者有什么问题吗?
-
由于自联接是执行此操作的唯一方法,因此您无能为力。有时您可以用分析函数替换自联接,但在这种情况下不能
标签: sql oracle view query-optimization self-join