2010-04-29 18 views
6

Düşüncelerim StackOverflow topluluğuna bugün aklıma gelen bir soru soracaktım ve bir cevap bulamıyorum."VEYA" kullanarak SQL "IN" ifadesi arasında herhangi bir performans farkı var mı?

"IN" veya "OR" kullanımı arasında herhangi bir performans farkı veya avantajı var mı?

Ie. Mı

türleri GELEN SEÇ tip NEREDE daha

daha iyi ('def' 'abc',) İÇİNDE typecat

türleri GELEN SEÇ tip NEREDE typecat = 'abc' YA typecat = 'def'

ekleme: SQL Server 2008

+1

Hangi sunucu? SQL Server, MySQL, Postgres, Oracle ...? –

+2

Bir kez bu soruyu sordum: http://stackoverflow.com/questions/2343242/sql-where-field-in-vs-where-field-with-multiple-ors – froadie

+0

Üzgünüz, SQL Server 2008 kullanarak. –

cevap

1

Doğru şekilde hatırlarsam, SQL Server, OR deyimine sahip olduğunuz IN deyimini dönüştürür.

1

Hayır, herhangi bir performans farkı yoktur kullanma. Optimize edici bununla ilgilenir.

2

Bu, kullanmadığınız SQL ürününe tamamen uygun değildir; Düzenli kullandığım bir RDBMS, OR sürümü için dizin kullanamaz.

+0

Söz konusu RDBMS'nin adını ortaya çıkarmak ister misiniz? –

+0

R: Temel (geçmişten gelen patlama). –

+0

Üzgünüz, SQL Server 2008 kullanarak. –

İlgili konular