Sorgu Önbelleğe Alma Yönetimi

Oracle Analitik Bulutu, sorgu önbelleğindeki sorgu sonucu kümelerinin yerel bir önbelleğini saklar.

Konular:

Sorgu Önbelleği Hakkında

Sorgu önbelleği, Oracle Analitik Bulutu'nun arka uç veri kaynaklarına erişmeden birçok sonraki sorgu isteğini karşılamasını sağlar ve bu sorgu performansını artırır. Ancak, sorgu önbelleği girişleri, arka uç veri kaynaklarında güncellemeler yapıldıkça eskiyebilir.

Önbelleğe Almanın Avantajları

Bir sorguyu işlemenin en hızlı yolu, işlemenin büyük kısmını atlamak ve önceden hesaplanmış bir cevap kullanmaktır.

Oracle Analitik Bulutu, sorgu önbelleğe alma ile sorguların önceden hesaplanmış sonuçlarını yerel bir önbellekte saklar. Bu sonuçları başka bir sorgu kullanıyorsa, bu sorgudaki tüm veritabanı işlemleri ortadan kaldırılır. Bu, ortalama sorgu yanıt süresini ciddi oranda iyileştirebilir.

Performansı iyileştirmenin yanı sıra, yerel bir önbellekten gelen bir sorguyu yanıtlayabilmek, veritabanı sunucusundaki ağ kaynaklarını ve işlem süresini korur. Ara sonuçlar Oracle Analitik Bulutu'na döndürülmediğinden ağ kaynakları korunur. Sorguyu veritabanında çalıştırmamak, veritabanı sunucusunu başka işler yapması için serbest bırakır. Veritabanı bir geri ödeme sistemi kullanıyorsa, daha az sorgu çalıştırmak da bütçedeki maliyetleri azaltabilir.

Bir sorguyu yanıtlamak için önbelleği kullanmanın bir başka avantajı, Oracle Analitik Bulutu'nda işlem süresindeki tasarruftur (özellikle sorgu sonuçları birden çok veritabanından alınmışsa). Sorguya bağlı olarak, sunucuda önemli ölçüde birleştirme ve sıralama işlemi olabilir. Sorgu önceden hesaplanmışsa bu işlem önlenir ve sunucu kaynaklarını diğer görevler için serbest bırakır.

Özetlemek gerekirse; sorgu önbelleğe alma, sorgu performansını önemli ölçüde artırabilir ve ağ trafiğini, veritabanı işleme ve işleme ek yükünü azaltabilir.

Önbelleğe Alma Maliyetleri

Sorgu önbelleğe almanın birçok avantajla birlikte belirli maliyetleri de vardır.

  • Önbelleğe alınan sonuçların eski olma potansiyeli

  • Önbelleği yönetmek için idari maliyetler

Önbellek yönetimi ile avantajlar genellikle maliyetlerden çok daha üstündür.

Önbelleğe Alma ile İlişkili İdari Görevler

Bazı yönetim görevleri, önbelleğe alma ile ilişkilidir. Her fiziksel tablo için tablonun ne sıklıkla güncellendiğini bilerek önbellekte tutma süresini ayarlamanız gerekir.

Güncelleme sıklığı değişiklik gösterdiğinde, değişikliklerin gerçekleşme zamanını takip etmeniz ve gerektiğinde önbelleği manuel olarak temizlemeniz gerekir.

Önbelleği Güncel Tutma

Temel veritabanlarındaki veriler değiştiğinde önbellek girişleri temizlenmezse, sorgular potansiyel olarak güncel olmayan sonuçlar döndürebilir.

Bunun kabul edilebilir olup olmadığını değerlendirmeniz gerekir. Önbelleğin bazı eski veriler içermesine izin vermek kabul edilebilir. Hangi eski veri düzeyinin kabul edilebilir olduğuna karar vermeniz ve ardından bu düzeyleri yansıtacak bir dizi kuralı konfigüre etmeniz (ve uygulamanız) gerekir.

