Aracılığıyla paylaş


Sorgu sonuçları önbelleği

Şunlar için geçerlidir: ✅Microsoft Fabric

Kusto bir sorgu sonuçları önbelleği içerir. Sorguyu gönderirken önbelleğe alınmış sonuçları almayı seçebilirsiniz. Sorgunuzun sonuçları önbellek tarafından döndürülebiliyorsa daha iyi sorgu performansı ve daha düşük kaynak tüketimiyle karşılaşırsınız. Ancak, bu performans sonuçlarda bazı "eskime" pahasına gelir.

Önbelleği kullanma

Sorgu sonuçları önbelleğini query_results_cache_max_age kullanmak için seçeneğini sorgunun bir parçası olarak ayarlayın. Bu seçeneği sorgu metninde veya istemci isteği özelliği olarak ayarlayabilirsiniz. Örneğin:

set query_results_cache_max_age = time(5m);
GithubEvent
| where CreatedAt > ago(180d)
| summarize arg_max(CreatedAt, Type) by Id

Seçenek değeri, sorgu başlangıç zamanından ölçülen sonuç önbelleğinin en büyük "yaşını" gösteren bir timespan değerdir. Ayarlanan zaman aralığının ötesinde önbellek girdisi eskidir ve bir daha kullanılmaz. 0 değerinin ayarlanması, seçeneğin ayarlanmamasıyla eşdeğerdir.

Sorgular arasındaki uyumluluk

Özdeş sorgular

Sorgu sonuçları önbelleği yalnızca önceki önbelleğe alınmış sorguyla "özdeş" olarak kabul edilen sorgular için sonuçları döndürür. Aşağıdaki koşulların tümü karşılanırsa iki sorgu aynı kabul edilir:

  • İki sorgu aynı gösterime sahiptir (UTF-8 dizeleri gibi).
  • İki sorgu aynı veritabanında yapılır.
  • İki sorgu aynı istemci isteği özelliklerini paylaşır. Aşağıdaki özellikler önbelleğe alma amacıyla yoksayılır:
    • ClientRequestId
    • Uygulama
    • User

Uyumsuz sorgular

Aşağıdaki koşullardan herhangi biri doğruysa sorgu sonuçları önbelleğe alınmaz:

Geçerli önbellek girdisi yok

Zaman kısıtlamalarını karşılayan önbelleğe alınmış bir sonuç bulunamazsa veya önbellekte "özdeş" bir sorgudan önbelleğe alınmış bir sonuç yoksa, sorgu yürütülür ve sonuçları şu süre boyunca önbelleğe alınır:

  • Sorgu yürütmesi başarıyla tamamlanırsa ve
  • Sorgu sonuçları boyutu 16 MB'ı aşmaz.

Önbellekten alınan sonuçlar

Hizmet, sorgu sonuçlarının önbellekten sunulduğuna nasıl işaret eder? Bir sorguyu yanıtlarken Kusto, sütun ve sütun içeren başka bir Value yanıt tablosu gönderir. Önbelleğe alınan sorgu sonuçlarında bu tabloya başka bir satır eklenir:

  • Satırın Key sütunu dizeyi içerir ServerCache
  • Satırın Value sütunu iki alanı olan bir özellik paketi içerir:
    • OriginalClientRequestId- Özgün isteğin ClientRequestId değerini belirtir.
    • OriginalStartedOn - Özgün isteğin yürütme başlangıç saatini belirtir.

Sorgu tutarlılığı

zayıf tutarlılık kullanan sorgular farklı küme düğümlerinde işlenebilir. Önbellek küme düğümleri tarafından paylaşılmadığından, her düğümün kendi özel depolama alanında ayrılmış bir önbelleği vardır. Bu nedenle, iki özdeş sorgu farklı düğümlere gelirse, sorgu yürütülür ve her iki düğümde de önbelleğe alınır. Sorgu tutarlılığını affinitizedweakconsistencyolarak ayarlayarak, aynı sorgu başlığında aynı olan zayıf tutarlılık sorgularının yer aldığından emin olabilir ve böylece önbellek isabet hızını artırabilirsiniz. Bu,güçlü tutarlılık kullanılırken ilgili değildir.

Yönetim

Aşağıdaki yönetim ve gözlemlenebilirlik komutları desteklenir:

  • Sorgu sonuçları önbelleğini göster: Sorgu sonuçları önbelleğiyle ilgili istatistikleri döndürür.
  • Sorgu sonuçları önbelleğini temizle: Sorgu sonuçları önbelleğini temizler.
  • Sorgu önbelleği girdisini yenile: (OptionQueryResultsCacheForceRefresh)query_results_cache_force_refresh kullanılarak belirli bir sorgu önbellek girdisi yenilenebilir. olarak ayarlandığında true, bu komut mevcut bir önbellek mevcut olduğunda sorgu sonuçları önbelleğinin de yenilenmesini zorlar. Bu işlem, sorgu sonuçlarının sorgu için kullanılabilir olmasını gerektiren senaryolarda kullanışlıdır. Bu özellik 'query_results_cache_max_age' ile birlikte kullanılmalıdır ve ClientRequestProperties nesnesi aracılığıyla gönderilmelidir. özelliği bir 'set' deyiminin parçası olamaz.

Kapasite

Önbellek kapasitesi şu anda küme düğümü başına 1 GB olarak sabittir. Çıkarma ilkesi LRU'dur.

Parça düzeyi sorgu sonuçları önbelleği

Canlı pano gibi en güncel sonuçları gerektiren senaryolar için parça düzeyinde sorgu sonuçları önbelleğini kullanabilirsiniz. Örneğin, her 10 saniyede bir çalışan ve son 1 saate yayılan bir sorgu, ara sorgu sonuçlarını depolama (parça) düzeyinde önbelleğe alma avantajından yararlanabilir.

Parça düzeyi sorgu sonuçları önbelleği, kullanımda olduğunda Query results cache otomatik olarak etkinleştirilir. ile aynı önbelleği Query results cachepaylaştığından, aynı kapasite ve çıkarma ilkeleri uygulanır.

Sözdizimi

set query_results_cache_per_shard; Sorgu

Not

Bu seçenek sorgu metninde veya istemci isteği özelliği olarak ayarlanabilir.

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Örnek

set query_results_cache_per_shard;
GithubEvent
| where CreatedAt > ago(180d)
| summarize arg_max(CreatedAt, Type) by Id