В течение длительного времени я использовал предложение EXISTS
, чтобы определить, существует ли хотя бы одна запись в данной таблице для данного условия. , например, - если бы я хотел, чтобы увидеть, если работник по LastName = «кузнец» существует в таблице «сотрудника», я использовал следующий запросПредложение Oracle EXISTS Vs ROWNUM = 1
select 1
into v_exists_flag
from dual
where exists (select 1
from employee
where lastname = 'smith'
)
Это, безусловно, более эффективно, чем использование счетчика (*) пункт.
select count(*)
into v_count
from employee
where lastname = 'smith'
если v_count> 0, то ....
Но, в последнее время кто-то упомянул, что использование ROWNUM = 1 имеет более высокую производительность, чем при использовании EXISTS положение, как показано ниже
select 1
into v_count
from employee
where lastname = 'smith'
and rownum = 1
Это верный? Может кто-то подтвердить это.
Заранее спасибо
Спасибо вам (Stephen and Przemyslaw)! – user2836468
Hi Przemyslaw - Я просто прочитал сообщение от Адама Муша. В соответствии с его постом - нет существенной разницы, если колонка индексируется. – user2836468
Прошу прощения - я попал по ошибке. – user2836468