Örneğin, bir uygulamanın büyük bir holdingden gelen kurumsal verileri analiz ettiğini ve şirketteki farklı bölümlerin yıllık özetlerini gerçekleştirdiğinizi varsayın. Yeni veriler, sorguları bariz bir şekilde etkilemez; çünkü yeni veriler sadece gelecek yılın özetlerini etkiler. Bu durumda, önbelleği temizleyip temizlememeye kararının sonuçları, girişleri önbellekte bırakmayı tercih edebilir.

Ancak, veritabanlarının günde üç kez güncellendiğini ve bugünün etkinlikleri hakkında sorgular yaptığınızı varsayın. Bu durumda önbelleği çok daha sık temizlemelisiniz veya belki de önbelleği hiç kullanmamayı düşünmelisiniz.

Diğer bir senaryo da, veri kümesini periyodik aralıklarla (örneğin haftada bir) baştan yeniden oluşturmanızdır. Bu örnekte, veri kümesini yeniden oluşturma sürecinin bir parçası olarak tüm önbelleği temizleyebilir ve önbellekte hiçbir zaman eski verilerin bulunmamasını sağlayabilirsiniz.

Durumunuz ne olursa olsun, kullanıcılara döndürülen güncel olmayan bilgiler için nelerin kabul edilebilir olduğunu değerlendirmelisiniz.

Kullanıcılar Arasında Önbellek Paylaşımı

Belirli bir bağlantı havuzu için paylaşımlı oturum açma etkinleştirilirse, önbellek kullanıcılar arasında paylaşılabilir ve her kullanıcı için önbelleğin temel verili hale getirilmesi gerekmez.

Paylaşımlı oturum açma etkinleştirilmezse ve kullanıcıya özel bir veritabanı girişi kullanılırsa, her kullanıcı kendi önbellek girişini oluşturur.

Sorgu Önbelleğe Almayı Etkinleştirme veya Devre Dışı Bırakma

Oracle Analitik Bulutu'nda sorgu önbelleği öndeğer olarak etkindir. Sistem Ayarları sayfasında sorgu önbelleğe almayı etkinleştirebilir veya devre dışı bırakabilirsiniz.

  1. Konsol'a tıklayın.
  2. Sistem Ayarları'na tıklayın.
  3. Performans ve Uyumluluk'a tıklayın.
  4. Önbellek Etkinleştirme'yi açık veya kapalı olarak ayarlayın.
    • Açık - Veri sorgusu önbelleğe alma etkin.
    • Kapalı - Önbelleğe alma devre dışı.
  5. Uygula'ya tıklayın.
    Değişikliklerin sistemde yenilenmesi için birkaç dakika bekleyin.

Önbelleği İzleme ve Yönetme

Temel veritabanlarındaki değişiklikleri yönetmek ve önbellek girişlerini izlemek için bir önbellek yönetimi stratejisi geliştirmelisiniz.

Önbellek girişini oluşturan temel tablolardaki veriler değiştiğinde önbellek girişlerini geçersiz kılmak için bir işleme ve istenmeyen önbellek girişlerini izlemek, belirlemek ve kaldırmak için bir işleme ihtiyacınız vardır.

Bu bölüm, aşağıdaki konuları içerir:

Önbellek Yönetimi Stratejisi Seçme

Önbellek yönetim stratejisi tercihi, temel veritabanlarındaki verilerin oynaklığına ve bu oynaklığa neden olan değişikliklerin öngörülebilirliğine bağlıdır.

Ayrıca, önbelleğinizi oluşturan sorguların sayısı ile tiplerine ve bu sorguların aldığı kullanıma bağlıdır. Bu bölümde, çeşitli önbellek yönetimi yaklaşımlarına genel bakış sağlanmaktadır.

Sistem İçin Önbelleğe Almayı Devre Dışı Bırakma

