Table valued vs OUT function's performance in postgresql

Hello fellow postgresql experts,

I was wandering about the opportunity to use table-valued functions vs functions returning output sets.  From your experience, which one,  assuming all indexes are in place, presents the best performance regarding :

> Concurrent accesses.  
> Handling by the optimizer
> CPU and IO execution usage.
> Locking

I would appreciate you enlighten me on the above.  Thank you for your help.
LVL 23
Racim BOUDJAKDJIDatabase Architect - Dba - Data ScientistAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

earth man2Commented:
From the docs...
Note: The current implementation of RETURN NEXT and RETURN QUERY stores the entire result set before returning from the function, as discussed above. That means that if a PL/pgSQL function produces a very large result set, performance might be poor: data will be written to disk to avoid memory exhaustion, but the function itself will not return until the entire result set has been generated. A future version of PL/pgSQL might allow users to define set-returning functions that do not have this limitation. Currently, the point at which data begins being written to disk is controlled by the work_mem configuration variable.
 Administrators who have sufficient memory to store larger result sets
 in memory should consider increasing this parameter.

Returns table an returns setof are essentially equivalent.
If you have very large datasets then you are better of using libpq functions or cursors.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
PostgreSQL

From novice to tech pro — start learning today.