KR102040568B1 - Method for Automatic Optimizing Index Design of Database - Google Patents

Method for Automatic Optimizing Index Design of Database Download PDF

Info

Publication number
KR102040568B1
KR102040568B1 KR1020170120254A KR20170120254A KR102040568B1 KR 102040568 B1 KR102040568 B1 KR 102040568B1 KR 1020170120254 A KR1020170120254 A KR 1020170120254A KR 20170120254 A KR20170120254 A KR 20170120254A KR 102040568 B1 KR102040568 B1 KR 102040568B1
Authority
KR
South Korea
Prior art keywords
column
access path
information
dbms
fap
Prior art date
Application number
KR1020170120254A
Other languages
Korean (ko)
Other versions
KR20190032697A (en
Inventor
이화식
명재호
Original Assignee
주식회사 엔코아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엔코아 filed Critical 주식회사 엔코아
Priority to KR1020170120254A priority Critical patent/KR102040568B1/en
Publication of KR20190032697A publication Critical patent/KR20190032697A/en
Application granted granted Critical
Publication of KR102040568B1 publication Critical patent/KR102040568B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Abstract

본 발명은 데이터베이스 인덱스 디자인의 자동 최적화 방법에 관한 것으로, 하나 이상의 테이블과 인덱스 정보와 메타 정보를 포함하는 DBMS(Database Management System)에 접근 가능한 서버를 통해 실행되는 방법에 있어서, 인덱스를 최적화할 DBMS의 메타 정보를 수집하고, M(M≥1)개의 단말에서 DBMS로 전달되어 상기 DBMS의 테이블 중 특정 테이블에 대해 처리되는 N(N≥1)개의 질의문(QUERY)을 수집하고 상기 DBMS 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획(PLAN)을 수집하고, 상기 수집된 질의문을 유형 별로 분류하고 상기 분류된 각 유형 별 질의문의 구문을 해석하여 컬럼값과 연산자를 배열한 원시 접근 경로(Raw Access Path; RAP)를 포함하는 조건절의 유형을 판독하고 상기 수집된 실행계획 중 상기 분류된 유형 별 실행계획에 포함된 컬럼값과 연산자의 배열을 포함하는 분석 접근 경로(Analyzed Access Path; AAP)를 판독하고, 상기 수집된 메타 정보에 포함된 정보나 상기 메타 정보에 포함된 정보를 이용하여 테이블로부터 확인되거나 통계 처리된 정보를 포함하는 하나 이상의 기준 정보를 근거로 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(reFined Access Path; FAP)를 생성하고, 상기 재배열 생성된 개선 접근 경로(FAP)와 상기 DBMS 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인하며, 상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되지 않는 경우에 상기 매칭되지 않는 개선 접근 경로(FAP)를 상기 실행계획의 분석 접근 경로(AAP)로 포함될 수 있도록 구조화하여 상기 DBMS의 인덱스 정보에 적용하는 데이터베이스 인덱스 디자인의 자동 최적화 방법에 관한 것이다.The present invention relates to a method for automatically optimizing a database index design, the method being executed through a server accessible to a DBMS (Database Management System) including one or more tables, index information, and meta information. Collects meta information, collects N (N≥1) QUERY that is delivered to the DBMS from M (M≥1) terminals and processed for a specific table among the tables of the DBMS, and the inside of the DBMS Primitive access that collects the execution plan (PLAN) generated to analyze and execute the query statement, classifies the collected query statements by type, parses the classified query statements for each type, and arranges column values and operators. Read the type of condition clause including the Raw Access Path (RAP), and the column values included in the classified execution plans among the collected execution plans. Read an Analyzed Access Path (AAP) containing an array of operators and include information verified or statistically processed from a table using information included in the collected meta information or information included in the meta information. Generate a refined access path (FAP) by rearranging an array of column values and operators included in the conditional clause type by type based on one or more pieces of reference information, and generating the rearranged improved access path (FAP). And compares the analysis access path (AAP) of the execution plan generated in the DBMS by type and checks whether there is a match. If the improvement access path (FAP) and the analysis access path (AAP) do not match, the matching does not match. A database index structured to include an improved access path (FAP) as an analysis access path (AAP) of the execution plan and applied to index information of the DBMS. It is about automatic optimization of the design.

Description

데이터베이스 인덱스 디자인의 자동 최적화 방법{Method for Automatic Optimizing Index Design of Database}{Method for Automatic Optimizing Index Design of Database}

본 발명은 테이블을 액세스하는 많은 SQL들을 최소의 인덱스로 커버할 수 있도록 구성하고, 데이터베이스의 옵티마이저로 하여금 최적의 실행계획을 수립할 수 있도록 하는 것으로, 특히 데이터베이스에서 발생하는 인덱스의 비효율 부분에 대해 최적의 성능을 보장하고 효과적으로 인덱스를 설계할 수 있도록 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법에 관한 것이다.The present invention is configured to cover a large number of SQL access to the table with a minimum index, and to allow the database optimizer to develop an optimal execution plan, in particular for the inefficient portion of the index that occurs in the database The present invention relates to an automatic optimization method of database index design that guarantees optimal performance and enables effective index design.

현재 데이터베이스 관리 시스템의 주요 이슈는 성능개선 부분이다. 성능저하의 주요원인은 비효율적인 I/O에 관한 것이 대부분이며, 이는 기업에서 사용하는 데이터는 계속적으로 증가하고 있으나, 증가하는 데이터에서 원하는 데이터를 효과적으로 찾아낼 수 있는 인덱스 방법이 제공되어 있지 않기 때문에 최적의 성능을 보장받을 수 없게 되는 것이다. The main issue of the current database management system is performance improvement. Most of the major causes of poor performance are inefficient I / O. This is because the data used by the enterprise is continuously increasing, but there is no indexing method to effectively find the desired data from the increasing data. Optimal performance will not be guaranteed.

현 시점에서 데이터베이스의 성능 개선에 관한 방법 즉, 최적의 인덱스를 설계하고 관리할 수 있는 방법이 절실하게 요구되고 있는 실정이다.At the present time, there is an urgent need for a method for improving the performance of a database, that is, a method for designing and managing an optimal index.

상기와 같은 문제점을 해소하기 위한 본 발명의 목적은, 하나 이상의 테이블과 인덱스 정보와 메타 정보를 포함하는 DBMS(Database Management System)에 접근 가능한 서버를 통해 실행되는 방법에 있어서, 인덱스를 최적화할 DBMS의 메타 정보를 수집하는 제1 단계와 M(M≥1)개의 단말에서 DBMS로 전달되어 상기 DBMS의 테이블 중 특정 테이블에 대해 처리되는 N(N≥1)개의 질의문(QUERY)을 수집하고 상기 DBMS 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획(PLAN)을 수집하는 제2 단계와 상기 수집된 질의문을 유형 별로 분류하고 상기 분류된 각 유형 별 질의문의 구문을 해석하여 컬럼값과 연산자를 배열한 원시 접근 경로(Raw Access Path; RAP)를 포함하는 조건절의 유형을 판독하고 상기 수집된 실행계획 중 상기 분류된 유형 별 실행계획에 포함된 컬럼값과 연산자의 배열을 포함하는 분석 접근 경로(Analyzed Access Path; AAP)를 판독하는 제3 단계와 상기 수집된 메타 정보에 포함된 정보나 상기 메타 정보에 포함된 정보를 이용하여 테이블로부터 확인되거나 통계 처리된 정보를 포함하는 하나 이상의 기준 정보를 근거로 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(reFined Access Path; FAP)를 생성하는 제4 단계와 상기 재배열 생성된 개선 접근 경로(FAP)와 상기 DBMS 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인하는 제5 단계 및 상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되지 않는 경우에 상기 매칭되지 않는 개선 접근 경로(FAP)를 상기 실행계획의 분석 접근 경로(AAP)로 포함될 수 있도록 구조화하여 상기 DBMS의 인덱스 정보에 적용하는 제6 단계를 포함하는 데이터베이스 인덱스 디자인의 자동 최적화 방법을 제공함에 있다.
An object of the present invention for solving the above problems, in a method that is executed through a server that is accessible to a DBMS (Database Management System) containing one or more tables, index information and meta information, the DBMS to optimize the index The first step of collecting meta information and M (M ≥ 1) terminal to collect N (N ≥ 1) QUERY to be processed for a specific table of the table of the DBMS and the DBMS A second step of collecting an execution plan (PLAN) generated to analyze and execute the query statement internally, and classifying the collected query statements by type and analyzing the syntax of the classified query statements for each type; Read the type of conditional clause including the raw access path (RAP) with the operator arranged, and the column values included in the categorized action plan among the collected action plans. A third step of reading an analyzed access path (AAP) including an array of operators and using the information included in the collected meta information or the information contained in the meta information or statistically processed from a table; A fourth step of generating a refined access path (FAP) by rearranging the array of column values and operators included in the type of conditional clause by type based on one or more reference information including the information; The fifth step of checking whether the improvement access path (FAP) and the analysis access path (AAP) of the execution plan generated inside the DBMS is matched by type, and the improvement access path (FAP) and the analysis access path (AAP) are If there is no match, the non-matching improvement access path (FAP) is structured to be included as an analysis access path (AAP) of the execution plan to define the index of the DBMS. An automatic optimization method of a database index design including a sixth step applied to a beam is provided.

삭제delete

본 발명에 따른 하나 이상의 테이블과 인덱스 정보와 메타 정보를 포함하는 DBMS(Database Management System)에 접근 가능한 서버를 통해 실행되는 방법에 있어서, 인덱스를 최적화할 DBMS의 메타 정보를 수집하는 제1 단계와 M(M≥1)개의 단말에서 DBMS로 전달되어 상기 DBMS의 테이블 중 특정 테이블에 대해 처리되는 N(N≥1)개의 질의문(QUERY)을 수집하고 상기 DBMS 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획(PLAN)을 수집하는 제2 단계와 상기 수집된 질의문을 유형 별로 분류하고 상기 분류된 각 유형 별 질의문의 구문을 해석하여 컬럼값과 연산자를 배열한 원시 접근 경로(Raw Access Path; RAP)를 포함하는 조건절의 유형을 판독하고 상기 수집된 실행계획 중 상기 분류된 유형 별 실행계획에 포함된 컬럼값과 연산자의 배열을 포함하는 분석 접근 경로(Analyzed Access Path; AAP)를 판독하는 제3 단계와 상기 수집된 메타 정보에 포함된 정보나 상기 메타 정보에 포함된 정보를 이용하여 테이블로부터 확인되거나 통계 처리된 정보를 포함하는 하나 이상의 기준 정보를 근거로 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(reFined Access Path; FAP)를 생성하는 제4 단계와 상기 재배열 생성된 개선 접근 경로(FAP)와 상기 DBMS 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인하는 제5 단계 및 상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되지 않는 경우에 상기 매칭되지 않는 개선 접근 경로(FAP)를 상기 실행계획의 분석 접근 경로(AAP)로 포함될 수 있도록 구조화하여 상기 DBMS의 인덱스 정보에 적용하는 제6 단계를 포함하는 것을 특징으로 한다.In a method executed through a server accessible to a DBMS (Database Management System) including at least one table and index information and meta information according to the present invention, the first step of collecting the meta information of the DBMS to optimize the index and M Collecting N (N≥1) queries from the (M≥1) terminals to the DBMS and processing for a specific table among the tables of the DBMS, and analyzing and executing the queries in the DBMS Raw access path that arranges column values and operators by classifying the collected query statement by type and classifying the collected query statements by type, and analyzing the syntax of the classified query statements for each type. An analytical approach that reads the type of conditional clause including Path; RAP) and includes an array of operators and column values included in the categorized execution plan among the collected execution plans. A third step of reading an Analyzed Access Path (AAP) and one or more pieces of reference information including information identified or statistically processed from a table using information included in the collected meta information or information included in the meta information; A fourth step of generating a refined access path (FAP) by rearranging an array of column values and operators included in the type of conditional clause according to the type; and the rearranged improved access path (FAP) and the A fifth step of comparing the analysis access path (AAP) of the execution plan generated inside the DBMS by type and checking if the improvement access path (FAP) and the analysis access path (AAP) do not match. And a sixth step of constructing a non-improved access path (FAP) to be included as an analysis access path (AAP) of the execution plan and applying it to the index information of the DBMS. It features.