Tüm yeni önbellek girişlerini durdurmak ve yeni sorguların mevcut önbelleği kullanmasını durdurmak amacıyla tüm sistem için önbelleğe almayı devre dışı bırakabilirsiniz. Önbelleğe almayı devre dışı bırakmak, önbellekte saklanan herhangi bir girişi kaybetmeden daha sonra etkinleştirebilmenizi sağlar.

Önbelleğe almayı geçici olarak devre dışı bırakmak, eski önbellek girişleri olduğundan şüphelenebileceğiniz, ancak bu girişleri veya tüm önbelleği temizlemeden önce gerçekten eski olup olmadıklarını doğrulamak istediğiniz durumlarda yararlı bir stratejidir. Önbellekte saklanan verilerin hala uygun olduğunu fark etmeniz durumunda veya sorunlu girişleri güvenli bir şekilde temizledikten sonra önbelleği güvenli bir şekilde etkinleştirebilirsiniz. Gerekirse önbelleği yeniden etkinleştirmeden önce tüm önbelleği veya belirli bir iş modeliyle ilişkili önbelleği temizleyin.

Belirli Fiziksel Tablolar İçin Önbellek ve Önbellekte Tutma Süresi

Her fiziksel tablo için önbelleğe alınabilir bir özellik ayarlayarak, o tabloya ilişkin sorguların gelecekteki sorguları yanıtlamak için önbelleğe alınıp alınmayacağını belirtebilirsiniz.

Bir tablo için önbelleğe almayı etkinleştirirseniz, tabloyu içeren sorgular önbelleğe alınır. Tüm tablolar öndeğer olarak önbelleğe alınabilir, ancak bazı tablolar, uygun önbellekte tutma süresi ayarlarını belirlemediğiniz sürece önbelleğe dahil edilmek için uygun olmayabilir. Örneğin, her dakika güncellenen borsa takip ekranı verilerini depolayan bir tablonuz olduğunu varsayın. Bu tablo için her 59 saniyede bir girişleri temizlemek istediğinizi belirtebilirsiniz.

Bu tablo için girişlerin sorgu önbelleğinde ne kadar süreyle saklanacağını belirtmek için önbellekte tutma ayarlarını da kullanabilirsiniz. Bu, sık sık güncellenen veri kaynakları için kullanışlıdır.

  1. Model Yönetim Aracı'ndaki Fiziksel katmanda fiziksel tabloya çift tıklayın.

    Semantik Modelleyici kullanıyorsanız, bkz Fiziksek Bir Tablonun Genel Nitelikleri Nelerdir?.

  2. Fiziksel Tablo nitelikleri iletişim kutusundaki Genel sekmesinde şu seçimlerden birini yapın:

    • Önbelleğe almayı etkinleştirmek için Önbelleğe Alınabilir'i seçin.

    • Bir tablonun önbelleğe alınmasını engellemek için Önbelleğe Alınabilir seçimini kaldırın.

  3. Önbellek geçerlilik bitiş zamanı ayarlamak için bir Önbellekte tutma süresi ve ölçü birimi (gün, saat, dakika veya saniye) belirleyin. Önbellek girişlerinin otomatik olarak sona ermesini istemiyorsanız Önbellek hiçbir zaman sona ermez'i seçin.

  4. Tamam'a tıklayın.

Semantik Model Değişiklikleri Sorgu Önbelleğini Nasıl Etkiler

Semantik Modelleyici veya Model Yönetim Aracı'nı kullanarak semantik modelleri değiştirirken, değişikliklerin önbellekte saklanan girişler için etkileri olabilir. Örneğin, bir fiziksel nesnenin veya dinamik bir semantik model değişkeninin tanımını değiştirirseniz bu nesneyi ya da değişkeni referans alan önbellek girişleri artık geçerli olmayabilir. Bu değişiklikler önbelleğin temizlenmesini gerektirebilir. Dikkat edilmesi gereken iki senaryo vardır: Mevcut semantik modelinizi değiştirmeniz ve yeni bir semantik model oluşturmanız (veya yüklemeniz).

