But *only* use EXECUTE for dynamic SQL - a queryplan is always generated when the EXECUTE is performed. If you use PERFORM or SELECT the queryplan is generated only once per backend instance, which is about 1/3 faster for simple queries. At least, this was the performance difference measured by one benchmarker who measured query performance a few months ago.