삭제delete

삭제delete

본 발명에 따르면, 상기 메타 정보는, 테이블의 컬럼구조, 각 컬럼의 행의 수, 각 컬럼의 널값의 수, 각 컬럼의 속성정보, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도, 현재 DBMS 내에 설정된 인덱스 정보를 하나 이상 포함하여 구성될 수 있다.According to the present invention, the meta-information is a table of the column structure, the number of rows of each column, the number of null values of each column, the attribute information of each column, and the information recorded in each column does not overlap the statistics and unique statistics The uniqueness of each processed column may be configured to include one or more index information set in the current DBMS.

본 발명에 따르면, 상기 제1 단계는, DBMS에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보를 수집하는 단계를 더 포함하여 구성될 수 있다.According to the present invention, the first step may further comprise the step of collecting table-related information for the table to optimize the index of the table provided in the DBMS.

본 발명에 따르면, 상기 제1 단계는, DBMS에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보와 상기 테이블의 메타 정보를 수집하는 단계를 포함하여 구성될 수 있다. According to the present invention, the first step may include collecting table related information and meta information of the table for a table to optimize an index among tables provided in the DBMS.

본 발명에 따르면, 상기 기준 정보는, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함하여 구성될 수 있으며, 이 경우 상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 높은 컬럼값이 고유도가 낮은 컬럼값보다 우선 배치되도록 재배열하는 단계를 포함하여 구성될 수 있다.According to the present invention, the reference information may be configured to include uniqueness for each column in which information recorded in each column is not duplicated and statistically processed for a unique ratio, and in this case, the fourth step may include: Among the two or more column values included in the type, it may be configured to include the rearrangement so that the column value with high uniqueness of each column is prioritized over the column value with low uniqueness.

본 발명에 따르면, 상기 기준 정보는, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함하여 구성될 수 있고, 이 경우 상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 낮은 컬럼값이 고유도가 높은 컬럼값보다 나중에 배치되도록 재배열하는 단계를 포함하여 구성될 수 있다.According to the present invention, the reference information may be configured to include uniqueness for each column in which information recorded in each column is not duplicated and statistically processed for a unique ratio, and in this case, the fourth step may include: Among the two or more column values included in the type, it may be configured to include rearranging so that the column values having low uniqueness of each column are disposed later than the column values having high uniqueness.

본 발명에 따르면, 상기 기준 정보는, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함하여 구성될 수 있고, 이 경우 상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 상기 고유도가 일정 비율 이하인 컬럼값을 배제하는 단계를 포함하여 구성될 수 있다.According to the present invention, the reference information may be configured to include uniqueness for each column in which information recorded in each column is not duplicated and statistically processed for a unique ratio, and in this case, the fourth step may include: It may be configured to include the step of excluding a column value of the two or more column values included in the type having a specificity less than a certain ratio.

본 발명에 따르면, 상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값과 연산자의 조합 중 '=' 연산자와 조합된 컬럼값이 다른 연산자와 조합된 컬럼값보다 우선 배치되도록 재배열하는 단계를 포함하여 구성될 수 있다.According to the present invention, the fourth step may include rearranging the column values combined with the '=' operator among the combinations of two or more column values and operators included in the type of the condition clause to be prioritized over the column values combined with the other operators. May be configured to include a step.

본 발명에 따르면, 상기 기준 정보는, 각 컬럼의 널(NULL)값의 수를 포함하여 구성될 수 있고, 이 경우 상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 널값의 수가 많은 컬럼값이 널값의 수가 적은 컬럼값보다 우선 배치되도록 재배열하는 단계를 포함하여 구성될 수 있다.According to the present invention, the reference information may be configured to include the number of null values of each column, and in this case, the fourth step may include the null value of two or more column values included in the type of the conditional clause. The rearrangement may be performed such that a large number of column values are placed before a column value having a small number of null values.

본 발명에 따르면, 상기 기준 정보는, 각 컬럼의 널(NULL)값의 수를 포함하여 구성될 수 있고, 상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 널값의 수가 적은 컬럼값이 널값의 수가 많은 컬럼값보다 나중에 배치되도록 재배열하는 단계를 포함하여 구성될 수 있다.According to the present invention, the reference information may be configured to include the number of null values of each column, and in the fourth step, the number of null values among two or more column values included in the type of the conditional clause is small. And rearranging the column values so that the column values are placed after the column values with a large number of null values.

본 발명에 따르면, 상기 제5 단계는, 상기 개선 접근 경로(FAP)에 포함된 컬럼값과 연산자의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값과 연산자의 배열을 비교하여 일치하는지 확인하는 단계를 포함하여 구성될 수 있다.According to the present invention, the fifth step may be performed by comparing the column values included in the improved access path (FAP) with the array of the operator and the column values included in the analysis access path (AAP) with the array of the operators. It may comprise a step.

본 발명에 따르면, 상기 제5 단계는, 상기 개선 접근 경로(FAP)에 포함된 컬럼값의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값의 배열을 비교하여 일치하는지 확인하는 단계를 포함하여 구성될 수 있다.According to the present invention, the fifth step includes comparing the arrangement of the column values included in the improvement access path (FAP) with the arrangement of the column values included in the analysis access path (AAP) and confirming whether they match. Can be configured.

여기서, 상기 제5 단계는, 상기 개선 접근 경로(FAP)에 포함된 컬럼값과 조합된 연산자와 상기 분석 접근 경로(AAP)에 포함된 컬럼값과 조합된 연산자를 비교하여 허용 범우 내에서 일정 비율 이상 일치하는지 확인하는 단계를 포함하여 구성될 수 있다.Here, the fifth step may be performed by comparing an operator combined with a column value included in the improvement access path (FAP) with an operator combined with a column value included in the analysis access path (AAP), and a predetermined ratio within the allowable range. It may be configured to include the step of checking whether the match.

본 발명에 따르면, 상기 제6 단계는, 상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되지 않는 경우에 상기 제1 단계 내지 제6 단계를 반복하도록 처리하는 단계를 더 포함하여 구성될 수 있다.According to the present invention, the sixth step may further include processing to repeat the first to sixth steps when the improvement access path (FAP) and the analysis access path (AAP) do not match. Can be.

본 발명에 따르면, 상기 제6 단계는, 상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되는 경우 개선 접근 경로(FAP)를 생성하는 과정을 중단하고 일정 기간이 경과한 이후에 상기 제1 단계 내지 제6 단계를 다시 수행하도록 스케쥴링하는 단계를 더 포함하여 구성될 수 있다.According to the present invention, the sixth step may stop the process of generating the improvement access path (FAP) when the improvement access path (FAP) and the analysis access path (AAP) is matched, and after the predetermined period has elapsed, The method may further include scheduling to perform the first to sixth steps again.

본 발명에 따르면, 데이터베이스에서 발생하는 인덱스의 비효율 부분에 대해 최적의 성능을 보장하고 효과적으로 인덱스를 설계할 수 있는 이점이 있다.According to the present invention, there is an advantage in that the optimal performance can be guaranteed and the index can be effectively designed for the inefficient part of the index generated in the database.

