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.

Reklamlar
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.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: