> 데이터 베이스 > Oracle > Oracle 쿼리 실행 계획 요약

Oracle 쿼리 실행 계획 요약

WBOY
풀어 주다: 2022-06-08 17:25:23
앞으로
2139명이 탐색했습니다.

이 기사에서는 Oracle에 대한 관련 지식을 제공하며, SQL 문의 데이터베이스 실행의 구체적인 단계와 프로세스인 쿼리 실행 계획에 대한 관련 내용을 주로 소개합니다. 모두에게 유용합니다.

Oracle 쿼리 실행 계획 요약

추천 튜토리얼: "Oracle Video Tutorial"

실행 계획(Execution Plan)은 쿼리 계획(Query Plan)이라고도 하며 데이터베이스가 SQL 문을 실행하는 구체적인 단계 및 프로세스입니다. SQL 쿼리 문의 실행 계획에는 주로 다음이 포함됩니다.

  • 테이블에 액세스하는 방법. 데이터베이스는 인덱스 또는 전체 테이블 스캔을 통해 테이블의 데이터에 액세스합니다.

  • 다중 테이블 연결 방식. 여러 테이블의 순차적 액세스 순서를 포함하여 테이블을 연결하기 위해 데이터베이스에서 사용하는 연결 알고리즘입니다.

  • 그룹화, 집계, 정렬 등의 작업을 구현하는 방법입니다.

다양한 데이터베이스가 SQL 쿼리 실행 프로세스에 대해 서로 다른 구현 방법을 채택하지만 일반적으로 쿼리 문은 분석기, 최적화 프로그램 및 실행기에 의해 처리되고 최종 결과를 반환해야 하며 동시에 다양한 캐시도 포함될 수 있습니다. 액세스 성능을 향상시키는 데 사용됩니다.

간단히 말하면 쿼리문은 클라이언트의 제출부터 시작하여 서버가 최종 결과를 반환할 때까지 전체 과정은 대략 그림과 같습니다.

먼저 클라이언트가 SQL 문을 제출합니다. 그 전에 클라이언트는 데이터베이스 서버에 연결해야 합니다. 그림의 커넥터는 클라이언트 연결 설정 및 관리를 담당하는 구성 요소입니다.

이후 분석기(파서)는 SQL 문의 다양한 구성 요소를 구문 분석하고 구문 분석을 수행하며 SQL 문의 구문이 사양을 준수하는지 확인합니다.

예를 들어 다음 문의 FROM 키워드는 FORM으로 잘못 작성되었습니다.

이 경우 모든 데이터베이스 관리 시스템은 구문 오류를 반환합니다.

그런 다음 최적화 프로그램은 데이터베이스에서 수집한 통계 정보를 사용하여 SQL 문을 실행하는 가장 좋은 방법을 결정합니다. 예를 들어 단일 테이블에 인덱스로 접근할지, 전체 테이블 스캔으로 접근할지, 여러 테이블을 연결할 때 어떤 순서를 사용할지, 데이터를 어떻게 정렬할지 등이다.

옵티마이저는 쿼리 성능을 결정하는 핵심 구성요소로, 데이터베이스의 통계 정보는 옵티마이저 판단의 기초가 됩니다.

마지막으로 Executor는 해당 실행 모듈을 호출하여 최적화된 실행 계획에 따라 데이터를 얻고 그 결과를 클라이언트에 반환합니다.

실행 계획을 보는 방법

방법 1: 명령문 보기

오라클 데이터베이스에서는 EXPLAIN PLAN FOR 명령을 사용하여 실행 계획을 생성할 수도 있지만 다음 두 가지 명령을 실행해야 합니다.

EXPLAIN PLAN FOR

SELECT * FROM  T_USER1 t where t.user_name = 'Admin';

SELECT * FROM  TABLE(dbms_xplan.display);
로그인 후 복사

EXLAIN 사용 PLAN FOR 명령은 실행 계획을 생성하여 시스템 테이블 PLAN_TABLE에 저장한 후 생성된 실행 계획을 쿼리 문을 통해 표시합니다.

dbms_xplan.display는 Oracle 시스템 기능입니다. 반환된 결과는 해당 문이 Oracle에서 'SYS_C0016771' 인덱스 범위 스캔을 통해 데이터를 찾는 것을 보여줍니다.

방법 2: 도구를 사용하여 보기

일반적으로 사용되는 Oracle 데이터베이스 개발 도구 PL/SQL에서 SQL 스크립트를 선택하고 F5 키를 누르면 스크립트의 실행 계획 정보가 자동으로 표시됩니다. 1 쿼리 결과는 동일합니다.

실행 프로세스 분석

오라클 데이터베이스에서는 시스템 테이블 user_indexes 및 user_ind_columns를 통해 인덱스 및 관련 필드 정보를 쿼리할 수 있습니다.

SELECT * FROM  user_indexes;

SELECT * FROM  user_ind_columns;
로그인 후 복사

추천 튜토리얼: "Oracle Video Tutorial"

위 내용은 Oracle 쿼리 실행 계획 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