도 1은 본 발명의 실시 방법에 따른 데이터베이스 인덱스 디자인의 자동 최적화 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 실시 방법에 따른 데이터베이스 인덱스 디자인의 자동 최적화 과정을 도시한 도면이다.
도 3은 본 발명의 실시 방법에 따른 결제 플러그인 광고를 이용한 선택적 할인 서비스 제공 과정을 도시한 도면이다.
도 4는 본 발명의 실시 방법에 따라 결제 플러그인 광고를 이용한 선택적 할인 서비스 제공하는 예시도면이다.
1 is a diagram showing the configuration of an automatic optimization system for database index design according to an embodiment of the present invention.
2 is a diagram illustrating an automatic optimization process of a database index design according to an embodiment of the present invention.
3 is a diagram illustrating a process of providing a selective discount service using a payment plug-in advertisement according to an embodiment of the present invention.
4 is an exemplary view of providing a selective discount service using a payment plug-in advertisement according to an embodiment of the present invention.

이하 첨부된 도면과 설명을 참조하여 본 발명의 바람직한 실시에 대한 동작 원리를 상세히 설명한다. 다만, 하기에 도시되는 도면과 후술되는 설명은 본 발명의 특징을 효과적으로 설명하기 위한 여러 가지 방법 중에서 바람직한 실시 방법에 대한 것이며, 본 발명이 하기의 도면과 설명만으로 한정되는 것은 아니다. Hereinafter, with reference to the accompanying drawings and description will be described in detail the operating principle of the preferred embodiment of the present invention. However, the drawings and the following description shown below are for the preferred method among various methods for effectively explaining the features of the present invention, the present invention is not limited only to the drawings and description below.

즉, 하기의 실시예는 본 발명의 수 많은 실시예 중에 바람직한 합집합 형태의 실시예 예에 해당하며, 하기의 실시예에서 특정 구성(또는 단계)를 생략하는 실시예, 또는 특정 구성(또는 단계)에 구현된 기능을 특정 구성(또는 단계)로 분할하는 실시예, 또는 둘 이상의 구성(또는 단계)에 구현된 기능을 어느 하나의 구성(또는 단계)에 통합하는 실시예, 특정 구성(또는 단계)의 동작 순서를 교체하는 실시예 등은, 하기의 실시예에서 별도로 언급하지 않더라도 모두 본 발명의 권리범위에 속함을 명백하게 밝혀두는 바이다. 따라서 하기의 실시예를 기준으로 부분집합 또는 여집합에 해당하는 다양한 실시예들이 본 발명의 출원일을 소급받아 분할될 수 있음을 분명하게 명기하는 바이다.That is, the following embodiments correspond to embodiments of the preferred union form among many embodiments of the present invention, and embodiments or omit specific configurations (or steps) in the following embodiments. An embodiment of dividing a function implemented in a specific configuration (or step), or an embodiment, a specific configuration (or step) incorporating a function implemented in two or more configurations (or steps) into one configuration (or step). Embodiments to replace the order of operation, etc., unless explicitly stated otherwise in the following examples will be apparent that all belong to the scope of the present invention. Therefore, it is to be noted that various embodiments corresponding to a subset or a filter based on the following examples may be divided retrospectively according to the filing date of the present invention.

또한, 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 발명에서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In addition, in the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. Terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to intentions or customs of users or operators. Therefore, the definition should be made based on the contents throughout the present invention.

결과적으로, 본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하 실시예는 진보적인 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.As a result, the technical spirit of the present invention is determined by the claims, and the following examples are one means for efficiently explaining the technical spirit of the present invention to those skilled in the art to which the present invention pertains. It is only.

도면1은 본 발명의 실시 방법에 따른 데이터베이스 인덱스 디자인의 자동 최적화 시스템의 구성을 도시한 도면이다.1 is a diagram showing the configuration of an automatic optimization system for database index design according to an embodiment of the present invention.

보다 상세하게 본 도면1은 하나 이상의 테이블과 인덱스 정보와 메타 정보를 포함하는 DBMS(Database Management System)에 접근 가능한 서버에서 실행되는 데이터베이스 인덱스 디자인의 자동 최적화 시스템에 대한 간단한 구성을 도시한 것으로서, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 본 도면1을 참조 및/또는 변형하여 데이터베이스 인덱스 디자인의 자동 최적화 시스템의 구성에 대한 다양한 실시 방법을 유추할 수 있을 것이나, 본 발명은 상기 유추되는 모든 실시 방법을 포함하여 이루어지며, 본 도면1에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다. In more detail, FIG. 1 illustrates a simple configuration of an automatic optimization system of a database index design executed in a server accessible to a DBMS (Database Management System) including one or more tables, index information, and meta information. Those skilled in the art will be able to infer various implementation methods for the configuration of the automatic optimization system of the database index design by referring to and / or modifying the drawing 1, but the present invention is inferred from the above It is made including all implementation methods, the technical features are not limited only to the implementation method shown in FIG.

도면1을 참조하면, 데이터베이스 인덱스 디자인의 자동 최적화 시스템은, 하나 이상의 테이블과 인덱스 정보와 메타 정보를 포함하는 DBMS(135)에 접근 가능하며, DBMS(135)의 특정 테이블에 대한 질의문(QUERY)과 실행계획(PLAN)을 수집하고 이를 판독하여 개선 접근 경로(reFined Access Path; FAP)를 생성하고, 개선 접근 경로(FAP)와 상기 DBMS(135) 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인하는 서버(100)와, 하나 이상의 테이블과 인덱스 정보와 메타 정보를 포함하는 DBMS(135)를 포함하여 구성될 수 있다.Referring to FIG. 1, an automatic optimization system of a database index design may access a DBMS 135 including one or more tables, index information, and meta information, and may query a specific table of the DBMS 135. Collects and reads a plan and generates a refined access path (FAP), and analyzes an access plan (AAP) of the revised access path (FAP) and the execution plan generated inside the DBMS 135. ) And a DBMS 135 including one or more tables, index information, and meta information.

DBMS(135)는 데이터베이스를 관리하며 응용 프로그램들이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어를 통칭하며, 하나 이상의 테이블과 인덱스 정보와 메타 정보를 포함할 수 있다.The DBMS 135 collectively refers to software that manages a database and provides an environment in which applications can share and use the database. The DBMS 135 may include one or more tables, index information, and meta information.

여기서, 상기 DBMS(135)에 포함되는 테이블은 복수의 컬럼을 포함할 수 있다.Here, the table included in the DBMS 135 may include a plurality of columns.

또한, 상기 DBMS(135)에 포함되는 인덱스 정보는, 상기 테이블에 포함된 각 컬럼의 컬럼 구조를 설계한 개발자가 임의로 설정한 컬럼 접근 경로(Access Path; AP)와 이전 최적화 과정을 거쳐 생성된 컬럼 접근 경로(AP) 중 적어도 하나의 접근 경로를 포함할 수 있다.In addition, the index information included in the DBMS 135 includes a column access path (AP) arbitrarily set by a developer designing a column structure of each column included in the table and a column generated through a previous optimization process. It may include at least one of the access path (AP).

또한, 상기 DBMS(135)에 포함되는 메타 정보는 테이블의 컬럼구조, 각 컬럼의 행의 수, 각 컬럼의 널값의 수, 각 컬럼의 속성정보, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도, 현재 DBMS 내에 설정된 인덱스 정보를 하나 이상 포함할 수 있다.In addition, the meta information included in the DBMS 135 is unique in that the column structure of the table, the number of rows of each column, the number of null values of each column, attribute information of each column, and information recorded in each column are not duplicated. The uniqueness of each column for which the statistics are statistically processed, and may include one or more index information set in the current DBMS.

여기서, 상기 테이블의 컬럼구조는 각 컬럼이 어떤 정보(예컨대, 'COL3'은 '이름', 'COL4'은 '직업', 'COL5'는 '주민번호', 'COL6'은 '성별' 등의 정보를 기록 등)를 기록하는 구조로 이루어졌는지를 알려주는 정보일 수 있다.In this case, the column structure of the table includes information about each column (for example, 'COL3' for 'name', 'COL4' for 'occupation', 'COL5' for 'resident number', 'COL6' for 'gender', etc.). Information, etc.) may be information indicating whether the recording is made in a structure for recording information.

