Основное отличие использования PERFORM и SELECT в PL/pgSQL заключается в целях выполнения запросов.
SELECT используется для выполнения запросов, которые могут возвращать строки. 14 При формировании команды SELECT любые вхождения имён переменных PL/pgSQL заменяются параметрами запроса. 1 Это позволяет составлять план запроса только один раз, а затем повторно использовать его для последующих вычислений с различными значениями переменных. 1
PERFORM — это специальная форма SELECT без возврата результата. 3 Он используется, когда нужно выполнить какую-то функцию с побочным эффектом, но не возвращающую результат. 3 Например, если добавить в функцию ожидание с помощью pg_sleep() через SELECT-вызов, то получится ошибка, а вариант с PERFORM такой ошибки не вызовет. 3
Таким образом, SELECT предназначен для запросов, которые могут возвращать строки, а PERFORM — для запросов, где результат не важен.