PostgreSQL 기능이 무엇인지 알고 싶습니다.
언제 써야하나요?
어떻게 쓸 수 있습니까?
어떻게 호출 할 수 있습니까?PostgreSQL 함수 란 무엇이며 언제 사용해야합니까?
답변
정의, from wikipedia :
: 는저장 프로시 저는 그 액세스 관계형 데이터베이스 시스템 응용 프로그램에서 사용할 수있는 서브 루틴입니다.
는 은 일반적으로 저장 프로 시저의장점, from wikipedia
오버 헤드 : 저장 프로 시저 문은 데이터베이스에 직접 저장됩니다 때문에, 컴파일 오버 헤드 의 전부 또는 일부를 제거 할 수있다 일반적으로 소프트웨어 응용 프로그램이 인라인 (동적) SQL 쿼리를 데이터베이스로 보내는 상황에서 필요합니다. (...) 네트워크 트래픽의
회피 : 큰 장점 저장 프로 시저 와 함께 그들이 데이터베이스 엔진에서 직접 실행할 수 있다는 것입니다. 프로덕션 시스템에서 일반적으로이 절차는 을 전용 데이터베이스 서버에서 실행하며 이는 액세스되는 데이터를 에 직접 액세스 할 수 있음을 의미합니다. 여기서 이점은 네트워크 통신 비용을 완전히 피할 수 있다는 것입니다. 이것은 일련의 복잡한 SQL 문에 특히 중요한 이됩니다.
비즈니스 로직을 캡슐화 : 저장 프로 시저 프로그래머 가 데이터 관리를 단순화하고 클라이언트 프로그램의 다른 논리를 인코딩 할 필요성을 줄일 수있는 데이터베이스의 API로 비즈니스 로직을 포함 할 수 있습니다. (...) 액세스 권리의
대표 : 많은 시스템에서 저장 프로 시저는 그 프로 시저를 실행하는 사용자가 직접이없는 데이터베이스에 부여 된 액세스 권한이 될 수 있습니다.
SQL 주입 공격으로부터의 보호 : 저장 프로 시저는 주입 공격으로부터 보호하기 위해 이 될 수 있습니다. 스토어드 프로 시저 매개 변수 은 공격자가 SQL 명령을 삽입하더라도 데이터로 처리됩니다. (...)
PostgresSQL 저장 프로 시저에서는 사용자 정의 함수이라고합니다. 정의 예 :
이CREATE FUNCTION somefunc(quantity integer) RETURNS integer AS $$
DECLARE
myvariable integer := 2;
BEGIN
RETURN quantity * myvariable;
END;
$$ LANGUAGE plpgsql;
호출 예를 (당신은 PostgreSQL을에 저장 기능을 정의하는 다른 언어를 사용할 수 있습니다) :
이SELECT somefunc(100);
더 많은 정보는 : http://www.postgresql.org/docs/9.1/static/server-programming.html
PostgreSQL을 실행 Jav를 포함한 12 개 이상의 프로그래밍 언어에서 저장 프로 시저 Perl, Python, Ruby, Tcl, C/C++ 및 그 자체의 PL/pgSQL과 같은 Oracle PL/SQL과 유사합니다.
저장 프로 시저의 사용은 사용자의 요구에 따라 내 의견 저장 프로 시저 만 어떤 경우에는 유용하지 적 ...
내가 저장 사용했던, 프로그램의 논리에 따라 달라집니다 프로 시저가 다중 데이터베이스 서버 응용 프로그램에있는 경우이 경우 저장 프로 시저를 사용하면 다른 데이터베이스 서버 유형에서 실행되도록 수정해야하는 쿼리가있는 경우에 매우 유용 할 수 있습니다. 프로 시저를 호출하고 프로그램에서 호출하여 클라이언트 코드에서 변경하지 않고 원하는 결과 세트를 실행하고 검색하는지 확인하십시오.
PostgreSQL에서 저장 프로 시저를 만드는 방법은 설명서 this page을 참조하십시오.
주요 이점은 네트워크 트래픽 오버 헤드를 줄이는 것입니다. 저장 프로 시저는 비즈니스 논리 또는 논리 타이어와 거의 동일합니다 (정확하게는 아님). 그것의 주요 장점은 동적 엔터 프라이즈 응용 프로그램을 만드는 것입니다. 당신은 좋은 제품의 100s가 동적 데이터베이스 구조의 부족 때문에 실패 찾을 수 있습니다. 저장 프로 시저, 함수, 트리거, 시퀀스, 인덱스 및 데이터베이스의 관계형 특성은 훌륭한 응용 프로그램을 만드는 실제 키입니다. 내 회사는 항상 저장 프로 시저의 도움으로 클라이언트 측 논리 계층을 줄이려고합니다. 중요한 로직의 대부분은 저장 프로 시저에 저장되어 프로그래머와 테스터를 행복하게 만들고 타임 라인을 충족시킵니다.
- 1. QVariant 란 무엇이며 언제 사용해야합니까?
- 2. 왜 SPATIAL INDEX 란 무엇이며 언제 사용해야합니까?
- 3. BigInteger 란 무엇이며 언제 사용합니까?
- 4. 동적 SQL 쿼리 란 무엇이며 언제 사용합니까?
- 5. 서비스 버스 란 무엇이며 언제 필요합니까?
- 6. bltoolkit의 BLTgen 도구 란 무엇이며 어떻게 사용해야합니까?
- 7. .net 동적 데이터 란 무엇이며 왜 사용해야합니까?
- 8. SEAM 프레임 워크 란 무엇이며 왜 사용해야합니까?
- 9. C#의 필드 란 무엇이며 왜 사용해야합니까?
- 10. JAXB 란 무엇이며 왜 JAXB를 사용해야합니까?
- 11. 삭제시 ROWLOCK의 목적은 무엇이며 언제 사용해야합니까?
- 12. 사용자 정의 함수 란 무엇이며 어떻게 실행합니까?
- 13. Request.InputStream이란 무엇이며 언제 사용합니까?
- 14. "개체 데이터베이스"란 무엇이며 언제 사용할 수 있습니까?
- 15. AppDelegate 란 무엇이며 언제 AppDelegate를 사용해야하는지 어떻게 알 수 있습니까?
- 16. 역방향 프록시 란 무엇이며 왜 Node.JS와 함께 사용해야합니까?
- 17. 언제 EF4에서 POCO를 사용해야합니까?
- 18. php : // input & php : // 출력의 의미는 무엇이며 언제 사용해야합니까?
- 19. phtml이란 무엇이며 .php가 아닌 .phtml 확장자는 언제 사용해야합니까?
- 20. ICustomTypeDescriptor이란 무엇이며 언제 사용합니까?
- 21. CGI 란 무엇이며 CGI 스크립트 란 무엇입니까?
- 22. MVVM이란 무엇이며 사용해야합니까?
- 23. 정적 라이브러리 란 무엇이며 동적 라이브러리 란 무엇이며 그 차이점은 무엇이며 사용하는 것이 더 좋은 이유는 무엇입니까?
- 24. 콜백 함수 란 무엇이며 OOP와 함께 사용하는 방법
- 25. 작업자 스레드 란 무엇이며 작성한 스레드와 다른 점은 무엇입니까?
- 26. master.dbo.spt_values 란 무엇이며 어떻게 사용합니까?
- 27. 들소 란 무엇이며 왜 유용합니까?
- 28. SAT 란 무엇이며 무엇이 좋은가?
- 29. @private 란 무엇이며 무엇을 사용합니까?
- 30. TinyPG 란 무엇이며 어떻게 작동합니까?
In PostgreSQL 저장 프로 시저에서 "사용자 정의 함수"라고합니다. – filiprem