상기 테이블의 각 컬럼의 속성정보는 각 컬럼의 속성(예컨대, 'COL3'은 '문자열'을 기록하고, 'COL4'는 각 직업에 할당된 '직업코드'를 기록하고, 'COL5'는 '-' 없이 13자리로 제한되는 '숫자'를 기록하고, 'COL6'은 남자의 경우 'M'의 영문자를 기록하고 여자의 경우 'F'의 영문자를 기록)에 대한 정보를 포함할 수 있다.Attribute information of each column of the table includes attributes of each column (for example, 'COL3' records' string ',' COL4 'records' job code' assigned to each job, and 'COL5' indicates'- 'Number' is limited to 13 digits without ',' and 'COL6' may contain information about 'M' for males and 'F' for females).

상기 테이블의 컬럼 별 고유도는 정보의 중복에 대한 정보로, '주민번호'와 같이 전혀 중복되지 않는 COL5의 고유도는 '100'이고, 만약 테이블이 남자 회원정보를 저장하는 DB로서 COL6에 남자 성별을 식별하는 'M'만 기록된다면(즉 컬럼 전체가 중복된다면) 고유도는 '0'으로 간주할 수 있으며, 여기서 고유도는 기 생성되어 메타 정보에 저장된 상태에서 수집될 수도 있고, 또는 수집 시점에 테이블의 각 컬럼에 저장된 정보를 통계 처리하여 실시간 생성된 후 수집될 수 있다. The uniqueness of each column of the table is information overlapping information. The uniqueness of COL5, which is not duplicated at all like 'resident number', is '100', and if the table stores male member information, the male in COL6 is a DB. If only 'M' identifying the gender is recorded (i.e. the entire column is duplicated) then the uniqueness can be regarded as '0', where the uniqueness may be collected while already generated and stored in the meta information, or collected The information stored in each column of the table at the time can be statistically processed and generated in real time.

상기 테이블의 인덱스 정보는 개발자가 임의로 설정한 컬럼의 접근 경로(AP)와 이전 최적화 과정을 거쳐 생성된 컬럼의 접근 경로(AP) 중 적어도 하나의 접근 경로를 포함할 수 있으며, 접근 경로(AP)는 메타 정보에 기 저장된 상태에서 수집될 수도 있고, 또는 수집 시점에 인덱스 정보로부터 실시간 추출되어 수집될 수 있다.The index information of the table may include at least one of an access path (AP) of a column arbitrarily set by a developer and an access path (AP) of a column generated through a previous optimization process, and the access path (AP). May be collected in a state previously stored in the meta information, or may be collected by being extracted in real time from the index information at the time of collection.

도면1에 도시된 서버(100)는 본 발명에 따른 데이터베이스 인덱스 디자인의 자동 최적화를 위해 서버 측에 구현될 기능 구성의 총칭으로써, 바람직하게 단말(140)과 DBMS(135) 사이의 경로 상에 구비되는 하나 이상의 서버를 포함할 수 있다.The server 100 shown in FIG. 1 is a generic term for a functional configuration to be implemented on the server side for automatic optimization of the database index design according to the present invention. Preferably, the server 100 is provided on a path between the terminal 140 and the DBMS 135. It may include one or more servers.

예를 들어, 상기 서버(100)는 상기 DBMS(135)를 구비하거나, 또는 상기 DBMS(135)가 구비되는 서버(별도 도시하지 않음)와 연동하는 형태가 모두 가능하며, 특정한 물리적인 서버에 의해 한정되지 아니함을 밝혀 두는 바이다.For example, the server 100 may include the DBMS 135 or may be linked to a server (not shown) provided with the DBMS 135, and may be configured by a specific physical server. It is to be understood that it is not limited.

도면1을 참조하면, 상기 서버(100)는 DBMS(135)의 메타 정보를 수집하는 메타정보 수집부(105)와, 단말(140)에서 DBMS(135)의 특정 테이블을 처리하기 위해 전달되는 질의문(QUERY)을 수집하고 상기 질의문에 대응하는 실행계획(PLAN)을 수집하는 실행계획 수집부(110)와, 유형 별로 분류된 질의문에 대응하는 실행계획에 대한 분석 접근 경로(Analyzed Access Path; AAP)를 판독하는 접근경로 판독부(115)와, 하나 이상의 기준 정보를 근거로 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(reFined Access Path; FAP)를 생성하는 접근경로 생성부(120)와, 개선 접근 경로(FAP)와 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭 여부를 확인하는 매칭 확인부(125)와, 매칭되지 않는 상기 개선 접근 경로(FAP)를 분석 접근 경로(AAP)로 포함될 수 있도록 구조화하는 구조화 적용부(130)을 포함하여 구성될 수 있다.Referring to FIG. 1, the server 100 transmits a meta information collector 105 to collect meta information of a DBMS 135 and a query transmitted from a terminal 140 to process a specific table of the DBMS 135. Analysis access path for the execution plan collection unit 110 for collecting a query (QUERY) and the execution plan (PLAN) corresponding to the query statement, and the execution plan corresponding to the query statement classified by type An access path reading unit 115 for reading an AAP and an access path generation unit for generating a refined access path (FAP) that rearranges an array of column values and operators by type based on one or more reference information. A matching checker 125 for confirming a match by comparing the improved access path (FAP) and the analysis access path (AAP) for each type, and analyzing the improved access path (FAP) that does not match. Structured application unit 130 to structure to be included as (AAP) It may be configured to include.

상기 메타정보 수집부(105)는 본 발명에 따라 인덱스를 최적화할 DBMS(135)의 메타 정보를 수집할 수 있으며, 여기서 상기 메타 정보는 DBMS(135)의 테이블의 컬럼구조, 각 컬럼의 행의 수, 각 컬럼의 널값의 수, 각 컬럼의 속성정보, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도, 현재 DBMS(135) 내에 설정된 인덱스 정보를 하나 이상 포함할 수 있다.The meta information collecting unit 105 may collect meta information of the DBMS 135 to optimize the index according to the present invention, wherein the meta information may include the column structure of the table of the DBMS 135 and the row of each column. Number, the number of null values in each column, attribute information of each column, information recorded in each column does not overlap, and uniqueness for each column statistically counting the unique ratio, and one or more index information currently set in the DBMS 135 can do.

본 발명에 따르면, 상기 메타정보 수집부(105)는 상기 DBMS(135)에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보를 수집할 수 있다.According to the present invention, the meta-information collecting unit 105 may collect table-related information on a table for optimizing the index among the tables provided in the DBMS 135.

여기서, 상기 테이블 관련 정보는 상기 메타 정보에 포함되지 않은 정보 중 개선 접근 경로(FAP)의 생성을 위해 필요한 정보로써, 예를 들어 고유도가 메타 정보에 기 포함되어 있다면 메타 정보만 수집해도 되지만, 고유도가 메타 정보에 기 포함되어 있지 않다면 테이블 관련 정보를 이용하여 실시간 추출하는 것이 바람직하다. Here, the table-related information is information necessary for generating an improved access path (FAP) among the information not included in the meta information. For example, if the uniqueness is already included in the meta information, only the meta information may be collected. If the uniqueness is not already included in the meta information, it is preferable to extract in real time using the table related information.

또한, 본 발명에 따르면, 상기 메타정보 수집부(105)는 상기 DBMS(135)에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보와 상기 테이블의 메타 정보를 수집할 수 있다.In addition, according to the present invention, the meta-information collecting unit 105 may collect table-related information about the table to optimize the index among the tables provided in the DBMS 135 and meta information of the table.

예컨대, 하나의 DBMS(135)에는 복수의 테이블(예: 회원정보 테이블, 결제내역 테이블 등)이 존재할 수 있으며, 각 테이블 별로 인덱스를 최적화하기 위해 각각의 테이블 별로 테이블 관련 정보와 메타 정보를 수집하는 것이 바람직하다.For example, a single DBMS 135 may have a plurality of tables (eg, a member information table, a payment history table, etc.), and collect table-related information and meta information for each table to optimize an index for each table. It is preferable.

상기 실행계획 수집부(110)는 상기 메타정보 수집부(105)를 통해 인덱스를 최적화할 DBMS(135)의 메타 정보가 수집되면, M(M≥1)개의 단말(140)에서 DBMS(135)로 전달되어 상기 DBMS(135)의 테이블 중 특정 테이블에 대해 처리되는 N(N≥1)개의 질의문을 수집하고 상기 DBMS(135) 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획을 수집할 수 있다.When the execution plan collection unit 110 collects the meta information of the DBMS 135 to optimize the index through the meta information collecting unit 105, the DBMS 135 in M (M≥1) terminals 140. An execution plan generated to collect N (N≥1) query statements which are delivered to and processed for a specific table among the tables of the DBMS 135 and analyze and execute the query statements in the DBMS 135 Can be collected.

상기 접근경로 판독부(115)는 상기 실행계획 수집부(110)를 통해 상기 특정 테이블에 대해 처리되는 질의문과 상기 DBMS(135) 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획이 수집되면, 상기 수집된 질의문을 유형 별로 분류하고 상기 분류된 각 유형 별 질의문의 구문을 해석하여 컬럼값과 연산자를 배열한 원시 접근 경로(Raw Access Path; RAP)를 포함하는 조건절의 유형을 판독할 수 있다.The access path reading unit 115 collects a query statement processed for the specific table through the execution plan collection unit 110 and an execution plan generated to analyze and execute the query statement in the DBMS 135. When the collected query statements are classified by type, the syntax of each classified query statement is analyzed, and a type of conditional clause including a raw access path (RAP) including column values and operators is read. Can be.

또한, 상기 접근경로 판독부(115)는 상기 수집된 실행계획 중 상기 분류된 유형 별 실행계획에 포함된 컬럼값과 연산자의 배열을 포함하는 분석 접근 경로(Analyzed Access Path; AAP)를 판독할 수 있다.In addition, the access path reading unit 115 may read an analyzed access path (AAP) including an array of operators and column values included in the classified execution plans of the collected execution plans. have.

상기 접근경로 생성부(120)는 상기 접근경로 판독부(115)를 통해 상기 원시 접근 경로(RAP)를 포함하는 조건절의 유형이 판독되고, 상기 분류된 유형 별 실행계획에 포함된 컬럼값과 연산자의 배열을 포함하는 분석 접근 경로(AAP)가 판독되면, 상기 수집된 메타 정보에 포함된 정보나 상기 메타 정보에 포함된 정보를 이용하여 테이블로부터 확인되거나 통계 처리된 정보를 포함하는 하나 이상의 기준 정보를 근거로 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(reFined Access Path; FAP)를 생성할 수 있다.The access path generation unit 120 reads the type of conditional clause including the original access path (RAP) through the access path reading unit 115, and the column values and operators included in the classified execution plans. When the analysis access path (AAP) including the array of the read is one or more reference information, including information contained in the collected meta-information or information identified or statistically processed from a table using the information contained in the meta-information Based on this, a refined access path (FAP) can be created that rearranges the array of column values and operators included in the condition clause type by type.

상기 접근경로 생성부(120)는 상기 개선 접근 경로(FAP)를 생성하는 과정에서 상기 조건절의 유형에 포함된 둘 이상의 컬럼값과 연산자의 조합 중 '=' 연산자와 조합된 컬럼값이 다른 연산자와 조합된 컬럼값보다 우선 배치되도록 재배열하는 것이 가능하다.In the process of generating the improved access path (FAP), the access path generation unit 120 may compare the operator with another operator whose column value is combined with the '=' operator among the combination of two or more column values and operators included in the type of the conditional clause. It is possible to rearrange them to take precedence over the combined column values.

본 발명의 실시 방법에 따르면, 상기 개선 접근 경로(FAP)를 생성하기 위한 근거가 되는 기준 정보는, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함할 수 있으며, 상기 접근경로 생성부(120)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 높은 컬럼값이 고유도가 낮은 컬럼값보다 우선 배치되도록 재배열할 수 있다.According to an exemplary embodiment of the present invention, reference information, which is the basis for generating the improved access path (FAP), may include uniqueness for each column in which information recorded in each column is not duplicated and statistically unique ratio is processed. The access path generation unit 120 may rearrange the column values having high uniqueness of each column among the two or more column values included in the conditional clause to be prioritized over the column values having low uniqueness.

본 발명의 다른 실시 방법에 따르면, 상기 개선 접근 경로(FAP)를 생성하기 위한 근거가 되는 기준 정보는 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함할 수 있으며, 상기 접근경로 생성부(120)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 낮은 컬럼값이 고유도가 높은 컬럼값보다 나중에 배치되도록 재배열할 수 있다.According to another exemplary embodiment of the present invention, reference information, which is a basis for generating the improved access path (FAP), may include uniqueness for each column in which information recorded in each column is not duplicated and statistically unique ratio is processed. The access path generation unit 120 may rearrange the column values having low uniqueness of each column among the two or more column values included in the type of the condition clause to be arranged later than the column values having high specificity.

본 발명의 또 다른 실시 방법에 따르면, 상기 개선 접근 경로(FAP)를 생성하기 위한 근거가 되는 기준 정보는 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함할 수 있으며, 상기 접근경로 생성부(120)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 상기 고유도가 일정 비율 이하인 컬럼값을 배제할 수 있다.According to another exemplary embodiment of the present invention, reference information, which is the basis for generating the improved access path (FAP), includes uniqueness for each column in which information recorded in each column does not overlap and statistically processes a unique ratio. The access path generation unit 120 may exclude column values having a specificity less than or equal to a certain ratio among two or more column values included in the type of the condition clause.

본 발명의 또 다른 실시 방법에 따르면, 상기 개선 접근 경로(FAP)를 생성하기 위한 근거가 되는 기준 정보는 각 컬럼의 널(NULL)값의 수를 포함할 수 있으며, 상기 접근경로 생성부(120)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 널값의 수가 많은 컬럼값이 널값의 수가 적은 컬럼값보다 우선 배치되도록 재배열할 수 있다.According to another exemplary embodiment of the present invention, reference information, which is a basis for generating the improved access path (FAP), may include the number of null values of each column, and the access path generator 120 ) May be rearranged so that a column value having a large number of null values among two or more column values included in the type of the condition clause is preferentially disposed over a column value having a small number of null values.

