Quantcast
Viewing all articles
Browse latest Browse all 207

CTE where to place the where clause to filter rows sooner (in postgresql)?

I have function with CTE which looks like this:

function param(p_userId, p_templateId)    with a(select...),         b (select..),          c (insert..returning..),          d (update..returning..),         ...k(select..)    insert ...     select * from k     where  userId = p_userId     and    templateId = p_templateId

I'm able to put the where clause right at the begining in the a CTE. If I place the condition at the end like I have it now, will it filtered the rows out at the earliest or at the latest time? What is faster?

Basically what I do is, in the CTE's which appear sooner, like the a or b, (rather then k), I'm prefetching data or precalculating columns in order to use them later in the following CTEs.

Hope this question is still not too vague.


Viewing all articles
Browse latest Browse all 207

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>