개발 버전 :Devel
지원되지 않은 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 39.7. 윈 토토 대 트리거버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

17.5. 스포츠 토토 대 트리거

트리거를 사용하여 수행 할 수있는 많은 것들이 를 사용하여 구현Postgres규칙 시스템. 현재 규칙에 따라 구현할 수없는 것은입니다

반면에 삽입에 발사 된 트리거 스포츠 토토과 동일한 작업을 수행하고 다른 곳에 데이터를 넣고

둘 다 구현할 수있는 것들에 대해서는 데이터베이스 사용이 가장 좋습니다.

예 : 두 개의 테이블이 있습니다

테이블 컴퓨터 생성 (        hostname 텍스트 - 인덱스
두 테이블 모두 수천 개의 행과 색인이 있습니다.호스트 이름은 고유합니다.
hostname = $ 1; 소프트웨어에서 삭제
준비되고 저장된 계획에서 호스트 이름을 전달합니다.매개 변수.
컴퓨터로 삭제대로 Computer_del을 작성하십시오        HostName = Old.HostName; 인 소프트웨어에서 삭제하십시오.
이제 우리는 다른 유형의 삭제를 살펴 봅니다. A의 경우
hostName = 'mypc.local.net'; computer에서 삭제
테이블 컴퓨터는 index (fast)와 쿼리로 스캔됩니다.트리거가 발행 한 것은 인덱스 스캔도 있습니다 (빠른).
Computer.HostName = 'mypc.local.net'소프트웨어에서 삭제                           및 Software.HostName = Computer.HostName;
적절한 지수 설정이 있으므로 플래너는 그렇습니다 계획 만들기
NestLoop      - 컴퓨터에서 comp_hostidx를 사용한 색인 스캔
따라서 속도에는 그다지 큰 차이가 없을 것입니다.트리거 및 스포츠 토토 구현.
hostName = 'old'인 컴퓨터에서 삭제                           및 hostname < 'olo'
스포츠 토토 쿼리 계획이 A
해시 조인      - 소프트웨어에서 SEQ 스캔
다른 가능한 쿼리는 A입니다.
호스트 이름 ~ '^Old';의 컴퓨터에서 삭제
실행 계획과 함께
NestLoop      - 컴퓨터에서 comp_hostidx를 사용한 색인 스캔
이것은 플래너가컴퓨터의 호스트 이름에 대한 자격도

우리가 보는 마지막 쿼리는 A입니다.

manufacurer = 'bim'; 여기서 컴퓨터에서 삭제
다시 많은 행이 삭제 될 수 있습니다.컴퓨터.
NestLoop      - 컴퓨터에서 comp_manufidx를 사용한 색인 스캔
스포츠 토토 쿼리에서 결과
Computer.ManuFacurer = 'BIM'소프트웨어에서 삭제                           및 Software.HostName = Computer.HostName;
이 경우 스포츠 토토 시스템의 추가 쿼리영향을받는 행의 수와는 다소 독립적입니다.

또 다른 상황은 업데이트의 사례입니다. 조치를 수행 해야하는 경우 속성 변경.Postgres버전 6.4, the 스포츠 토토 이벤트에 대한 속성 사양은 비활성화되었습니다 (

스포츠 토토은 트리거보다 훨씬 느리게됩니다. 행동은 크고 나쁜 자격을 갖춘 조인, 상황을 초래합니다.