본 발명의 또 다른 실시 방법에 따르면, 상기 개선 접근 경로(FAP)를 생성하기 위한 근거가 되는 기준 정보는 각 컬럼의 널(NULL)값의 수를 포함할 수 있으며, 상기 접근경로 생성부(120)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 널값의 수가 적은 컬럼값이 널값의 수가 많은 컬럼값보다 나중에 배치되도록 재배열할 수 있다.According to another exemplary embodiment of the present invention, reference information, which is a basis for generating the improved access path (FAP), may include the number of null values of each column, and the access path generator 120 ) Can be rearranged so that the column value having the smallest number of null values among the two or more column values included in the type of the condition clause is arranged after the column value having the large number of null values.

상기 매칭 확인부(125)는 상기 접근경로 생성부(120)를 통해 상기 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(FAP)가 생성되면, 상기 재배열 생성된 개선 접근 경로(FAP)와 상기 DBMS(135) 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인할 수 있다.The matching checker 125 generates the rearrangement when an improved access path (FAP) is generated by rearranging the array of the column values and the operators included in the type of the condition clause for each type through the access path generation unit 120. The improved access path (FAP) and the analysis access path (AAP) of the execution plan generated inside the DBMS 135 may be compared by type to determine whether they match.

본 발명의 실시 방법에 따르면, 상기 매칭 확인부(125)는 상기 개선 접근 경로(FAP)에 포함된 컬럼값과 연산자의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값과 연산자의 배열을 비교하여 일치하는지 확인할 수 있다.According to an exemplary embodiment of the present invention, the matching checker 125 compares an array of column values and operators included in the improved access path (FAP) and an array of column values and operators included in the analysis access path (AAP). Can be matched.

이 경우, 상기 매칭 확인부(125)는 컬럼값과 연산자까지 모두가 일치해야 매칭되는 범주에 속하는 것으로 간주할 수 있다.In this case, the matching checker 125 may be regarded as belonging to the matching category only if both the column value and the operator match.

본 발명의 다른 실시 방법에 따르면, 상기 매칭 확인부(125)는 상기 개선 접근 경로(FAP)에 포함된 컬럼값의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값의 배열을 비교하여 일치하는지 확인할 수 있다.According to another exemplary embodiment of the present invention, the matching verifier 125 compares the arrangement of the column values included in the improvement access path (FAP) with the arrangement of the column values included in the analysis access path (AAP) and matches them. You can check it.

이 경우, 상기 매칭 확인부(125)는 컬럼값만 일치하고 연산자는 일부 다르더라도 매칭되는 범주에 속하는 것으로 간주할 수 있다.In this case, the matching check unit 125 may be regarded as belonging to a matching category even though only column values match and operators are partially different.

본 발명의 또 다른 실시 방법에 따르면, 상기 매칭 확인부(125)는 상기 개선 접근 경로(FAP)에 포함된 컬럼값과 조합된 연산자와 상기 분석 접근 경로(AAP)에 포함된 컬럼값과 조합된 연산자를 비교하여 허용 범우 내에서 일정 비율 이상 일치하는지 확인할 수 있다.According to another exemplary embodiment of the present invention, the matching checker 125 may combine the operator with the column value included in the improvement access path (FAP) and the column value included in the analysis access path (AAP). You can compare operators to see if they match a certain percentage or more within the acceptable range.

이 경우, 상기 매칭 확인부(125)는 개선 접근 경로(FAP)와 분석 접근 경로(AAP)의 컬럼값 배열 순서가 동일한 상태에서 각 컬럼값과 조합된 연산자가 완벽하게 동일하지 않더라도 일정 비율 이상만 동일하면 매칭되는 것으로 간주할 수 있다.In this case, the matching verifier 125 may have only a certain ratio or more even if the operator combined with each column value is not exactly the same while the column value arrangement order of the improved access path (FAP) and the analysis access path (AAP) is the same. If it is the same, it can be considered to be a match.

상기 구조화 적용부(130)는 상기 매칭 확인부(125)를 통해 상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되지 않는 것으로 확인되면, 상기 불일치한 개선 접근 경로(FAP)를 상기 실행계획의 분석 접근 경로(AAP)로 포함될 수 있도록 구조화하여 상기 DBMS(135)의 인덱스 정보에 적용할 수 있다.When the structured application unit 130 determines that the improvement access path (FAP) and the analysis access path (AAP) do not match through the matching check unit 125, the structured application unit 130 identifies the mismatched improvement access path (FAP). It can be structured so that it can be included in the analysis access path (AAP) of the execution plan and applied to the index information of the DBMS 135.

본 발명의 실시 방법에 따르면, 상기 구조화 적용부(130)는 상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되지 않는 경우에, 상기 메타정보 수집부(105)를 통해 상기 DBMS(135)에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보를 수집하는 과정과, 상기 실행계획 수집부(110)를 상기 DBMS(135) 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획을 수집하는 과정과, 상기 접근경로 판독부(115)를 통해 상기 수집된 질의문을 유형 별로 분류하고 상기 분류된 각 유형 별 질의문의 구문을 해석하여 컬럼값과 연산자를 배열한 원시 접근 경로(RAP)를 포함하는 조건절의 유형을 판독하는 과정과, 상기 접근경로 생성부(120)를 통해 상기 수집된 메타 정보에 포함된 정보나 상기 메타 정보에 포함된 정보를 이용하여 테이블로부터 확인되거나 통계 처리된 정보를 포함하는 하나 이상의 기준 정보를 근거로 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(FAP)를 생성하는 과정과, 상기 매칭 확인부(125)를 통해 상기 재배열 생성된 개선 접근 경로(FAP)와 상기 DBMS(135) 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인하는 과정을 반복하도록 처리할 수 있다.According to the exemplary embodiment of the present invention, the structured application unit 130, when the improved access path (FAP) and the analysis access path (AAP) does not match, through the meta information collector 105, the DBMS ( A process of collecting table-related information on a table for optimizing an index among tables provided at 135) and generating the execution plan collector 110 by analyzing and executing the query statement inside the DBMS 135; A process of collecting an execution plan and classifying the collected query statements by type through the access path reading unit 115 and analyzing the syntax of the classified query statements for each type to arrange column values and operators. Reading the type of conditional clause including the RAP, and using the information included in the collected meta information or the information included in the meta information through the access path generation unit 120, Generating an improved access path (FAP) by rearranging arrays of column values and operators included in the type of conditional clause by type based on one or more reference information including checked or statistically processed information; In step 125), the rearranged improved access path (FAP) and the analysis access path (AAP) of the execution plan generated in the DBMS 135 may be compared by type to repeat the process of checking whether there is a match. have.

