"Sargable" terimi ilk olarak P. Griffiths Selinger ve ark. ACM tarafından yayınlanan 1979 tarihli "İlişkisel Veritabanı Yönetim Sisteminde Erişim Yolu Seçimi" başlıklı makalesinde . ACM üyesi olmayanlar için bu makalenin bir kopyası http://cs.stanford.edu/people/chrismre/cs345/rl/selinger.pdf
Terim bu paragrafta tanımlanmıştır:
Hem indeks hem de segment 1 taramaları isteğe bağlı olarak, RSI 2 arayanına geri gönderilmeden önce bir tupa uygulanan arama argümanları (veya SARGS) adı verilen bir dizi tahmin alabilir . Eğer demet tahminleri karşılarsa geri döner; aksi takdirde tarama, SARGS'yi tatmin eden veya segmenti veya belirtilen indeks değeri aralığını tüketen bir demet bulana kadar devam eder. Bu, RSS içinde verimli bir şekilde reddedilebilecek tuples için RSI çağrıları yapma yükünü ortadan kaldırarak maliyeti azaltır. Tüm tahminler SARGS haline gelebilecek formda değildir. Bir sargable yüklem "sütunu, karşılaştırma-operatör değeri" (form içine konabilir veya) şeklinde biridir. SARGS, bu tür tahminlerin ayrık normal formda bir boole ifadesi olarak ifade edilir.
Başka bir deyişle, anlaşılır bir yüklem, depolama motoru (erişim yöntemi) tarafından doğrudan tabloyu veya dizin kaydını gözlemleyerek çözülebilecek şekildedir. Tersine çevrilemez bir belirti, tersine, harekete geçmek için daha yüksek bir DBMS seviyesi gerektirir. Örneğin, sonucu her bir kaydın WHERE lastname = 'Doe'
alanının içeriğine bakarak depolama motoru tarafından kararlaştırılabilir lastname
. Öte yandan, WHERE UPPER(lastname) = 'DOE'
bir fonksiyonun SQL motoru tarafından yürütülmesini gerektirir; bu, depolama motorunun ek CPU maliyetleri doğurarak değerlendirme için okuduğu tüm satırları (olası diğer, anlaşılabilir tahminlerle eşleşmeleri koşuluyla) SQL motoruna geri döndürmesi gerektiği anlamına gelir. .
Orijinal tanımdan anlaşılabilir durumların yalnızca dizin taramalarına değil, aynı zamanda "sütun karşılaştırma-işleç değeri" koşulları karşılandığı ve bu nedenle de olabileceği sürece tablo (Sistem R terminolojisindeki segment) taramalarına da uygulanabileceğini görebilirsiniz. depolama motoru tarafından değerlendirilir. Sistem R'nin bir torunu olan birçok yönden Db2'de bu durum aslında :
Endeks anlaşılabilir tahminler bir aramayı basamaklama için kullanılmaz, ancak seçildiyse dizinden değerlendirilir, çünkü yüklemde yer alan sütunlar dizin anahtarının bir parçasıdır. Bu tahminler ayrıca dizin yöneticisi tarafından değerlendirilir.
Veriye uygun tahminler, dizin yöneticisi tarafından değerlendirilemeyen, ancak Veri Yönetim Hizmetleri (DMS) tarafından değerlendirilebilen tahminlerdir. Tipik olarak, bu tahminler tek bir satırın bir temel tablodan erişimini gerektirir. Gerekirse, DMS yüklemi değerlendirmek için gereken sütunları alır,
SQL Server-konuşmalı anlaşılabilir tahminlerde yalnızca dizin aramaları kullanılarak çözülebilenler olması, muhtemelen depolama motorunun tablo taramaları sırasında bu tür tahminleri uygulayamaması tarafından belirlenir.
Sarsılabilir ve sarsılmaz tahminler bazen sırasıyla "aşama 1" ve "aşama 2" tahminleri olarak tanımlanır (bu aynı zamanda Db2 terminolojisinden de gelir ). Aşama 1 tahminleri, tablo veya dizin kayıtları okunurken en düşük sorgu işleme düzeyinde değerlendirilebilir. Aşama 1 koşullarıyla eşleşen satırlar (varsa) bir sonraki değerlendirme aşamasına (aşama 2) gönderilir.
1 - R Sistemindeki segment, bir tablonun tuple'lerinin fiziksel olarak depolanmasıdır; bir segment taraması, diğer DBMS'lerde bir tablo taramasına eşdeğerdir.
2 - RSI - RSS 3 Arabirimi, bir tuple yönelimli sorgu arabirimi. Bu tartışmayla ilgili arabirim işlevi, bir sonraki satır eşleşen sorguyu döndüren İLERİ'dir.
3 - RSS veya Araştırma Depolama Sistemi, R Sisteminin depolama alt sistemi.