我正在处理带有分层数据的数据库模式。让我们说模式如下 -
ID1 parent_ID1 ID2 ID3
其中ID1 parent_ID1具有层次结构信息。该表在ID1和ID2上编制索引。
现在,我想以分层方式检索记录,以便所有记录都有ID3 = someValue
我正在考虑以下查询 -
Select *
from table
where ID3 = somevalue
connect by prior ID1 = parent_ID1
我也有ID2对应的ID2 = somevalue。但我不知道查询的根行。
现在,如果我在where子句中包含或不包含ID2,效率会受到多大影响。如果没有START WITH子句,查询的代价是多少。我已经读过,在这种情况下,oracle将每行视为根行,然后相应地连接。但我想更好地了解用例。
提前致谢。