레이블: 최대 연결 레코드 테이블 색상 다중 구문 분석 참조 배열
Where 문 조건의 순서를 작성하여 SQL 질의의 효율성을 향상시키는 방법
우리는 SQL 뿐만 아니라 성능이 우수한 SQL 문도 써야 한다. (1) 가장 효율적인 테이블 이름 순서 선택 (규칙 기반 최적기에서만 유효): Oracle 파서는 FROM 절의 테이블 이름을 오른쪽에서 왼쪽으로 처리하고 FROM 절에 마지막으로 기록된 테이블 (기본 테이블 구동 테이블) 이 먼저 처리됩니다. From 절에 여러 테이블이 포함된 경우 레코드 수가 가장 적은 테이블을 기본 테이블로 선택해야 합니다. 3 개 이상의 테이블이 쿼리에 참여하는 경우 교차 테이블을 기본 테이블로 선택해야 합니다. 기본 테이블은 다른 테이블에서 참조하는 테이블입니다. (2)WHERE 절의 연결 순서: Oracle 은 WHERE 절을 상향식 순서로 구문 분석합니다. 이 원칙에 따라 테이블과 테이블 간의 연결은 다른 WHERE 조건보다 먼저 작성되어야 하며, 최대 레코드 수를 필터링할 수 있는 조건은 WHERE 절의 끝에 기록되어야 합니다. 중국. 역장 역 (3) 이용을 피하십니까? *? : 해결 중 Oracle 은? *? 데이터 사전을 질의하여 모든 열 이름을 차례로 변환합니다. 즉, 더 많은 시간이 소요됩니다. (4) 데이터베이스에 대한 액세스 감소: Oracle 은 SQL 문 구문 분석, 인덱스 활용도 추정, 변수 바인딩, 블록 읽기 등 내부적으로 많은 작업을 수행했습니다. (5) SQL*Plus, SQL*Forms 및 Pro*C 에서 ARRAYSIZE 매개변수를 재설정하면 데이터베이스 액세스당 검색된 데이터의 양이 증가합니다. 권장 값은 200 입니다. (6) DECODE 함수를 사용하여 처리 시간 단축: DECODE 함수를 사용하여 동일한 레코드를 두 번 스캔하거나 동일한 테이블을 연결하지 않도록 합니다. Where 문 조건의 순서를 작성하여 SQL 질의의 효율성을 향상시키는 방법