Semantik Modelde Yapılan Değişiklikler

Bir semantik modeli değiştirdiğinizde veya farklı bir .rpd dosyası yüklediğinizde, önbellek girişlerini etkileyen tüm değişiklikleriniz, değişen nesneleri referans gösteren tüm önbellek girişlerinin temizlenmesiyle sonuçlanır. Temizleme işlemi, değişiklikleri yüklediğinizde gerçekleşir. Örneğin semantik modelden bir fiziksel tabloyu silerseniz, teslim edildiğinde tabloyu referans gösteren tüm önbellek girişleri temizlenir. Mantıksal katmanda bir semantik modelde yapılan herhangi bir değişiklik, o semantik model için tüm önbellek girişlerini temizler.

Global Semantik Model Değişkenlerinde Yapılan Değişiklikler

Genel semantik model değişkenlerinin değerleri, sorgulardan döndürülen veriler tarafından yenilenir. Global emantik modeli değişkeni tanımlarken bir başlatma bloğu oluşturur veya Yapılandırılmış Sorgulama Dili sorgusu içeren mevcut bir başlatma bloğunu kullanırsınız. Ayrıca, sorguyu çalıştırmak ve değişkenin değerini periyodik olarak yenilemek için bir çizelge konfigüre edersiniz.

Bir global semantik modeli değişkeninin değeri değişirse bu değişkeni bir sütunda kullanan önbellek girişleri eskir ve söz konusu girişteki verilere yeniden ihtiyaç duyulduğunda yeni bir önbellek girişi oluşturulur. Eski önbellek girişi hemen kaldırılmaz; normal önbelleğe alma mekanizması ile temizlenene kadar kalır.

Önbelleğin Kullanımına İlişkin Stratejiler

Sorgu önbelleğe almanın başlıca avantajlarından biri, görünür sorgu performansının iyileşmesidir.

Sorgu önbelleğe alma, sorguları çalıştırıp sorgu sonuçlarını önbelleğe alarak devre dışı saatlerde önbelleği temel verili hale getirmek için önemli olabilir. İyi bir temel verili hale getirme stratejisi, önbellek isabetlerinin ne zaman gerçekleştiğini bilmenizi gerektirir.

Tüm kullanıcılarınız için önbelleği temel verili hale getirmek isterseniz, önbelleği şu sorgu ile temel verili hale getirebilirsiniz:

SELECT User, SRs

SELECT User, SRs kullanarak önbelleği temel verili hale getirdikten sonra, aşağıdaki sorgular önbellek isabetleridir:

SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER1)
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER2)
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER3)

Bu bölüm, aşağıdaki konuları içerir:

Önbellek İsabetleri Hakkında

Ö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

SELECT listesindeki sütunların bir alt kümesi eşleşmelidir

Yeni bir sorgunun SELECT listesindeki tüm sütunların, önbellek isabetine uygun olmaları için önbelleğe alınan sorguda mevcut olmaları veya sorgudaki sütunlardan hesaplanabilmeleri gerekir.

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.

SELECT listesindeki sütunlar, önbelleğe alınan sorguların sütunlarındaki ifadelerden oluşabilir

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ü averageprice değeri, dollars ve unitsales değerinden hesaplanabilir (averageprice = dollars/unitsales).

WHERE yantümcesi anlamsal olarak aynı veya mantıksal bir alt küme olmalıdır

Sorgunun önbellek isabeti olması için WHERE yantümcesi kısıtlamalarının önbelleğe alınan sonuçlarla eşdeğer olması veya önbelleğe alınan sonuçların bir alt kümesi olması gerekir.

