트리거를 사용하여 수행 할 수있는 많은 것들이 를 사용하여 구현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 스포츠 토토 이벤트에 대한 속성 사양은 비활성화되었습니다 (
스포츠 토토은 트리거보다 훨씬 느리게됩니다. 행동은 크고 나쁜 자격을 갖춘 조인, 상황을 초래합니다.