2012-02-14 27 views
6

Özellikle daha iyi olan veritabanlarını ve özellikle sqlite3'ü daha iyi anlamaya çalışın:sqlite3 görünümler performansı etkiler mi?

sqlite3'teki görünümler genellikle karmaşık bir sorgunun bir dizi küçük gruba ayrılmasına izin veren bir organizasyonel özelliktir; veya görüntüleme yapmak aslında onları kullanan sorguların performansını etkiler mi?

Görünümlerin, şemaun bir parçası olarak veritabanında saklandığını fark ettim. Bağlı tablolar güncellendikçe dinamik olarak güncellenen diskte saklanan görünümlerdir; ya da talep üzerine değerlendiriliyorlar mı?

Teşekkürler. Görünümler her zaman isteğe bağlı olarak (sqlite3 veya başka bir şekilde) yürütülür, böylece döndürdükleri sonuçlar hiçbir zaman kalıcı olarak depolanmaz. Page 231

+0

Bunu bir blog gönderisinden gönderin: "Sürekli erişmekte olduğunuz veriler için görünümleri kullanmaktan kaçının. Bunu karşılayabiliyorsanız, geçici tablolar oluşturun ve verileri buraya ekleyin. Bu, görünüm değerlendirmesinin getirdiği ek yükü ortadan kaldıracaktır. " Burada bulabilirsiniz: http://katastrophos.net/andre/blog/2007/01/04/sqlite-performance-tuning-and-optimization-on-embedded-systems/ Bunun doğru olup olmadığını bilmiyorum. – Joelmob

cevap

9

Özellikle, sqlite3 ile konuşamamakla birlikte, performans ayrıştırıcı/planlayıcı her yürütme sırasında raw sql'yi yeniden ayırmak zorunda kalmadan, görünümleri genellikle biraz daha az ek yükü olacaktır. Bir kez ayrıştırabilir, yürütme stratejisini depolayabilir ve daha sonra sorguyu her çalıştırıldığında kullanabilirsiniz.

Bu konuda gördüğünüz performans artışı genel olarak küçük şeyler olacak, büyük şemalarda. Gerçekten sadece hızlı bir sorguyu sık sık yürütüyorsanız yardımcı olur. Yavaş bir sorguyu seyrek olarak yürütürseniz, sorguyu ayrıştırmakla ilişkili ek yük önemsizdir. Görüşler elbette güzel olan bir organizasyon seviyesi sağlar.

İlgili konular