Önbelleğe alınan bir sorgunun mantıksal alt kümesi olan bir WHERE yantümcesi, alt kümenin şu koşullardan birini karşılaması durumunda önbellek isabeti için uygundur:

  • IN listesi değerlerinin bir alt kümesi. Bir IN listesi önbelleğe alınan sorgusunun daha az sayıda öğesini isteyen sorgular önbelleği isabeti için uygundur. Örneğin aşağıdaki sorgu:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('EAST', 'WEST')

    şu önbelleğe alınan sorguda isabet olarak uygundur:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('NORTH', 'SOUTH', 'EAST', 'WEST')
  • Önbelleğe alınan sonuçtan daha az (ama eşit) OR kısıtlaması içerir.

  • Sabit değer karşılaştırmasının mantıksal bir alt kümesini içerir. Örneğin aşağıdaki ön koşul:

    WHERE revenue < 1000

    şu ön koşula sahip bir karşılaştırılabilir sorguda önbellek isabeti olarak uygundur:

    WHERE revenue < 5000
  • WHERE yantümcesi yok. Bir sorguda hiçbir WHERE yantümcesi önbelleğe alınmazsa, tüm diğer önbellek isabeti kurallarını karşılayan sorgular, WHERE yantümcelerine bakılmaksızın önbellek isabeti olarak uygundur.

Ayrıca, WHERE yantümcesinde kullanılan sütunların projeksiyon listesinde olmaları gerekir. Örneğin aşağıdaki sorgu:

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ı (AGO, TODATE ve PERIODROLLING), sınır ve öteleme fonksiyonları (OFFSET ve FETCH), ilişki fonksiyonları (ISANCESTOR, ISLEAF, ISROOT ve ISSIBLING), harici birleştirme sorguları gibi özel fonksiyonlar içeren diğer sorgular ve genellikle filtre metrikleri de önbelleğe alınan sorgudaki projeksiyon sütunları ile tam eşleşme olmalıdır. Bu durumlarda filtre de tam eşleşme olmalıdır. Filtre metriklerinde, filtre metriği bir WHERE yantümcesi olarak yeniden yazılabiliyorsa alt küme önbelleğinden yararlanılabilir.

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, SELECT * FROM product ile SELECT * FROM product, sales eşleşmez.

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. Bkz. Satır Düzeyi Veritabanı Güvenliği Kullanırken Doğru Veritabanı Sonuçları Sağlama.

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.

DISTINCT özelliği aynı olmalıdır

Önbelleğe alınan bir sorgu DISTINCT işlemi ile (örneğin, SELECT DISTINCT...) tekrarlanan kayıtları ortadan kaldırırsa, önbelleğe alınan sütunlara yönelik istekler de DISTINCT işlemini içermelidir. DISTINCT içermeyen aynı sütuna yönelik bir istek önbellek sapmasıdır.

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, qtysold sütununu içeren bir sorgu önbelleğe alınırsa, RANK(qtysold) için yapılan bir istek önbellek sapmasıyla sonuçlanır. Ayrıca, ülke düzeyinde qtysold isteyen bir sorgu, ülke ve bölge düzeyinde qtysold isteyen bir sorgudan önbellek isabeti alabilir.

ORDER BY yantümcesi, select listesindeki sütunlardan oluşmalıdır

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

Satır Düzeyi Veritabanı Güvenliği Kullanırken Doğru Veritabanı Sonuçları Sağlama

Sanal Özel Veritabanı gibi bir satır düzeyi veritabanı güvenliği stratejisi kullanırken, döndürülen veri sonuçları kullanıcının yetkilendirme kimlik bilgilerine bağlıdır.

Bu nedenle Oracle Analitik Bulutu, bir veri kaynağının satır düzeyi veritabanı güvenliği kullanıp kullanmadığını ve hangi değişkenlerin güvenlikle ilgili olduğunu bilmelidir.

