질문:
활용할 때 어떻게 효율적으로 결과를 정렬하고 제한할 수 있습니까? getStuff와 같은 SQL 테이블 함수? 함수 외부에서 주문 및 제한하거나 plpgsql을 사용하는 것이 고려되고 있습니다. 더 나은 접근 방식이 있습니까?
답변:
처음 모양에도 불구하고 plpgsql 함수는 보다 복잡한 시나리오를 처리하는 데 선호되는 옵션입니다. 쿼리 플래너가 외부 쿼리 컨텍스트 내에서 코드를 완전히 최적화할 수 없는 plpgsql 함수가 중첩된 경우에만 성능이 저하될 수 있습니다.
과도한 CASE를 방지하는 단순화된 plpgsql 함수 절:
CREATE OR REPLACE FUNCTION get_stuff(_param text, _orderby text, _limit int) RETURNS SETOF stuff AS $func$ BEGIN RETURN QUERY EXECUTE ' SELECT * FROM stuff WHERE col = ORDER BY ' || quote_ident(_orderby) || ' ASC LIMIT ' USING _param, _limit; END $func$ LANGUAGE plpgsql;
사용법:
SELECT * FROM get_stuff('hello', 'col2', 100);
참고:
위 내용은 PostgreSQL 테이블 함수의 결과를 효율적으로 정렬하고 제한하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!