Det uppskattas till 1 000 rader
1000
uppskattade rader är ett standardvärde dokumenterat i SKAPA FUNKTION
:
När en funktion förklaras flyktig ber den om att den inte ska infogas, så detta standardvärde för result_rader
håller.
Å andra sidan, när den infogas i en fråga som i ditt andra test, kommer antalet rader att uppskattas som om funktionens kropp hade flyttats in i frågan och funktionsdeklarationen inte existerade. Detta leder i det andra testet till en exakt uppskattning sedan VALUES
klausul kan utvärderas direkt.
Vad exakt gör planeraren här, och var kan jag läsa lite dokumentation om det?
I allmänhet förklaras inte planerarens optimeringsstrategier i huvuddokumentationen. De diskuteras i e-postlistor och nämns i källkodskommentarerna, som lyckligtvis tenderar att vara exceptionellt tydliga och välskrivna (jämfört med genomsnittlig källkod). När det gäller funktionsinlining tror jag på kommentarerna från inline_set_returning_functions och inline_set_returning_function avslöja de flesta av reglerna som driver just denna optimering. (varning:ovanstående länkar finns i den aktuella huvudgrenen som kan ändras eller avvika när som helst).