Önbellek isabetlerinin sadece tüm güvenliğe duyarlı değişkenleri içeren ve bunlarla eşleşen önbellek girişlerinde gerçekleşmesini sağlamak üzere, Model Yönetim Aracı'nda veritabanı nesnesini ve oturum değişkeni nesnelerini aşağıda belirtildiği gibi doğru konfigüre etmelisiniz:

  • Veritabanı nesnesi. Fiziksel katmanda, Veritabanı iletişim kutusunun Genel sekmesinde Sanal Özel Veritabanı'n seçerek veri kaynağının satır düzeyi veritabanı güvenliğini kullandığını belirtin.

    Paylaşımlı önbelleğe alma ile satır düzeyi veritabanı güvenliği kullanıyorsanız, güvenliğe duyarlı değişkenleri eşleşmeyen önbellek girişlerinin paylaşılmasını önlemek için bu seçeneği belirlemeniz gerekir.

  • Oturum Değişkeni nesnesi. Güvenlikle ilgili değişkenler için Oturum Değişkeni iletişim kutusunda Güvenliğe Duyarlı'yı seçerek, satır düzeyi veritabanı güvenliği stratejisi kullanırken bunların güvenliğe duyarlı olduklarını belirleyin. Bu seçenek, önbellek girişlerinin güvenliğe duyarlı değişkenlerle işaretlenmesini ve güvenliğe duyarlı değişkenin tüm gelen sorgularda eşleşmesini sağlar.

Önbelleği Doldurmak İçin Bir Sorgu Grubu Çalıştırma

Potansiyel önbellek isabeti sayısını en yüksek seviyeye çıkarmak için önbelleği doldurmak üzere bir sorgu grubu çalıştırılabilir.

Aşağıda, önbelleği temel verili hale getirmek için bir sorgu grubu oluştururken kullanılacak sorgu tiplerine yönelik bazı öneriler yer alır.

  • Yaygın önceden oluşturulmuş sorgular. Yaygın olarak çalıştırılan sorgular (özellikle işlenmesi pahalı olanlar) mükemmel önbellek temel verili hale getirme sorgularıdır. Sonuçları kumanda tablolarına gömülü sorgular, yaygın sorgulara iyi örneklerdir.

  • İfade içermeyen SELECT listeleri. SELECT listesi sütunlarındaki ifadelerin ortadan kaldırılması, önbellek isabetlerinin olasılığını artırır. İfade içeren, önbelleğe alınmış bir sütun sadece aynı ifadeyi içeren yeni bir sorguyu yanıtlayabilir. İfade içermeye, önbelleğe alınmış bir sütun o sütun için herhangi bir ifade içeren bir isteği yanıtlayabilir. Örneğin, önbelleğe alınmış şunun gibi bir istek:

    SELECT QUANTITY, REVENUE...
    

    şunun gibi yeni bir sorguyu yanıtlayabilir:

    SELECT QUANTITY/REVENUE... 
    

    ancak tersi olamaz.

  • WHERE yantümcesi yok. Önbelleğe alınan sonuçta WHERE yantümcesi yoksa, projeksiyon listesindeki sütunları içeren herhangi bir WHERE yantümcesini içeren select listesi için önbellek isabeti kurallarına uyan sorguları yanıtlamak için kullanılabilir.

Genellikle önbelleği temel verili hale getirmek için kullanılabilecek en iyi sorgular, veritabanı işleme kaynaklarını yoğun şekilde kullanan ve yeniden gönderilmesi muhtemel olan sorgulardır. Önbelleği çok sayıda satır döndüren basit sorgularla temel verili hale getirmemeye dikkat edin. Bu sorgular (örneğin, SELECT * FROM PRODUCTS, burada PRODUCTS doğrudan tek veritabanı tablosuna eşlenir) çok az veritabanı işlemesi gerektirir. Dezavantajları, önbelleğe almanın azaltmadığı faktörler olan ağ ve disk ek yüküdür.

Oracle Analitik Bulutu, semantik modeli değişkenlerini yenilediğinde, bu semantik modeli değişkenlerini referans gösterip göstermediklerini belirlemek için iş modellerini inceler. Referans gösteriyorlarsa, Oracle Analitik Bulutu bu iş modelleri için tüm önbelleği temizler. Bkz. Semantik Model Değişiklikleri Sorgu Önbelleğini Nasıl Etkiler.

