Я бы предпочел вообще опустить функции и переписать запросы так, чтобы функции не использовались. Любая функция, которая выбирает данные (особенно с использованием «сложного соединения»), является верным способом замедлить ваш запрос, поскольку функция должна выполняться один раз для каждой строки, обрабатываемой (даже не обязательно возвращаемой) основным запросом, возможно, 1000 с 100 000) раз.