Önbelleğe alma etkinleştirildiğinde her sorgu, önbellek isabetine uygun olup olmadığını belirlemek için değerlendirilir.
Önbellek isabeti, Oracle Analitik Bulutu'nun sorguyu yanıtlamak için önbelleği kullanabildiği ve veritabanına hiç gitmediği anlamına gelir. Oracle Analitik Bulutu, aynı veya daha yüksek birleştirme düzeyinde sorguları yanıtlamak için sorgu önbelleğini kullanabilir.
Önbelleğin isabetli olup olmadığını belirleyen birçok faktör vardır. Aşağıdaki tabloda bu faktörler açıklanır.
| Faktör veya Kural | Açıklama |
|---|---|
|
|
Yeni bir sorgunun Bu kural minimum önbelleğe isabet etme gereksinimini karşılar, ancak bu kuralın karşılanması önbellek isabetini garanti etmez. Bu tabloda listelenen diğer kurallar da geçerlidir. |
|
|
Oracle Analitik Bulutu yeni sorguyu yanıtlamak için önbelleğe alınan sonuçlardaki ifadeleri hesaplayabilir, ancak tüm sütunların önbelleğe alınan sonuçta olması gerekir. Örneğin, şu sorgu: SELECT product, month, averageprice FROM sales WHERE year = 2000 şu sorgudaki önbelleğe isabet eder: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 çünkü |
|
|
Sorgunun önbellek isabeti olması için Önbelleğe alınan bir sorgunun mantıksal alt kümesi olan bir
Ayrıca, SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
REGION projeksiyon listesinde olmadığından önceki listedeki temel verili hale getirme sorgusu için önbellek isabeti ile sonuçlanmaz. |
|
Sadece boyut sorguları tam eşleşme olmalıdır |
Bir sorgu sadece boyutsa (yani sorguda olgu veya ölçü yoksa) sadece önbelleğe alınan sorgunun tam eşleşen projeksiyon sütunları önbelleğe isabet eder. Bu davranış, bir boyut tablosu için birden çok mantıksal kaynak olduğunda hatalı pozitifleri önler. |
|
Özel fonksiyonlar içeren sorgular tam eşleşme olmalıdır |
Zaman serisi fonksiyonları ( |
|
Mantıksal tablo grubu eşleşmelidir |
Önbellek isabeti olarak uygun olması için tüm gelen sorguların önbellek girişiyle aynı mantıksal tablo grubunu içermesi gerekir. Bu kural, yanlış önbellek isabetlerini önler. Örneğin, |
|
Oturum değişkeni değerleri eşleşmelidir (güvenlik oturum değişkenleri dahil) |
Mantıksal SQL veya fiziksel SQL komutu bir oturum değişkenini referans gösteriyorsa, oturum değişkeni değerleri eşleşmelidir. Aksi takdirde önbelleğe isabet edilmez. Ayrıca, mantıksal SQL komutunun kendisi oturum değişkenlerini referans göstermese de, güvenliğe duyarlı olan oturum değişkenlerinin değeri, semantik modelinde tanımlı güvenlik oturum değişkeni değerleriyle eşleşmelidir. Satır Düzeyi Veritabanı Güvenliği Kullanırken Doğru Veritabanı Sonuçları Sağlama konusuna bakın. |
|
Eşdeğer birleştirme koşulları |
Yeni bir sorgu isteğinin ortaya çıkan birleştirilmiş mantıksal tablosu, önbellek isabetine uygun olması için önbelleğe alınan sonuçlarla aynı (veya sonuçların alt kümesi) olmalıdır. |
|
|
Önbelleğe alınan bir sorgu |
|
Sorgular uyumlu birleştirme düzeyleri içermelidir |
Birleştirilmiş bir bilgi düzeyi isteyen sorgular, önbelleğe alınan sonuçları daha düşük bir birleştirme düzeyinde kullanabilir. Örneğin şu sorgu; tedarikçi, bölge ve şehir düzeyinde satılan miktarı ister: SELECT supplier, region, city, qtysold FROM suppliercity Şu sorgu, şehir düzeyinde satılan miktarı ister: SELECT city, qtysold FROM suppliercity İkinci sorgu, ilk sorguda önbellek isabetiyle sonuçlanır. |
|
Sınırlı ek birleştirme |
Örneğin, |
|
|
Select listesinde yer almayan sütunlara göre sıralama yapan sorgular önbellek sapmasıyla sonuçlanır. |
|
Önbellek isabeti davranışına tanı koyma |
Önbellek isabeti davranışını daha iyi değerlendirmek için aşağıdaki örnekte gösterildiği gibi ENABLE_CACHE_DIAGNOSTICS oturum değişkenini 4 olarak ayarlayın: ENABLE_CACHE_DIAGNOSTICS=4 |