Sorgu Önbelleğini Temel Verili Hale Getirmek İçin Aracıları Kullanma

Oracle Analitik Bulutu sorgu önbelleğini temel verili hale getirmek için aracıları konfigüre edebilirsiniz.

Önbelleği temel verili hale getirmek, kullanıcılar analiz çalıştırırken veya kumanda tablolarına gömülü analizleri görüntülerken yanıt sürelerini iyileştirebilir. Bu verileri yenileyen istekleri çalıştırmak için aracıları çizelgeleyerek bunu yapabilirsiniz.

  1. Oracle Analitik Bulutu'nda Klasik Giriş sayfasını açın ve Aracı'yı seçin (Oluştur bölümü).
  2. Genel sekmesinde Farklı Çalıştır seçeneği için Alıcı'yı seçin. Kişiselleştirilmiş önbellek temel verili hale getirme işlemi, her alıcı için aracı teslimat içeriğini özelleştirmek üzere her alıcının veri görünürlüğünü kullanır.
  3. Çizelge sekmesinde önbelleğin temel verili hale getirilmesini istediğiniz zamanı belirleyin.
  4. İsteğe bağlı: Koşul'u seçin ve bir koşul isteği oluşturun veya seçin. Örneğin çıkartma, dönüştürme ve yükleme işleminin tamamlanma zamanını belirleyen bir iş modeliniz olabilir. Önbellek temel verili hale getirme işleminin başlaması için koşul tetikleyicisi olarak bu iş modelini esas alan bir rapor kullanabilirsiniz.
  5. Teslimat İçeriği sekmesinde, önbelleği temel verili hale getirmek istediğiniz ayrı bir istek veya bir kumanda tablosu sayfasının tamamını seçin. Kumanda tablosu sayfası seçmek zaman kazandırabilir.
  6. Alıcılar sekmesinde, alıcı olarak ayrı kullanıcılar veya gruplar seçin.
  7. Hedefler sekmesinde tüm kullanıcı hedeflerini temizleyin ve Oracle Analitik Sunucusu Önbelleğini seçin.
  8. Sağ üst köşede Kaydet'i seçerek aracıyı kaydedin.

Önbellek temel verili hale getirme aracılarının diğer aracılardan tek farkı, önceki önbelleği otomatik olarak temizlemeleri ve kumanda tablosunda uyarı olarak görünmemeleridir.

Not:

Önbellek temel verili hale getirme aracıları sadece tam eşleştirme sorgularını temizler; bu nedenle eski veriler halen var olabilir. Aracı sorguları özel sorguları veya detaya gitmeleri dikkate almadığından, önbelleğe alma stratejisinin her zaman önbellek temizlemeyi içerdiğine emin olun.

Belirli Tablolar İçin Önbelleği Otomatik Olarak Temizlemek Üzere Model Yönetim Aracı'nı Kullanma

Önbelleği temizlemek, girişleri sorgu önbelleğinden temizler ve içeriğinizi güncel tutar. Model Yönetim Aracı'nda her tablo için Önbellekte Tutma Süresi alanını ayarlayarak belirli tablolar için önbellek girişlerini otomatik olarak temizleyebilirsiniz.

Not:

Semantik Modelleyici kullanıyorsanız, bkz. Fiziksek Bir Tablonun Genel Nitelikleri Nelerdir?

Bu, sık sık güncellenen veri kaynakları için kullanışlıdır. Örneğin, her dakika güncellenen borsa takip ekranı verilerini saklayan bir tablonuz varsa bu tabloya yönelik girişleri 59 saniyede bir temizlemek için Önbellekte Tutma Süresi ayarını kullanabilirsiniz. Bkz. Belirli Fiziksel Tablolar İçin Önbellek ve Önbellekte Tutma Süresi.