본 발명의 다른 실시 방법에 따르면, 상기 구조화 적용부(130)는 상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되는 경우 개선 접근 경로(FAP)를 생성하는 과정을 중단하고 일정 기간이 경과한 이후에 상기 메타정보 수집부(105)를 통해 상기 DBMS(135)에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보를 수집하는 과정과, 상기 실행계획 수집부(110)를 상기 DBMS(135) 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획을 수집하는 과정과, 상기 접근경로 판독부(115)를 통해 상기 수집된 질의문을 유형 별로 분류하고 상기 분류된 각 유형 별 질의문의 구문을 해석하여 컬럼값과 연산자를 배열한 원시 접근 경로(RAP)를 포함하는 조건절의 유형을 판독하는 과정과, 상기 접근경로 생성부(120)를 통해 상기 수집된 메타 정보에 포함된 정보나 상기 메타 정보에 포함된 정보를 이용하여 테이블로부터 확인되거나 통계 처리된 정보를 포함하는 하나 이상의 기준 정보를 근거로 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(FAP)를 생성하는 과정과, 상기 매칭 확인부(125)를 통해 상기 재배열 생성된 개선 접근 경로(FAP)와 상기 DBMS(135) 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인하는 과정을 다시 수행하도록 스케쥴링할 수 있다According to another exemplary embodiment of the present invention, the structured application unit 130 stops generating the improved access path (FAP) for a predetermined period when the improved access path (FAP) and the analysis access path (AAP) match. After this elapses, a process of collecting table-related information about a table for optimizing an index among tables provided in the DBMS 135 through the meta-information collecting unit 105 and the execution plan collecting unit 110 are performed. Collecting an execution plan generated to analyze and execute the query statement in the DBMS 135; and classifying the collected query statements by type through the access path reading unit 115, and classifying each of the classified queries. Interpreting the syntax of the query for each type to read a type of conditional clause including a raw access path (RAP) in which column values and operators are arranged, and the collected meta definitions through the access path generation unit 120. Rearranges the array of column values and operators included in the type of condition clause by type based on one or more reference information including information checked or statistically processed from a table using information included in the meta information or information included in the meta information. A process of generating an improvement access path (FAP), and an analysis access path (AAP) of the rearranged generated improvement access path (FAP) and the execution plan generated in the DBMS 135 through the matching check unit 125. ) Can be scheduled to be performed again by comparing the types and checking for a match.

도면2는 본 발명의 실시 방법에 따른 데이터베이스 인덱스 디자인의 자동 최적화 과정을 도시한 도면이다.2 is a diagram illustrating an automatic optimization process of a database index design according to an embodiment of the present invention.

보다 상세하게 본 도면2는 상기 도면1에 도시된 데이터베이스 인덱스 디자인의 자동 최적화 시스템의 서버(100)에서 하나 이상의 테이블과 인덱스 정보와 메타 정보를 포함하는 DBMS(135)의 특정 테이블에 대한 질의문(QUERY)과 실행계획(PLAN)을 수집하고 이를 판독하는 과정을 도시한 것으로서, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 본 도면2를 참조 및/또는 변형하여 상기 데이터베이스 인덱스 디자인의 자동 최적화 과정에 대한 다양한 실시 방법을 유추할 수 있을 것이나, 본 발명은 상기 유추되는 모든 실시 방법을 포함하여 이루어지며, 본 도면2에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다. In more detail, FIG. 2 is a query for a specific table of the DBMS 135 including one or more tables, index information, and meta information in the server 100 of the automatic optimization system of the database index design shown in FIG. QUERY) and the process of collecting and reading the plan (PLAN), and those skilled in the art to which the present invention pertains, reference and / or modification of the figure 2 to the design of the database index design Various implementation methods for the automatic optimization process may be inferred, but the present invention includes all the implementation methods inferred, and the technical features are not limited to the implementation method shown in FIG.

도면2를 참조하면, 본 도면에 도시된 데이터베이스 인덱스 디자인의 자동 최적화 과정은, 상기 도면1에 도시된 데이터베이스 인덱스 디자인의 자동 최적화 시스템의 서버(100)에서 인텍스를 최적화할 DBMS(135)의 메타 정보를 수집하는 과정으로부터 개시될 수 있다(200). Referring to FIG. 2, in the automatic optimization process of the database index design shown in FIG. 1, meta information of the DBMS 135 to optimize the index in the server 100 of the automatic optimization system of the database index design shown in FIG. 1. It may be started from the process of collecting (200).

상기 서버(100)는 인덱스를 최적화할 DBMS(135)의 메타 정보를 수집하며, 여기서 상기 메타 정보는 DBMS(135)의 테이블의 컬럼구조, 각 컬럼의 행의 수, 각 컬럼의 널값의 수, 각 컬럼의 속성정보, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도, 현재 DBMS(135) 내에 설정된 인덱스 정보를 하나 이상 포함할 수 있다.The server 100 collects meta information of the DBMS 135 to optimize the index, wherein the meta information includes the column structure of the table of the DBMS 135, the number of rows of each column, the number of null values of each column, Attribute information of each column, information recorded in each column may include one or more uniqueness for each column which statistically processes a unique ratio, and index information currently set in the DBMS 135.

또한, 상기 서버(100)는 상기 인덱스를 최적화할 DBMS(135)의 메타 정보를 수집하는 과정에서, 상기 DBMS(135)에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보를 수집할 수 있으며, 상기 테이블 관련 정보는 상기 메타 정보에 포함되지 않은 정보 중 개선 접근 경로(FAP)의 생성을 위해 필요한 정보로써, 예를 들어 고유도가 메타 정보에 기 포함되어 있다면 메타 정보만 수집해도 되지만, 고유도가 메타 정보에 기 포함되어 있지 않다면 테이블 관련 정보를 이용하여 실시간 추출할 수 있다. In addition, the server 100 may collect table-related information on a table to optimize the index among tables provided in the DBMS 135 in the process of collecting meta information of the DBMS 135 to optimize the index. The table related information is information necessary for generating an improved access path (FAP) among information not included in the meta information. For example, if the uniqueness is already included in the meta information, only the meta information may be collected. If the uniqueness is not already included in the meta information, it may be extracted in real time using the table related information.

또한, 상기 서버(100)는 상기 인덱스를 최적화할 DBMS(135)의 메타 정보를 수집하는 과정에서, 상기 DBMS(135)에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보와 상기 테이블의 메타 정보를 수집할 수 있다. Further, in the process of collecting the meta information of the DBMS 135 to optimize the index, the server 100 includes table-related information about the table to optimize the index among the tables provided in the DBMS 135 and the table information. Meta information can be collected.

상기 인덱스를 최적화할 DBMS(135)의 메타 정보가 수집되면, 상기 서버(100)는 하나 이상의 단말(140)에서 DBMS(135)로 전달되어 상기 DBMS(135)의 테이블 중 특정 테이블에 대해 처리되는 하나 이상의 질의문을 수집한다(205). When the meta information of the DBMS 135 to optimize the index is collected, the server 100 is transferred from the one or more terminals 140 to the DBMS 135 and processed for a specific table among the tables of the DBMS 135. Collect one or more queries (205).

그리고, 상기 서버(100)는 상기 DBMS(135) 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획(PLAN)을 수집한다(210).The server 100 collects an execution plan (PLAN) generated to analyze and execute the query statement in the DBMS 135 (210).

상기 특정 테이블에 대해 처리되는 질의문과 상기 DBMS(135) 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획이 수집되면, 상기 서버(100)는 상기 수집된 질의문을 유형 별로 분류한다(215).When a query statement processed for the specific table and an execution plan generated to analyze and execute the query statement in the DBMS 135 are collected, the server 100 classifies the collected query statements by type ( 215).

상기 수집된 질의문이 유형 별로 분류되면, 상기 서버(100)는 상기 분류된 각 유형 별 질의문의 구문을 해석하고(220), 컬럼값과 연산자를 배열한 원시 접근 경로(RAP)를 포함하는 조건절의 유형을 판독한다(225). When the collected query statements are classified by type, the server 100 interprets the syntax of the classified query statements for each type (220), and a conditional clause including a raw access path (RAP) in which column values and operators are arranged. Read the type of (225).

그리고, 상기 서버(100)는 상기 수집된 실행계획 중 상기 분류된 유형 별 실행계획에 포함된 컬럼값과 연산자의 배열을 포함하는 분석 접근 경로(AAP)를 판독한다(230).In operation 230, the server 100 reads an analysis access path (AAP) including an array of operators and column values included in the classified execution plans of the collected execution plans.

도면3은 본 발명의 실시 방법에 따른 데이터베이스 인덱스 디자인의 자동 최적화 과정을 도시한 도면이다.3 is a diagram illustrating an automatic optimization process of a database index design according to an embodiment of the present invention.

