>  기사  >  데이터 베이스  >  Oracle이 실행 계획을 쿼리하는 방법에 대해 이야기해 보겠습니다.

Oracle이 실행 계획을 쿼리하는 방법에 대해 이야기해 보겠습니다.

WBOY
WBOY앞으로
2022-05-05 19:10:144208검색

이 기사에서는 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);

EXPLAIN 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으로 문의하시기 바랍니다. 삭제