2016-05-04 31 views
6

AWS Redshift'e karşı test yapıyorum ve gerçek dünya senaryosunu çoğaltmak için Test sorgularıma, yanlış bir performans resmi vermemek için önbelleğe alınmaması gerekiyor. Sorgulama işlemleri arasında Redshift önbelleğini temizlemenin bir yolu var mı?AWS Redshift'de önbelleği temizle

cevap

1

Bildiğim kadarıyla - yapamazsınız. Ancak, performans nedenleri ve 'gerçek dünya performansı' için, bahsettiğiniz gibi, ilk çalıştırmaları atmanız ve sonraki göstergelerden performans göstergelerini sıcak önbelleğe karşı kullanmanız gerekir. Bu, en kötü durum senaryosunu veren, soğuk önbelleğe karşı koşmaktan daha gerçek bir dünyaya benziyor. Soğuk önbellek performansının ölçülmesinde ısrar ederseniz, en basit (zaman alıcı olmasına rağmen) çözüm, her soğuk çalıştırmadan sonra kümeyi yeniden başlatmaktır.

+1

. "LRU önbelleği, kümelenme yeniden başlatmalarıyla devam ediyor, ancak bakım yükseltmeleriyle siliniyor." Ama sıcak önbellek kullanmakla ilgili haklısınız çünkü "bir sorguyu ilk kez çalıştırdığınızda performansı yanıltıcı olabilir. Normal performansını belirlemek için her zaman bir sorguyu ikinci kez çalıştırmalısınız." – rkulla

+0

Ancak gerçekte pek çok uygulama bir dizi farklı sorgu çalıştırıyor. LRU önbelleğinin işlenmesi için çok fazla. Sonuç olarak, LRU önbelleği yenilerini oluşturmak için bazı önbellek öğelerini başlatacak. O zaman, 'soğuk' sorgu performansına dönüyorsunuz. Her zaman en yavaş 'soğuk' sorgunuzu geliştirmeye çalışmak önemlidir, çünkü bu tekrar son kullanıcıya olacaktır. – user2326106

0

Sana enable_result_cache_for_session kapalıysa documentation

itibaren off

değerini enable_result_cache_for_session ayarlayarak test oturumları için önbelleği devre dışı bırakabilir inanıyoruz, Amazon Redshift sonuçları önbellek yok sayar ve tüm sorguları çalıştırır gönderildikleri zaman. https://docs.aws.amazon.com/redshift/latest/dg/c-query-performance.html ya işe yaramaz başlatmadan göre