41.7. 스포츠 토토 사이트 대 트리거

트리거를 사용하여 수행 할 수있는 많은 것들도를 사용하여 구현할 수 있습니다postgresql스포츠 토토 사이트 시스템. 스포츠 토토 사이트으로 구현할 수없는 것 중 하나는 어떤 종류의 제약, 특히 외국 키입니다. 명령을 다시 쓰는 자격있는 스포츠 토토 사이트을 배치 할 수 있습니다.아무것도열의 값이 다른 테이블에 나타나지 않는 경우. 그러나 데이터가 조용히 버려지고 좋은 생각이 아닙니다. 유효한 값에 대한 검사가 필요하고 유효하지 않은 값의 경우 오류 메시지를 생성 해야하는 경우 트리거가 수행해야합니다..

이 장에서는 스포츠 토토 사이트을 사용하여보기를 업데이트하는 데 중점을 두었습니다. 이 장의 모든 업데이트 스포츠 토토 사이트 예제는를 사용하여 구현할 수도 있습니다.대신보기를 트리거합니다. 이러한 트리거를 작성하는 것은 종종 스포츠 토토 사이트을 작성하는 것보다 쉽습니다. 특히 업데이트를 수행하기 위해 복잡한 논리가 필요한 경우

두 가지 모두에서 구현할 수있는 것들에 대해서는 데이터베이스의 사용에 달려 있습니다. 영향을받는 각 행에 대해 트리거가 한 번 시작됩니다. 스포츠 토토 사이트은 쿼리를 수정하거나 추가 쿼리를 생성합니다. 따라서 많은 행이 한 명령문에 영향을 미치는 경우, 하나의 추가 명령을 발행하는 스포츠 토토 사이트은 모든 단일 행을 요구하는 트리거보다 빠르며 여러 번해야 할 일을 다시 결정해야합니다. 그러나 트리거 접근법은 스포츠 토토 사이트 접근 방식보다 개념적으로 훨씬 간단하며 초보자가 올바르게되기가 더 쉽습니다.

여기서 우리는 한 가지 상황에서 스포츠 토토 사이트 대 트리거 선택이 어떻게 진행되는지에 대한 예를 보여줍니다. 두 개의 테이블이 있습니다 :

테이블 컴퓨터 생성 (
    호스트 이름 텍스트 - 색인
    제조업체 텍스트 - 색인
);

테이블 소프트웨어 생성 (
    소프트웨어 텍스트 - 색인
    hostname 텍스트 - 인덱스
);

두 테이블 모두 수천 개의 행이 있고 인덱스는hostname고유합니다. 스포츠 토토 사이트 또는 트리거는 행을 삭제하는 제한 조건을 구현해야합니다.소프트웨어삭제 된 컴퓨터를 참조하십시오. 방아쇠는이 명령을 사용합니다.

hostname = $ 1; 소프트웨어에서 삭제

트리거가 삭제 된 각 개별 행마다 트리거가 호출되므로컴퓨터,이 명령에 대한 계획을 준비하고 저장할 수 있으며hostname매개 변수의 값. 스포츠 토토 사이트은 다음과 같이 작성됩니다.

컴퓨터로 삭제에서 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를 사용한 색인 스캔
  - 소프트웨어에서 soft_hostidx를 사용한 색인 스캔

트리거와 스포츠 토토 사이트 구현 사이의 속도에는 큰 차이가 없습니다.

다음 삭제와 함께 우리는 어디에있는 2000 개의 컴퓨터를 모두 제거하고 싶습니다hostname시작old. 그렇게 할 두 가지 명령이 있습니다. 하나는 :

hostName = 'old'인 컴퓨터에서 삭제
                       및 hostname < 'olo'

스포츠 토토 사이트에 의해 추가 된 명령은 다음과 같습니다.

Computer.HostName = 'Old'및 Computer.HostName < '올레'소프트웨어에서 삭제
                       및 Software.HostName = Computer.HostName;

계획과 함께

해시 조인
  - 소프트웨어에서 SEQ 스캔
  - 해시
    - 컴퓨터에서 comp_hostidx를 사용한 색인 스캔

다른 가능한 명령은 다음과 같습니다.

호스트 이름 ~ '^Old';의 컴퓨터에서 삭제

스포츠 토토 사이트에 의해 추가 된 명령에 대한 다음 실행 계획을 초래합니다.

NestLoop
  - 컴퓨터에서 comp_hostidx를 사용한 색인 스캔
  - 소프트웨어에서 soft_hostidx를 사용한 색인 스캔

이것은 플래너가 자격이 있음을 깨닫지 못한다는 것을 보여줍니다.hostnamein컴퓨터인덱스 스캔에도 사용될 수 있습니다소프트웨어여러 자격 표현이 결합 된 경우and, 이것은 명령의 일반 표현 버전에서하는 일입니다. 삭제 해야하는 2000 년 기존 컴퓨터 각각에 대해 트리거가 한 번 호출되며, 한 번의 인덱스 스캔이 발생합니다컴퓨터및 2000 인덱스 스캔소프트웨어. 스포츠 토토 사이트 구현은 인덱스를 사용하는 두 가지 명령으로 수행됩니다. 그리고 그것은 표의 전체 크기에 따라 다릅니다소프트웨어순차적 스캔 상황에서 스포츠 토토 사이트이 여전히 더 빠를 지 여부. SPI 관리자를 통한 트리거에서 2000 명령 실행은 모든 인덱스 블록이 곧 캐시에 있더라도 시간이 걸립니다.

우리가 보는 마지막 명령은 다음과 같습니다.

제조업체가있는 컴퓨터에서 삭제 = 'bim';

다시 많은 행이 삭제 될 수 있습니다컴퓨터. 따라서 트리거는 집행자를 통해 다시 많은 명령을 실행합니다. 스포츠 토토 사이트에 의해 생성 된 명령은 다음과 같습니다.

Computer.Manufacturer = 'BIM'소프트웨어에서 삭제
                       및 Software.HostName = Computer.HostName;

해당 명령에 대한 계획은 다시 두 개의 인덱스 스캔을 통해 중첩 된 루프가 될 것입니다.컴퓨터:

NestLoop
  - 컴퓨터에서 comp_manufidx를 사용한 색인 스캔
  - 소프트웨어에서 soft_hostidx를 사용한 색인 스캔

이 경우, 스포츠 토토 사이트 시스템의 추가 명령은 명령의 영향을받는 행의 수와 다소 독립적입니다.

요약은 행동의 행동이 크고 나쁘게 자격을 갖춘 조인, 플래너가 실패하는 상황 인 경우 스포츠 토토 사이트이 트리거보다 상당히 느려집니다..

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면