Sargable - Sargable
Gelen ilişkisel veri tabanları , sorguda bir durumdur (veya yüklem) olduğu söylenir sargable halinde DBMS motoru bir olanaklar sunar indeksi sorgunun hızlandırılması. Terim, ARGument ABLE Arama'nın bir kısaltmasından türetilmiştir .
Sargılanamayan bir sorgu, sargılamayan bir sorgu olarak bilinir ve genellikle sorgu süresi üzerinde olumsuz bir etkiye sahiptir, bu nedenle sorgu optimizasyonundaki adımlardan biri, bunları alay edilebilir hale getirmektir. Etki, bir dizinde tanımlanan belirli sayfaların bir listesine atlamak yerine, dizini olmayan bir kitapta belirli bir terimi aramaya benzer, her seferinde birinci sayfadan başlar.
Bir SQL sorgusunu sargısız kılacak tipik durum , WHERE yan tümcesine bir sütun değeri üzerinde çalışan bir işlev eklemektir. WHERE cümlesi, alay edilebilirliğin önemli olabileceği tek cümle değildir; ayrıca ORDER BY, GROUP BY ve HAVING yan tümcelerini etkileyebilir. Öte yandan SELECT yan tümcesi, performansı olumsuz yönde etkilemeden alay konusu olmayan ifadeler içerebilir.
- Sargable operatörler:
=, >, <, >=, <=, BETWEEN, LIKE, IS [NOT] NULL - Performansı nadiren artıran sargılı operatörler:
<>, IN, OR, NOT IN, NOT LIKE
Basit örnek
WHERE sargable cümleleri tipik olarak operatörün sol tarafında alan değerlerine ve operatörün sağ tarafında skaler değerlere veya ifadelere sahiptir.
Sargılamaz:
SELECT *
FROM myTable
WHERE 11.7 < SQRT(myIntField)
MyIntField bir işlevde gömülü olduğu için bu sargılı değildir. MyIntField'da herhangi bir dizin varsa, bunlar kullanılamaz. Ek olarak, myTable'daki her kayıtta çağrılır.
SQRT()
Sargılı versiyon:
SELECT *
FROM myTable
WHERE myIntField > 11.7 * 11.7
Bu sargındır çünkü myIntField bir işlevde İÇERMEZ, bu da myIntField üzerindeki kullanılabilir tüm indeksleri potansiyel olarak kullanılabilir kılar. Ayrıca, ifade, tablodaki her kayıt için değil, yalnızca bir kez değerlendirilir.
Ayrıca bakınız
Referanslar
- Peter Gulutzan tarafından SQL Performans Ayarı , Trudy Pelzer (Addison Wesley, 2002) ISBN 0-201-79169-2 ( Bölüm 2, Basit "Aramalar" )
- Microsoft SQL Server 2012 Internals , Kalen Delaney, Connor Cunningham, Jonathan Kehayias, Benjamin Nevarez, Paul S. Randal (O'Reily, 2013) ISBN 978-0-7356-5856-1 (Bölüm 11, The Query Optimizer)