보다 상세하게 본 도면3은 상기 도면2의 과정 이후, 개선 접근 경로(FAP)를 생성하고, 상기 생성된 개선 접근 경로(FAP)와 상기 DBMS(135) 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인하여, 매칭되지 않는 상기 개선 접근 경로(FAP)를 분석 접근 경로(AAP)로 포함될 수 있도록 구조화하는 상기 DBMS(135)의 인덱스 정보에 적용하는 과정을 도시한 것으로서, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 본 도면3을 참조 및/또는 변형하여 상기 데이터베이스 인덱스 디자인의 자동 최적화 과정에 대한 다양한 실시 방법을 유추할 수 있을 것이나, 본 발명은 상기 유추되는 모든 실시 방법을 포함하여 이루어지며, 본 도면3에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다. In detail, FIG. 3 shows an improved access path (FAP) after the process of FIG. 2 and analyzes the generated access plan (FAP) and the analysis access path of the execution plan generated in the DBMS 135 (see FIG. A process of comparing AAPs by types and confirming that they match, and applying the unmatched improvement access path (FAP) to the index information of the DBMS 135 to be structured so that it can be included as an analysis access path (AAP) is illustrated. As one of ordinary skill in the art to which the present invention pertains can refer to and / or modify this drawing, various implementation methods for the automatic optimization process of the database index design may be inferred. It is made to include all the implementation methods inferred, the technical features are not limited only to the implementation method shown in FIG.

도면3을 참조하면, 본 도면에 도시된 데이터베이스 인덱스 디자인의 자동 최적화 과정은, 상기 도면1에 도시된 데이터베이스 인덱스 디자인의 자동 최적화 시스템의 서버(100)에서 도면2의 과정을 통해 원시 접근 경로(RAP)를 포함하는 조건절의 유형이 판독되고, 상기 분류된 유형 별 실행계획에 포함된 컬럼값과 연산자의 배열을 포함하는 분석 접근 경로(AAP)가 판독된 이후, 상기 수집된 메타 정보에 포함된 정보나 상기 메타 정보에 포함된 정보를 이용하여 테이블로부터 확인되거나 통계 처리된 정보를 포함하는 하나 이상의 기준 정보를 확인하는 과정으로부터 개시될 수 있다(300).Referring to FIG. 3, the automatic optimization process of the database index design shown in FIG. 1 includes a raw access path (RAP) through the process of FIG. 2 in the server 100 of the automatic optimization system of the database index design shown in FIG. 1. Information included in the collected meta-information after the type of conditional clause including the ") is read and the analysis access path (AAP) including the array of column values and operators included in the categorized execution plan is read. B may be started from the process of identifying at least one reference information including information checked or statistically processed from a table using the information included in the meta information (300).

여기서, 상기 기준 정보는 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함할 수 있다. Here, the reference information may include the uniqueness for each column in which information recorded in each column is not duplicated and statistically processed for a unique ratio.

또한, 상기 기준 정보는 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함할 수 있다. In addition, the reference information may include a uniqueness for each column in which information recorded in each column is not duplicated and statistically processed for a unique ratio.

또한, 상기 기준 정보는 각 컬럼의 널(NULL)값의 수를 포함할 수 있다.In addition, the reference information may include the number of null values of each column.

상기와 같이 하나 이상의 기준 정보가 확인되면, 상기 서버(100)는 상기 확인된 하나 이상의 기준 정보를 근거로 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(FAP)를 생성한다(305).When one or more pieces of reference information are identified as described above, the server 100 rearranges the column values and the array of operators included in the type of conditional clause by type based on the identified one or more pieces of reference information. Generate 305.

여기서, 상기 서버(100)는 상기 개선 접근 경로(FAP)를 생성하는 과정에서 상기 조건절의 유형에 포함된 둘 이상의 컬럼값과 연산자의 조합 중 '=' 연산자와 조합된 컬럼값이 다른 연산자와 조합된 컬럼값보다 우선 배치되도록 재배열하는 것이 가능하다.Here, in the process of generating the improved access path (FAP), the server 100 combines the column value combined with the '=' operator and the other operator among the combination of two or more column values and operators included in the type of the conditional clause. It is possible to rearrange them so that they take precedence over the column values.

또한, 상기 서버(100)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 높은 컬럼값이 고유도가 낮은 컬럼값보다 우선 배치되도록 재배열하는 것이 가능하다.In addition, the server 100 may rearrange the column values having high uniqueness of each column among the two or more column values included in the type of the condition clause to be prioritized over the column values having low uniqueness.

또한, 상기 서버(100)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 낮은 컬럼값이 고유도가 높은 컬럼값보다 나중에 배치되도록 재배열하는 것이 가능하다.In addition, the server 100 may rearrange the column values having low uniqueness of each column among the two or more column values included in the type of the conditional clause to be arranged later than the column values having high specificity.

또한, 상기 서버(100)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 상기 고유도가 일정 비율 이하인 컬럼값을 배제하는 것이 가능하다.In addition, the server 100 may exclude a column value having the specificity less than or equal to a predetermined ratio among two or more column values included in the type of the condition clause.

또한, 상기 서버(100)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 널값의 수가 많은 컬럼값이 널값의 수가 적은 컬럼값보다 우선 배치되도록 재배열하는 것이 가능하다.In addition, the server 100 may rearrange the column values having a large number of null values among the two or more column values included in the type of the condition clause to be prioritized over a column value having a small number of null values.

또한, 상기 서버(100)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 널값의 수가 적은 컬럼값이 널값의 수가 많은 컬럼값보다 나중에 배치되도록 재배열하는 것이 가능하다.In addition, the server 100 may rearrange the column values having a smaller number of null values among the two or more column values included in the type of the conditional clause to be arranged later than the column values having a large number of null values.

상기 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(FAP)가 생성되면, 상기 서버(100)는 상기 재배열 생성된 개선 접근 경로(FAP)와 상기 DBMS(135) 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인한다(310).When an improved access path (FAP) is generated in which the column values and the array of operators included in the conditional clause are rearranged by type, the server 100 generates the rearranged improved access path (FAP) and the DBMS 135. In step 310, the analysis access path (AAP) of the execution plan generated therein is compared by type to check whether it matches (310).

여기서, 상기 서버(100)는 상기 개선 접근 경로(FAP)에 포함된 컬럼값과 연산자의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값과 연산자의 배열을 비교하여 일치하는지 확인하는 것이 가능하다.Here, the server 100 may check whether the column value included in the improved access path (FAP) and the array of the operator match the column value included in the analysis access path (AAP) and the array of the operator to match. .

또한, 상기 서버(100)는 상기 개선 접근 경로(FAP)에 포함된 컬럼값의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값의 배열을 비교하여 일치하는지 확인하는 것이 가능하다.In addition, the server 100 may check whether the arrangement of the column values included in the improved access path (FAP) and the arrangement of the column values included in the analysis access path (AAP) are matched.

또한, 상기 서버(100)는 상기 개선 접근 경로(FAP)에 포함된 컬럼값과 조합된 연산자와 상기 분석 접근 경로(AAP)에 포함된 컬럼값과 조합된 연산자를 비교하여 허용 범우 내에서 일정 비율 이상 일치하는지 확인하는 것이 가능하다.In addition, the server 100 compares the operator combined with the column value included in the improved access path (FAP) and the operator combined with the column value included in the analysis access path (AAP) to a certain ratio within the allowable range. It is possible to check if there is a match.

만약, 상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되지 않는 것으로 확인되면, 상기 서버(100)는 상기 개선 접근 경로(FAP)를 생성하는 과정을 반복적으로 수행할 수 있다.If it is determined that the improvement access path (FAP) and the analysis access path (AAP) do not match, the server 100 may repeat the process of generating the improvement access path (FAP).

한편, 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되는 것으로 확인되면, 상기 서버(100)는 개선 접근 경로(FAP)를 생성하는 과정을 종료하고(315), 개선 접근 경로(FAP)를 상기 실행계획의 분석 접근 경로(AAP)로 포함될 수 있도록 구조화하여 상기 DBMS(135)의 인덱스 정보에 적용한다(320). On the other hand, if it is confirmed that the improvement access path (FAP) and the analysis access path (AAP) is matched, the server 100 terminates the process of generating the improvement access path (FAP) (315), the improvement access path (FAP) ) Is structured to be included as an analysis access path (AAP) of the execution plan and applied to the index information of the DBMS 135 (320).

그리고, 상기 서버(100)는 상기 인덱스 정보에 적용된 이후 일정 기간 경과 여부를 확인하고(325), 일정 기관이 경과되었다면 상기 개선 접근 경로 생성 과정을 재수행하도록 스케쥴한다(330).In addition, the server 100 checks whether a predetermined period has elapsed after being applied to the index information (325), and if a predetermined authority has elapsed, schedules the server 100 to perform the improvement access path generation process again (330).

100 : 서버 105 : 메타정보 수집부
110 : 실행계획 수집부 115 : 접근경로 판독부
120 : 접근경로 생성부 125 : 매칭 확인부
130 : 구조화 적용부 135 : DBMS
140 : 단말
100: server 105: metadata collection unit
110: execution plan collection unit 115: access path reading unit
120: access path generation unit 125: matching confirmation unit
130: structured application unit 135: DBMS
140: terminal

Claims (16)

