WITH
Sunucunun filtreleri CTE sorgularına itmesine, CTE'nin dışına ortak ifadeleri çekmesine izin verilmeyen bir optimizasyon perdesi gibi davranan sorgulara (ortak tablo ifadeleri veya CTE'ler) sık sık atıfta bulunuyorum. SQL standartlarının gerektirdiği bir davranış olması.
CTE'ler kesinlikle PostgreSQL'de bir optimizasyon perdesidir ... ama bu standart mı, yoksa sadece uygulama detayı mı gerekli?
Örneğin, bu posta listesi gönderileri standart olduğunu iddia eder veya önerir:
Bir yorumda bahsettikten sonra bana nerede belirtildiği soruldu - ve sadece SQL taslak taslaklarına baktıktan sonra : 2008'de erişim hakkım var.
Standardı henüz yoğun bir şekilde incelemedim, bu yüzden aşağıdakilerden birinin önerisini umuyorum: PostgreSQL'deki CTE'lerin optimizasyon esası standart tarafından gerekli midir? Ve eğer öyleyse, nerede belirtildi? Yoksa Pg posta listesindeki ifadeler hatalı mı?
Ayrıca yapılacaklar listesindeki iş parçacığı CTE optimizasyon çit bakın ? .
STABLE
ya daIMMUTABLE
işlev gören satır içi CTE'lerin ücretsiz olacağı anlamına geliyor .