트리거를 사용하여 수행 할 수있는 많은 것들도postgresql규칙 시스템. 현재 규칙에 따라 구현할 수없는 것은입니다
반면에 삽입에 삽입 된 트리거
둘 다 구현할 수있는 것들에 대해서는
예 : 두 개의 테이블이 있습니다
테이블 컴퓨터 생성 (
두 테이블 모두 수천 개의 행이 있고 색인은hostname고유합니다. 그만큼hostname열에는 전체 자격이 있습니다
HostName = $ 1; 소프트웨어에서 삭제
준비되고 저장된 계획에서hostname매개 변수에서. 스포츠 토토은 될 것입니다
컴퓨터로 삭제대로 Computer_del을 작성하십시오
이제 우리는 다른 유형의 삭제를 살펴 봅니다. 의 경우
hostName = 'mypc.local.net'; computer에서 삭제
테이블 컴퓨터는 인덱스 (빠른)와 쿼리로 스캔됩니다.
Computer.HostName = 'mypc.local.net'소프트웨어에서 삭제
적절한 인덱스 설정이 있으므로 플래너는 그렇습니다
NestLoop
그래서 속도에는 그다지 차이가 없을 것입니다.hostname'old'로 시작합니다. 두 가지가 있습니다
hostName = 'old'인 컴퓨터에서 삭제
스포츠 토토 쿼리 계획이 A
해시 조인
다른 가능한 쿼리는 A입니다.
HostName ~ '^Old';가있는 컴퓨터에서 삭제
실행 계획과 함께
NestLoop
이것은 플래너가hostnameon
우리가 보는 마지막 쿼리는 A입니다.
manufacurer = 'bim'; 컴퓨터에서 삭제
다시 많은 행이 삭제 될 수 있습니다.
NestLoop
스포츠 토토 쿼리에서 결과
Computer.ManuFacurer = 'BIM'소프트웨어에서 삭제
이 경우 스포츠 토토 시스템의 추가 쿼리
또 다른 상황은 업데이트의 사례입니다.PostgreSQL버전 6.4, the
스포츠 토토은 트리거보다 훨씬 느리게됩니다.