하나 이상의 테이블과 인덱스 정보와 메타 정보를 포함하는 DBMS(Database Management System)에 접근 가능한 서버를 통해 실행되는 방법에 있어서,
인덱스를 최적화할 DBMS의 메타 정보를 수집하는 제1 단계;
M(M≥1)개의 단말에서 DBMS로 전달되어 상기 DBMS의 테이블 중 특정 테이블에 대해 처리되는 N(N≥1)개의 질의문(QUERY)을 수집하고 상기 DBMS 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획(PLAN)을 수집하는 제2 단계;
상기 수집된 질의문을 유형 별로 분류하고 상기 분류된 각 유형 별 질의문의 구문을 해석하여 컬럼값과 연산자를 배열한 원시 접근 경로(Raw Access Path; RAP)를 포함하는 조건절의 유형을 판독하고 상기 수집된 실행계획 중 상기 분류된 유형 별 실행계획에 포함된 컬럼값과 연산자의 배열을 포함하는 분석 접근 경로(Analyzed Access Path; AAP)를 판독하는 제3 단계;
상기 수집된 메타 정보에 포함된 정보나 상기 메타 정보에 포함된 정보를 이용하여 테이블로부터 확인되거나 통계 처리된 정보를 포함하는 하나 이상의 기준 정보를 근거로 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(reFined Access Path; FAP)를 생성하는 제4 단계;
상기 재배열 생성된 개선 접근 경로(FAP)와 상기 DBMS 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인하는 제5 단계; 및
상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되지 않는 경우에 상기 매칭되지 않는 개선 접근 경로(FAP)를 상기 실행계획의 분석 접근 경로(AAP)로 포함될 수 있도록 구조화하여 상기 DBMS의 인덱스 정보에 적용하는 제6 단계;를 포함하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
In the method executed by the server accessible to the DBMS (Database Management System) containing one or more tables and index information and meta information,
Collecting meta information of a DBMS for optimizing the index;
Collect N (N≥1) QUERY processed by M (M≥1) terminals and processed for a specific table among the tables of the DBMS and analyze and execute the query in the DBMS. A second step of collecting an execution plan (PLAN) generated to make;
The collected query statement is classified by type, the syntax of each classified query statement is read, and the type of conditional clause including a raw access path (RAP) including column values and operators is read and collected. A third step of reading an analyzed access path (AAP) including an array of column values and operators included in the categorized execution plans among the prepared execution plans;
Arrangement of column values and operators included in the type of conditional clause based on one or more reference information including information included in the collected meta information or information identified or statistically processed from a table using the information included in the meta information. Generating a refined access path (FAP) rearranged by types;
A fifth step of comparing the rearranged generated improved access path (FAP) with the analysis access path (AAP) of the execution plan generated in the DBMS for each type and confirming a match; And
When the improvement access path (FAP) and the analysis access path (AAP) does not match, the non-matching improvement access path (FAP) is structured to be included as the analysis access path (AAP) of the execution plan of the DBMS And a sixth step of applying to the index information.
삭제delete 제 1항에 있어서, 상기 메타 정보는,
테이블의 컬럼구조, 각 컬럼의 행의 수, 각 컬럼의 널값의 수, 각 컬럼의 속성정보, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도, 현재 DBMS 내에 설정된 인덱스 정보를 하나 이상 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1, wherein the meta information,
Column structure of the table, the number of rows in each column, the number of null values in each column, the attribute information of each column, the uniqueness of each column which statistics the unique rate without overlapping the information recorded in each column, in the current DBMS An automatic optimization method of a database index design comprising at least one set index information.
제 1항 또는 제 3항에 있어서, 상기 제1 단계는,
DBMS에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보를 수집하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
According to claim 1 or 3, wherein the first step,
And collecting table-related information about a table for optimizing the index among the tables provided in the DBMS.
제 1항 또는 제 3항에 있어서, 상기 제1 단계는,
DBMS에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보와 상기 테이블의 메타 정보를 수집하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
According to claim 1 or 3, wherein the first step,
And collecting table-related information about the table to be optimized for the index among the tables provided in the DBMS and meta information of the table.
제 1항에 있어서,
상기 기준 정보는, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함하고,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 높은 컬럼값이 고유도가 낮은 컬럼값보다 우선 배치되도록 재배열하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1,
The reference information, the information recorded in each column does not overlap and includes a uniqueness for each column statistically processing a unique ratio,
The fourth step may include rearranging the column values having the highest intrinsicity of each column among the two or more column values included in the type of the condition clause so as to be prioritized over the column values having the low intrinsicity. How to automatically optimize database index design.
제 1항에 있어서,
상기 기준 정보는, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함하고,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 낮은 컬럼값이 고유도가 높은 컬럼값보다 나중에 배치되도록 재배열하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1,
The reference information, the information recorded in each column does not overlap and includes a uniqueness for each column statistically processing a unique ratio,
The fourth step may include rearranging the column values having low uniqueness of each column among the two or more column values included in the type of the condition clause to be arranged later than the column values having high specificity. How to automatically optimize database index design.
제 1항에 있어서,
상기 기준 정보는, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함하고,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 상기 고유도가 일정 비율 이하인 컬럼값을 배제하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1,
The reference information, the information recorded in each column does not overlap and includes a uniqueness for each column statistically processing a unique ratio,
And the fourth step includes excluding a column value having the uniqueness less than or equal to a predetermined ratio among two or more column values included in the type of conditional clause.
제 1항에 있어서,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값과 연산자의 조합 중 '=' 연산자와 조합된 컬럼값이 다른 연산자와 조합된 컬럼값보다 우선 배치되도록 재배열하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1,
The fourth step may include rearranging the column values combined with the '=' operator to take precedence over the column values combined with the other operators among the combination of two or more column values and the operators included in the condition clause type. Automatic optimization method of the database index design, characterized in that.
제 1항에 있어서,
상기 기준 정보는, 각 컬럼의 널(NULL)값의 수를 포함하고,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 널값의 수가 많은 컬럼값이 널값의 수가 적은 컬럼값보다 우선 배치되도록 재배열하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1,
The reference information includes the number of null values in each column,
The fourth step may include rearranging the column values having a large number of null values among the two or more column values included in the conditional clause to be prioritized over a column value having a small number of null values. Automatic optimization method.
제 1항에 있어서,
상기 기준 정보는, 각 컬럼의 널(NULL)값의 수를 포함하고,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 널값의 수가 적은 컬럼값이 널값의 수가 많은 컬럼값보다 나중에 배치되도록 재배열하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1,
The reference information includes the number of null values in each column,
The fourth step may include rearranging the column values having the smallest number of null values among the two or more column values included in the type of the condition clause to be arranged later than the column values having the large number of null values. Automatic optimization method.
제 1항에 있어서, 상기 제5 단계는,
상기 개선 접근 경로(FAP)에 포함된 컬럼값과 연산자의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값과 연산자의 배열을 비교하여 일치하는지 확인하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1, wherein the fifth step is
Comparing the column value and the array of the operator included in the improvement access path (FAP) with the column value and the array of the operator included in the analysis access path (AAP) and confirming that the database index is matched. How to automatically optimize your design.
제 1항에 있어서, 상기 제5 단계는,
상기 개선 접근 경로(FAP)에 포함된 컬럼값의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값의 배열을 비교하여 일치하는지 확인하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1, wherein the fifth step is
And comparing the arrangement of the column values included in the improved access path (FAP) with the arrangement of the column values included in the analysis access path (AAP) to determine whether the database index design is identical. Way.
제 13항에 있어서, 상기 제5 단계는,
상기 개선 접근 경로(FAP)에 포함된 컬럼값과 조합된 연산자와 상기 분석 접근 경로(AAP)에 포함된 컬럼값과 조합된 연산자를 비교하여 허용 범우 내에서 일정 비율 이상 일치하는지 확인하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 13, wherein the fifth step,
Comparing the operator combined with the column value included in the improvement access path (FAP) with the operator combined with the column value included in the analysis access path (AAP) and confirming that a predetermined ratio or more matches within an allowable range. Automatic optimization method of the database index design, characterized in that made by.
제 1항에 있어서, 상기 제6 단계는,
상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되지 않는 경우에 상기 제1 단계 내지 제6 단계를 반복하도록 처리하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1, wherein the sixth step is
If the improved access path (FAP) and the analysis access path (AAP) does not match, further comprising the step of repeating the first to sixth step, characterized in that the automatic optimization method of the database index design .
제 1항에 있어서, 상기 제6 단계는,
상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되는 경우 개선 접근 경로(FAP)를 생성하는 과정을 중단하고 일정 기간이 경과한 이후에 상기 제1 단계 내지 제6 단계를 다시 수행하도록 스케쥴링하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1, wherein the sixth step is
When the improvement access path (FAP) and the analysis access path (AAP) are matched, the process of generating the improvement access path (FAP) may be stopped, and the first to sixth steps may be performed again after a predetermined period has elapsed. And automatically scheduling the database index design.
KR1020170120254A 2017-09-19 2017-09-19 Method for Automatic Optimizing Index Design of Database KR102040568B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170120254A KR102040568B1 (en) 2017-09-19 2017-09-19 Method for Automatic Optimizing Index Design of Database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170120254A KR102040568B1 (en) 2017-09-19 2017-09-19 Method for Automatic Optimizing Index Design of Database

Publications (2)

Publication Number Publication Date
KR20190032697A KR20190032697A (en) 2019-03-28
KR102040568B1 true KR102040568B1 (en) 2019-11-07

Family

ID=65908224

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170120254A KR102040568B1 (en) 2017-09-19 2017-09-19 Method for Automatic Optimizing Index Design of Database

Country Status (1)

Country Link
KR (1) KR102040568B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404510A (en) 1992-05-21 1995-04-04 Oracle Corporation Database index design based upon request importance and the reuse and modification of similar existing indexes
JP2010231332A (en) 2009-03-26 2010-10-14 Nec Corp Information processing system, method and program for determining access path
US9514187B2 (en) 2012-09-28 2016-12-06 Oracle International Corporation Techniques for using zone map information for post index access pruning

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404510A (en) 1992-05-21 1995-04-04 Oracle Corporation Database index design based upon request importance and the reuse and modification of similar existing indexes
JP2010231332A (en) 2009-03-26 2010-10-14 Nec Corp Information processing system, method and program for determining access path
US9514187B2 (en) 2012-09-28 2016-12-06 Oracle International Corporation Techniques for using zone map information for post index access pruning

Also Published As

Publication number Publication date
KR20190032697A (en) 2019-03-28

Similar Documents

Publication Publication Date Title
US11755628B2 (en) Data relationships storage platform
KR101983206B1 (en) Data records selection
US20130166552A1 (en) Systems and methods for merging source records in accordance with survivorship rules
CN105912594B (en) SQL statement processing method and system
CN104714984A (en) Database optimization method and device
US20140046928A1 (en) Query plans with parameter markers in place of object identifiers
CN114328504A (en) Data joint query method, device, equipment and computer readable storage medium
US9123006B2 (en) Techniques for parallel business intelligence evaluation and management
CN105488223A (en) Analyzing and subscribing method and system of business data events
CN115203750B (en) Hive data authority control and security audit method and system based on Hive plug-in
CN113282599A (en) Data synchronization method and system
CA3131725C (en) Sql optimization method and device, computer equipment and storage medium
KR102040568B1 (en) Method for Automatic Optimizing Index Design of Database
CN113434742A (en) Account screening method and device, storage medium and electronic device
CN106919566A (en) A kind of query statistic method and system based on mass data
CN110321388B (en) Quick sequencing query method and system based on Greenplus
CN110716938A (en) Data aggregation method and device, storage medium and electronic device
CN104317820B (en) Statistical method and device for report forms
CN115168297A (en) Bypassing log auditing method and device
CN113760864A (en) Data model generation method and device
CN113779017A (en) Method and apparatus for data asset management
Du et al. A semantic‐aware data generator for ETL workflows
CN104951869A (en) Workflow-based public opinion monitoring method and workflow-based public opinion monitoring device
Rost et al. Seraph: Continuous Queries on Property Graph Streams
CN117633000A (en) Slow SQL analysis treatment method, device, equipment and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant