Başlangıç > Database, Forms, Oracle, PL/SQL, Reports > pl/sql de in ve exists kullanımı ve arasındaki fark

pl/sql de in ve exists kullanımı ve arasındaki fark


Merhaba pl/sql de in ve exists kullanımına birer örnek.

SELECT t1.column_1,
       t1.column_2
  FROM table_1 t1
 WHERE t1.column_1 IN (SELECT t2.column_3 FROM table_2 t2);

SELECT t1.column_1,
       t1.column_2
  FROM table_1 t1
 WHERE t1.column_1 NOT IN (SELECT t2.column_3 FROM table_2 t2);

SELECT t1.column_1,
       t1.column_2
  FROM table_1 t1
 WHERE EXISTS (SELECT * FROM table_2 t2 WHERE t1.column_1 = t2.column_3);

SELECT t1.column_1,
       t1.column_2
  FROM table_1 t1
 WHERE NOT EXISTS (SELECT * FROM table_2 t2 WHERE t1.column_1 = t2.column_3);

Bu kullanımları biraz açıklamak gerekirse yazılan bir sql de in kullanımı ile exists kullanımı basit bir  sql de performans olarak çok fazla ayırt edilemez.Ama daha yoğun bir sql yazıldığında in ve exists kullanımı arasındaki performans farkı ortaya çıkacaktır.Peki nedir bu in ve exists arasındaki fark.Hemen anlatalım.

in yazılan subquery den dönen tüm kayıtlar içinde eşleme yaptıktan sonra ana query nin çalışmasını tamamlar.

exists ise subquery yi eşleme yapılan kayıtlara göre sonuçlandırır ve ilave olarak gelen kayıtlar içinde eşleme yapmaya gerek kalmaz.exists zaten subquery den ihtiyacı olan kayıtları getirmiş olacaktır.

Bu yüzden yoğun sql lerde performans sağlanması için in yerine exists kullanımı tercih edilmektedir.

Kategoriler:Database, Forms, Oracle, PL/SQL, Reports Etiketler:, , ,
  1. satolina
    06 Temmuz 2011, 12:26

    Bir iki sey eklemek isterim

    exists de condition ifadeleri kullanabiliyoruz bu yuzden biraz daha kullanislidir.
    Birde profesyonel acidan daha uygun exists.

    Beğen

  1. No trackbacks yet.

Yorum bırakın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.