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

Method for Automatic Optimizing Index Design of Database Download PDF

Info

Publication number
KR20190032697A
KR20190032697A KR1020170120254A KR20170120254A KR20190032697A KR 20190032697 A KR20190032697 A KR 20190032697A KR 1020170120254 A KR1020170120254 A KR 1020170120254A KR 20170120254 A KR20170120254 A KR 20170120254A KR 20190032697 A KR20190032697 A KR 20190032697A
Authority
KR
South Korea
Prior art keywords
column
access path
information
fap
dbms
Prior art date
Application number
KR1020170120254A
Other languages
Korean (ko)
Other versions
KR102040568B1 (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

Provided is a method of automatic optimization of database index design which ensures optimal performance for the inefficiency portion of the indexes occurring in the database and efficiently design indexes. According to the present invention, a method of automatically optimizing a database index design, which is executed through a server accessible to a database management system (DBMS) including one or more tables, index information and meta information comprises the steps of collecting meta information of the DBMS to optimize an index; collecting an execution plan (PLAN); reading an analyzed access path (AAP); generating a refined access path (FAP); comparing the generated refined access path (FAP) with an analysis access path (AAP) of the execution plan generated in the DBMS for each type and confirming whether the redesigned improved access path (FAP) is matched by comparing an analysis access path (AAP) of an execution plan generated in the DBMS by type; and structuring the inconsistent refined access path (FAP) to be included into the analysis access path (AAP) of the execution plan when the refined access path (FAP) and the analysis access path (AAP) are unmatched and applying the same to index information of the DBMS.

Description

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

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

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

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

상기와 같은 문제점을 해소하기 위한 본 발명의 목적은, 데이터베이스에서 발생하는 인덱스의 비효율 부분에 대해 최적의 성능을 보장하고 효과적으로 인덱스를 설계할 수 있도록 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법을 제공하는 것이다.An object of the present invention to overcome the above problems is to provide a method of automatically optimizing a database index design that ensures optimal performance of an inefficiency portion of an index generated in a database and efficiently design indexes.

본 발명에 따른 하나 이상의 테이블과 인덱스 정보와 메타 정보를 포함하는 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 단계를 포함하여 구성될 수 있다.A method of automatically optimizing a database index design that is executed through a server accessible to a DBMS (Database Management System) including one or more tables, index information, and meta information according to the present invention includes collecting meta information of a DBMS (N > = 1) query messages (QUERY) transmitted from the M (M > = 1) terminals to the DBMS and processed for a specific table among the tables of the DBMS, A second step of collecting an execution plan (PLAN) generated for analyzing and executing a statement; sorting the collected query statements by type, interpreting the classified query syntax of each type, and arranging column values and operators A type of conditional rule including a raw access path (RAP) is read out, and a column value included in the classified execution plan of the classified execution plan A third step of reading an analyzed access path (AAP) including an array of a plurality of objects; and a third step of reading the analyzed access path (AAP) A fourth step of generating a re-designed access path (FAP) in which a column value included in the type of the conditional expression and an array of operators are rearranged for each type based on one or more pieces of reference information including information on the re- (FAP) and an analysis access path (AAP) of an execution plan generated in the DBMS, and comparing the improved access path (FAP) and the analysis access path (AAP) AAP) is not matched, the inconsistent improvement access path (FAP) is structured to be included as an analysis access path (AAP) of the execution plan, and index information of the DBMS It can comprise a sixth step of for.

본 발명에 따르면, 상기 테이블은, 복수의 컬럼을 포함하여 이루어지고, 상기 인덱스 정보는, 상기 테이블에 포함된 각 컬럼의 컬럼 구조를 설계한 개발자가 임의로 설정한 컬럼 접근 경로(Access Path; AP)와 이전 최적화 과정을 거쳐 생성된 컬럼 접근 경로(AP) 중 적어도 하나의 접근 경로를 포함하여 이루어지는 것을 포함하여 구성될 수 있다.According to the present invention, the table includes a plurality of columns, and the index information includes a column access path (AP) set by a developer who designed the column structure of each column included in the table, And a column access path (AP) generated through a previous optimization process.

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

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

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

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

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

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

본 발명에 따르면, 상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값과 연산자의 조합 중 '=' 연산자와 조합된 컬럼값이 다른 연산자와 조합된 컬럼값보다 우선 배치되도록 재배열하는 단계를 포함하여 구성될 수 있다.According to the present invention, in the fourth step, the column values combined with the '=' operator among the combinations of two or more column values and operators included in the type of the conditional rule are rearranged so as to be prioritized over column values combined with other operators May comprise 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 steps of: And rearranging the column values having a large number of columns to be arranged higher than the column values 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 the fourth step may include a step of, when the number of null values of the two or more column values included in the type of the conditional expression is small Rearranging the column values such that the column values are later than the column value with a large number of null values.

본 발명에 따르면, 상기 제5 단계는, 상기 개선 접근 경로(FAP)에 포함된 컬럼값과 연산자의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값과 연산자의 배열을 비교하여 일치하는지 확인하는 단계를 포함하여 구성될 수 있다.According to the present invention, in the fifth step, the column value included in the improvement approach path (FAP) and the array of the operator, the column value included in the analysis access path (AAP) and the array of the operator are compared Step < / RTI >

본 발명에 따르면, 상기 제5 단계는, 상기 개선 접근 경로(FAP)에 포함된 컬럼값의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값의 배열을 비교하여 일치하는지 확인하는 단계를 포함하여 구성될 수 있다.According to the present invention, the fifth step includes a step of comparing the array of the column values included in the improved approach path (FAP) with the array of the column values included in the analysis access path (AAP) Lt; / RTI >

여기서, 상기 제5 단계는, 상기 개선 접근 경로(FAP)에 포함된 컬럼값과 조합된 연산자와 상기 분석 접근 경로(AAP)에 포함된 컬럼값과 조합된 연산자를 비교하여 허용 범우 내에서 일정 비율 이상 일치하는지 확인하는 단계를 포함하여 구성될 수 있다.In the fifth step, an operator combined with a column value included in the improvement access path (FAP) is compared with an operator combined with a column value included in the analysis access path (AAP), and a certain ratio And if so, whether or not they match.

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

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

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

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

이하 첨부된 도면과 설명을 참조하여 본 발명의 바람직한 실시에 대한 동작 원리를 상세히 설명한다. 다만, 하기에 도시되는 도면과 후술되는 설명은 본 발명의 특징을 효과적으로 설명하기 위한 여러 가지 방법 중에서 바람직한 실시 방법에 대한 것이며, 본 발명이 하기의 도면과 설명만으로 한정되는 것은 아니다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be understood, however, that the drawings and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention, and are not to be construed as limiting the present invention.

즉, 하기의 실시예는 본 발명의 수 많은 실시예 중에 바람직한 합집합 형태의 실시예 예에 해당하며, 하기의 실시예에서 특정 구성(또는 단계)를 생략하는 실시예, 또는 특정 구성(또는 단계)에 구현된 기능을 특정 구성(또는 단계)로 분할하는 실시예, 또는 둘 이상의 구성(또는 단계)에 구현된 기능을 어느 하나의 구성(또는 단계)에 통합하는 실시예, 특정 구성(또는 단계)의 동작 순서를 교체하는 실시예 등은, 하기의 실시예에서 별도로 언급하지 않더라도 모두 본 발명의 권리범위에 속함을 명백하게 밝혀두는 바이다. 따라서 하기의 실시예를 기준으로 부분집합 또는 여집합에 해당하는 다양한 실시예들이 본 발명의 출원일을 소급받아 분할될 수 있음을 분명하게 명기하는 바이다.In other words, the following embodiments correspond to the preferred embodiment of the preferred embodiment of the present invention. In the following embodiments, a specific configuration (or step) is omitted, or a specific configuration (or step) (Or steps), or an embodiment that incorporates functions implemented in more than one configuration (or step) into any one configuration (or step), a particular configuration (or step) It will be apparent that the present invention is not limited to the embodiments described below. Therefore, it should be clearly stated that various embodiments corresponding to subsets or combinations based on the following embodiments can be subdivided based on the filing date of the present invention.

또한, 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 발명에서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The terms used below are defined in consideration of the functions of the present invention, which may vary depending on the user, intention or custom of the operator. Therefore, the definition should be based on the contents throughout the present invention.

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

도면1은 본 발명의 실시 방법에 따른 데이터베이스 인덱스 디자인의 자동 최적화 시스템의 구성을 도시한 도면이다.1 is a diagram showing a configuration of an automatic optimization system of a 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 on a server accessible to a DBMS (Database Management System) including one or more tables, index information, and meta information, One of ordinary skill in the art will be able to refer to and / or modify this Figure 1 to deduce various implementations of the configuration of the automatic optimization system of the database index design, And the technical features thereof are not limited only by the 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 is accessible to a DBMS 135 including one or more tables, index information, and meta information, and includes a QUERY query for a specific table in the DBMS 135, (FAP) and an analysis access path (AAP) of an execution plan generated within the DBMS 135. The FAP includes a plurality of access paths 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 application programs can share and use the database, and 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) set by a developer who designed the column structure of each column included in the table, and a column access path And an access path (AP).

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

여기서, 상기 테이블의 컬럼구조는 각 컬럼이 어떤 정보(예컨대, 'COL3'은 '이름', 'COL4'은 '직업', 'COL5'는 '주민번호', 'COL6'은 '성별' 등의 정보를 기록 등)를 기록하는 구조로 이루어졌는지를 알려주는 정보일 수 있다.Here, the column structure of the table is a table structure in which each column has some information (e.g., 'COL3', 'COLL4', 'COL5', 'COLUMN', 'COL6' Information recording, or the like) recorded on the recording medium.

상기 테이블의 각 컬럼의 속성정보는 각 컬럼의 속성(예컨대, 'COL3'은 '문자열'을 기록하고, 'COL4'는 각 직업에 할당된 '직업코드'를 기록하고, 'COL5'는 '-' 없이 13자리로 제한되는 '숫자'를 기록하고, 'COL6'은 남자의 경우 'M'의 영문자를 기록하고 여자의 경우 'F'의 영문자를 기록)에 대한 정보를 포함할 수 있다.The attribute information of each column of the table records the attribute of each column (for example, 'COL3' records 'String', 'COL4' records 'Occupation Code' assigned to each occupation, and 'COL5' And 'COL6' records the letter 'M' in the case of a man and records the letter 'F' in the case of a woman).

상기 테이블의 컬럼 별 고유도는 정보의 중복에 대한 정보로, '주민번호'와 같이 전혀 중복되지 않는 COL5의 고유도는 '100'이고, 만약 테이블이 남자 회원정보를 저장하는 DB로서 COL6에 남자 성별을 식별하는 'M'만 기록된다면(즉 컬럼 전체가 중복된다면) 고유도는 '0'으로 간주할 수 있으며, 여기서 고유도는 기 생성되어 메타 정보에 저장된 상태에서 수집될 수도 있고, 또는 수집 시점에 테이블의 각 컬럼에 저장된 정보를 통계 처리하여 실시간 생성된 후 수집될 수 있다. The intrinsic value of each table in the table is information about duplication of information, and the degree of intrinsic value of COL5 which is not duplicated at all such as 'resident number' is '100' If only 'M' identifying the gender is recorded (ie, if the entire column is duplicated), the intrinsic can be considered as '0', where the intrinsic may be pre-generated and collected in the state stored in meta information, The information stored in each column of the table can be statistically processed and then collected and collected 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. An access path (AP) May be collected in a state pre-stored in the meta information, or may be extracted and collected 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 a database index design according to the present invention, and is preferably provided on a path between the terminal 140 and the DBMS 135 Lt; / RTI > servers.

예를 들어, 상기 서버(100)는 상기 DBMS(135)를 구비하거나, 또는 상기 DBMS(135)가 구비되는 서버(별도 도시하지 않음)와 연동하는 형태가 모두 가능하며, 특정한 물리적인 서버에 의해 한정되지 아니함을 밝혀 두는 바이다.For example, the server 100 may include the DBMS 135 or may be interworked with a server (not shown) provided with the DBMS 135, and may be connected to a specific physical server But 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 includes a meta information collection unit 105 for collecting meta information of a DBMS 135, a query transmitted to process a specific table of the DBMS 135 in the terminal 140, An execution plan collecting unit 110 for collecting a query QUERY and collecting an execution plan (PLAN) corresponding to the inquiry statement, an analysis access path for an execution plan corresponding to the query query classified by type, An access path reading unit 115 for reading an access path (AAP) of the access path, and an access path generating unit 115 for generating an improved access path (FAP) by rearranging the array of the column value and the operator based on the at least one reference information, (FAP) and an analysis access path (AAP) for each type, and a matching check unit (125) for checking whether or not the FAP and the analysis access path (AAP) (AAP) 130. The structured application unit 130, As shown in FIG.

상기 메타정보 수집부(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. The meta information may include a column structure of a table of the DBMS 135, The number of null values of each column, the attribute information of each column, the degree of inheritance of each column in which the information recorded in each column is statistically processed without overlapping the information, and the index information set in the current DBMS 135 can do.

본 발명에 따르면, 상기 메타정보 수집부(105)는 상기 DBMS(135)에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보를 수집할 수 있다.According to the present invention, the meta information collecting unit 105 may collect table related information about a table for optimizing an 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 information not included in the meta information. For example, if only the meta information includes the inherent degree, only the meta information may be collected. If the intrinsic value is not included in the meta information, it is preferable to extract it in real time using the table related information.

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

예컨대, 하나의 DBMS(135)에는 복수의 테이블(예: 회원정보 테이블, 결제내역 테이블 등)이 존재할 수 있으며, 각 테이블 별로 인덱스를 최적화하기 위해 각각의 테이블 별로 테이블 관련 정보와 메타 정보를 수집하는 것이 바람직하다.For example, a plurality of tables (e.g., a membership information table and a payment history table) may exist in one DBMS 135, and table related information and meta information are collected for each table in order to optimize the index for each table .

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

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

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

상기 접근경로 생성부(120)는 상기 접근경로 판독부(115)를 통해 상기 원시 접근 경로(RAP)를 포함하는 조건절의 유형이 판독되고, 상기 분류된 유형 별 실행계획에 포함된 컬럼값과 연산자의 배열을 포함하는 분석 접근 경로(AAP)가 판독되면, 상기 수집된 메타 정보에 포함된 정보나 상기 메타 정보에 포함된 정보를 이용하여 테이블로부터 확인되거나 통계 처리된 정보를 포함하는 하나 이상의 기준 정보를 근거로 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(reFined Access Path; FAP)를 생성할 수 있다.The access path generation unit 120 reads the type of the conditional expression including the raw access path (RAP) through the access path reading unit 115, and outputs the column value included in the classified execution plan and the operator (AAP) including the arrangement of the meta information is read out, one or more reference information including the information included in the collected meta information or information included in the meta information, A redefined access path (FAP) can be generated by rearranging the column values included in the type of the conditional expression and the array of operators by type.

상기 접근경로 생성부(120)는 상기 개선 접근 경로(FAP)를 생성하는 과정에서 상기 조건절의 유형에 포함된 둘 이상의 컬럼값과 연산자의 조합 중 '=' 연산자와 조합된 컬럼값이 다른 연산자와 조합된 컬럼값보다 우선 배치되도록 재배열하는 것이 가능하다.In the course of generating the improved access path (FAP), the access path generation unit 120 generates the access path FAP based on the combination of two or more column values and operators included in the type of the conditional expression, It is possible to rearrange columns so that they are arranged prior to the combined column values.

본 발명의 실시 방법에 따르면, 상기 개선 접근 경로(FAP)를 생성하기 위한 근거가 되는 기준 정보는, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함할 수 있으며, 상기 접근경로 생성부(120)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 높은 컬럼값이 고유도가 낮은 컬럼값보다 우선 배치되도록 재배열할 수 있다.According to the method of the present invention, the reference information as a basis for generating the improved access path (FAP) includes the degree of inheritance for each column in which the information recorded in each column is statistically processed without overlapping the information And the access path generation unit 120 may rearrange the column values having higher intrinsic values of the columns among the two or more column values included in the type of the conditional precedence than those having lower intrinsic values.

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

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

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

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

상기 매칭 확인부(125)는 상기 접근경로 생성부(120)를 통해 상기 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(FAP)가 생성되면, 상기 재배열 생성된 개선 접근 경로(FAP)와 상기 DBMS(135) 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인할 수 있다.When the improved access path (FAP) in which the column values included in the type of the conditional expression and the array of the operators are rearranged for each type is generated through the access path generation unit 120, (AAP) of the execution plan generated in the DBMS 135 by comparing the FAP with the improved access path (FAP).

본 발명의 실시 방법에 따르면, 상기 매칭 확인부(125)는 상기 개선 접근 경로(FAP)에 포함된 컬럼값과 연산자의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값과 연산자의 배열을 비교하여 일치하는지 확인할 수 있다.According to the embodiment of the present invention, the matching confirmation unit 125 compares the column value included in the improvement access path (FAP) with the array of the operator and the array of the column value and the operator included in the analysis access path (AAP) To confirm that they match.

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

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

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

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

이 경우, 상기 매칭 확인부(125)는 개선 접근 경로(FAP)와 분석 접근 경로(AAP)의 컬럼값 배열 순서가 동일한 상태에서 각 컬럼값과 조합된 연산자가 완벽하게 동일하지 않더라도 일정 비율 이상만 동일하면 매칭되는 것으로 간주할 수 있다.In this case, the matching confirmation unit 125 determines whether or not the column values of the improvement access path (FAP) and the analysis access path (AAP) are in the same order, If they are the same, they can be regarded as matching.

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

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

본 발명의 다른 실시 방법에 따르면, 상기 구조화 적용부(130)는 상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되는 경우 개선 접근 경로(FAP)를 생성하는 과정을 중단하고 일정 기간이 경과한 이후에 상기 메타정보 수집부(105)를 통해 상기 DBMS(135)에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보를 수집하는 과정과, 상기 실행계획 수집부(110)를 상기 DBMS(135) 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획을 수집하는 과정과, 상기 접근경로 판독부(115)를 통해 상기 수집된 질의문을 유형 별로 분류하고 상기 분류된 각 유형 별 질의문의 구문을 해석하여 컬럼값과 연산자를 배열한 원시 접근 경로(RAP)를 포함하는 조건절의 유형을 판독하는 과정과, 상기 접근경로 생성부(120)를 통해 상기 수집된 메타 정보에 포함된 정보나 상기 메타 정보에 포함된 정보를 이용하여 테이블로부터 확인되거나 통계 처리된 정보를 포함하는 하나 이상의 기준 정보를 근거로 조건절의 유형에 포함된 컬럼값과 연산자의 배열을 유형 별로 재배열한 개선 접근 경로(FAP)를 생성하는 과정과, 상기 매칭 확인부(125)를 통해 상기 재배열 생성된 개선 접근 경로(FAP)와 상기 DBMS(135) 내부에서 생성된 실행계획의 분석 접근 경로(AAP)를 유형 별로 비교하여 매칭되는지 확인하는 과정을 다시 수행하도록 스케쥴링할 수 있다According to another embodiment of the present invention, when the improvement access path FAP and the analysis access path AAP are matched, the structuring application 130 stops the process of generating the improvement access path FAP, Collecting table related information about a table to be optimized in the index among the tables provided in the DBMS 135 through the meta information collecting unit 105 after the elapse of the predetermined time, Collecting an execution plan generated for analyzing and executing the query statement in the DBMS 135; classifying the collected query statements according to types by the access path reading unit 115; Reading a type of a conditional statement including a raw access path (RAP) in which a column value and an operator are arranged by interpreting a syntax of a query inquiry for each type, Based on at least one piece of reference information including information obtained from the table or information statistically processed by using the information included in the meta information, and rearranging the array of the column values and the operators included in the type of the conditional, (FAP) and an analysis access path (AAP) of an execution plan generated in the DBMS (135) through the matching confirmation unit (125) ) Are compared for each type and it is possible to perform scheduling again to check whether they are matched

도면2는 본 발명의 실시 방법에 따른 데이터베이스 인덱스 디자인의 자동 최적화 과정을 도시한 도면이다.FIG. 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에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다. 2 is a diagram illustrating an example of an automatic optimization system of the database index design shown in FIG. 1, in which a server 100 of a database index design system includes one or more tables, a query message for a specific table of the DBMS 135 including index information and meta information QUERY ") and an execution plan (PLAN) are collected and read out. As a person skilled in the art, referring to and / or modifying FIG. 2, It is to be understood that the present invention is not limited to the above-described embodiments, and various modifications and changes may be made without departing from the scope of the present invention.

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

상기 서버(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 a column structure of a table of the DBMS 135, the number of rows of each column, the number of null values of each column, The attribute information of each column, the information recorded in each column, the intrinsic value of each column in which the unique ratio is statistically processed, and the index information set in the current DBMS 135.

또한, 상기 서버(100)는 상기 인덱스를 최적화할 DBMS(135)의 메타 정보를 수집하는 과정에서, 상기 DBMS(135)에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보를 수집할 수 있으며, 상기 테이블 관련 정보는 상기 메타 정보에 포함되지 않은 정보 중 개선 접근 경로(FAP)의 생성을 위해 필요한 정보로써, 예를 들어 고유도가 메타 정보에 기 포함되어 있다면 메타 정보만 수집해도 되지만, 고유도가 메타 정보에 기 포함되어 있지 않다면 테이블 관련 정보를 이용하여 실시간 추출할 수 있다. In addition, the server 100 may collect table-related information about a table to be optimized in the index among the 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 only the meta information includes the inherent degree, only the meta information may be collected. However, If the inheritance is not included in the meta information, it can be extracted in real time using the table related information.

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

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

그리고, 상기 서버(100)는 상기 DBMS(135) 내부에서 상기 질의문을 분석하여 실행하기 위해 생성되는 실행계획(PLAN)을 수집한다(210).Then, 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 to be processed for the specific table and an execution plan to analyze and execute the query in the DBMS 135 are collected, the server 100 classifies the collected query statements by type 215).

상기 수집된 질의문이 유형 별로 분류되면, 상기 서버(100)는 상기 분류된 각 유형 별 질의문의 구문을 해석하고(220), 컬럼값과 연산자를 배열한 원시 접근 경로(RAP)를 포함하는 조건절의 유형을 판독한다(225). If the collected query statements are classified according to types, the server 100 interprets the query syntax of each classified type, and generates a conditional statement including a RAP that includes a column value and an operator, (225).

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

도면3은 본 발명의 실시 방법에 따른 데이터베이스 인덱스 디자인의 자동 최적화 과정을 도시한 도면이다.FIG. 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에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다. 3, after the process of FIG. 2, an improved access path (FAP) is created, and the generated improved access path (FAP) and an analysis access path of an execution plan generated within the DBMS 135 (AAP) are compared with each other to confirm that they are matched and applied to the index information of the DBMS 135 structured to include the unmatched improvement access path (FAP) as an analysis access path (AAP) Those skilled in the art will be able to refer to and / or modify Figure 3 to deduce various implementations of the automatic optimization process of the database index design, All of the above-described embodiments are included, and the technical features of the present invention are not limited only by the 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 is performed by the server 100 of the automatic optimization system of the database index design shown in FIG. 1, ) Is read out, and after an analysis access path (AAP) including an array of operators and column values included in the classified execution plan is read, the information included in the collected meta information (300) from the process of confirming one or more reference information including information confirmed or statistically processed from the table using the information included in the meta information.

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

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

또한, 상기 기준 정보는 각 컬럼의 널(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 generates an improved access path (FAP) by rearranging the column values and the array of operators included in the type of the conditional expression based on the identified one or more pieces of reference information, (305).

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

또한, 상기 서버(100)는 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 높은 컬럼값이 고유도가 낮은 컬럼값보다 우선 배치되도록 재배열하는 것이 가능하다.In addition, the server 100 can rearrange the column values having higher intrinsic values of the respective columns among the two or more column values included in the type of the conditional expression so that the column values have a higher degree of uniqueness.

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

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

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

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

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

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

또한, 상기 서버(100)는 상기 개선 접근 경로(FAP)에 포함된 컬럼값의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값의 배열을 비교하여 일치하는지 확인하는 것이 가능하다.In addition, the server 100 can compare 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) to confirm that they match.

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

만약, 상기 개선 접근 경로(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 repeatedly perform the process of generating the improved 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 are matched, the server 100 terminates the process of generating the FAP (step 315) ) Is structured to be included as the analysis access path (AAP) of the execution plan and applied to the index information of the DBMS 135 (320).

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

100 : 서버 105 : 메타정보 수집부
110 : 실행계획 수집부 115 : 접근경로 판독부
120 : 접근경로 생성부 125 : 매칭 확인부
130 : 구조화 적용부 135 : DBMS
140 : 단말
100: server 105: meta information collecting unit
110: execution plan collecting unit 115: access path reading unit
120: access path generating unit 125: matching check 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 단계;를 포함하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
1. A method executed via a server accessible to a Database Management System (DBMS) comprising one or more tables, index information and meta information,
A first step of collecting meta information of a DBMS to optimize an index;
M (M > = 1) terminals collects N (N > = 1) query statements (QUERY) transmitted to the DBMS and processed for a specific table among the tables of the DBMS, analyzes the query statement in the DBMS, A second step of collecting an execution plan (PLAN) that is generated in order to generate the execution plan (PLAN);
The type of the conditional clause including the raw access path (RAP) in which the column value and the operator are arranged by interpreting the collected query statement by type, analyzing the classified query syntax of each type, A third step of reading an analyzed access path (AAP) including an array of operators and column values included in the classified execution plan of the classified execution plan;
A column value included in the type of the conditional expression and an array of operators based on one or more pieces of reference information including the information included in the collected meta information or the information included in the meta information, A fourth step of generating a re-designed access path (FAP) rearranged by type;
A fifth step of comparing the redesigned improvement access path (FAP) and the analysis access path (AAP) of the execution plan generated in the DBMS by type to check if they are matched; And
Wherein said inconsistent improvement approach path (FAP) is structured to be included as an analysis access path (AAP) of said execution plan when said improvement access path (FAP) and said analysis access path (AAP) The method comprising the steps of: a.
제 1항에 있어서,
상기 테이블은, 복수의 컬럼을 포함하여 이루어지고,
상기 인덱스 정보는, 상기 테이블에 포함된 각 컬럼의 컬럼 구조를 설계한 개발자가 임의로 설정한 컬럼 접근 경로(Access Path; AP)와 이전 최적화 과정을 거쳐 생성된 컬럼 접근 경로(AP) 중 적어도 하나의 접근 경로를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method according to claim 1,
Wherein the table comprises a plurality of columns,
The index information may include at least one of a column access path (AP) set by a developer who designed the column structure of each column included in the table and a column access path (AP) generated through a previous optimization process And an access path to the database index.
제 1항에 있어서, 상기 메타 정보는,
테이블의 컬럼구조, 각 컬럼의 행의 수, 각 컬럼의 널값의 수, 각 컬럼의 속성정보, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도, 현재 DBMS 내에 설정된 인덱스 정보를 하나 이상 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method of claim 1,
The column structure of the table, the number of rows of each column, the number of null values of each column, the attribute information of each column, the degree of inheritance of each column statistically processed without duplication of information recorded in each column, Wherein the database index design information includes at least one set index information.
제 1항 또는 제 3항에 있어서, 상기 제1 단계는,
DBMS에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보를 수집하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
4. The method according to claim 1 or 3,
Further comprising the step of collecting table related information about a table to be optimized in the index among the tables provided in the DBMS.
제 1항 또는 제 3항에 있어서, 상기 제1 단계는,
DBMS에 구비된 테이블 중 인덱스를 최적화할 테이블에 대한 테이블 관련 정보와 상기 테이블의 메타 정보를 수집하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
4. The method according to claim 1 or 3,
And collecting the table-related information about the table to be optimized in the index among the tables provided in the DBMS and the meta information of the table.
제 1항에 있어서,
상기 기준 정보는, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함하고,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 높은 컬럼값이 고유도가 낮은 컬럼값보다 우선 배치되도록 재배열하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method according to claim 1,
Wherein the reference information includes an intrinsic value for each column in which information recorded in each column is statistically processed without being duplicated,
Wherein the fourth step includes rearranging the column values having higher intrinsic intensities of the columns among the two or more column values included in the type of the conditional expression so as to preferentially arrange the column values having lower intrinsic intensities Automatic optimization of database index design.
제 1항에 있어서,
상기 기준 정보는, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함하고,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 각 컬럼의 고유도가 낮은 컬럼값이 고유도가 높은 컬럼값보다 나중에 배치되도록 재배열하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method according to claim 1,
Wherein the reference information includes an intrinsic value for each column in which information recorded in each column is statistically processed without being duplicated,
Wherein the fourth step includes rearranging a column value having a low intrinsic value of each column among the two or more column values included in the type of the conditional rule so as to be later than a column value having a high intrinsic value Automatic optimization of database index design.
제 1항에 있어서,
상기 기준 정보는, 각 컬럼에 기록된 정보들이 중복되지 않고 고유한 비율을 통계 처리한 컬럼 별 고유도를 포함하고,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 상기 고유도가 일정 비율 이하인 컬럼값을 배제하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method according to claim 1,
Wherein the reference information includes an intrinsic value for each column in which information recorded in each column is statistically processed without being duplicated,
Wherein the fourth step includes excluding column values of the two or more column values included in the type of the conditional expression, the column values having a certain degree or less of the inherent degree.
제 1항에 있어서,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값과 연산자의 조합 중 '=' 연산자와 조합된 컬럼값이 다른 연산자와 조합된 컬럼값보다 우선 배치되도록 재배열하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method according to claim 1,
The fourth step includes 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 conditional rule such that the column values are prioritized over column values combined with other operators Wherein the database index design is automatically optimized.
제 1항에 있어서,
상기 기준 정보는, 각 컬럼의 널(NULL)값의 수를 포함하고,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 널값의 수가 많은 컬럼값이 널값의 수가 적은 컬럼값보다 우선 배치되도록 재배열하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method according to claim 1,
Wherein the reference information includes a number of null values of each column,
Wherein the fourth step includes rearranging a column value having a larger number of null values among the two or more column values included in the type of the conditional expression so that the column value is arranged prior to the column value having a smaller number of null values. Automatic optimization method of.
제 1항에 있어서,
상기 기준 정보는, 각 컬럼의 널(NULL)값의 수를 포함하고,
상기 제 4단계는, 상기 조건절의 유형에 포함된 둘 이상의 컬럼값 중 널값의 수가 적은 컬럼값이 널값의 수가 많은 컬럼값보다 나중에 배치되도록 재배열하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method according to claim 1,
Wherein the reference information includes a number of null values of each column,
Wherein the fourth step includes rearranging a column value having a small number of null values of at least two of the column values included in the type of the conditional rule so as to be later than a column value having a large number of null values. Automatic optimization method of.
제 1항에 있어서, 상기 제5 단계는,
상기 개선 접근 경로(FAP)에 포함된 컬럼값과 연산자의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값과 연산자의 배열을 비교하여 일치하는지 확인하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method as claimed in claim 1,
And comparing the column value and the array of operators included in the improvement access path (FAP) with the array of the operator and the column value included in the analysis access path (AAP) Automatic optimization method of design.
제 1항에 있어서, 상기 제5 단계는,
상기 개선 접근 경로(FAP)에 포함된 컬럼값의 배열과 분석 접근 경로(AAP)에 포함된 컬럼값의 배열을 비교하여 일치하는지 확인하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method as claimed in claim 1,
And comparing the array of column values included in the improvement access path (FAP) with the array of column values included in the analysis access path (AAP) to confirm whether or not they are matched. Way.
제 13항에 있어서, 상기 제5 단계는,
상기 개선 접근 경로(FAP)에 포함된 컬럼값과 조합된 연산자와 상기 분석 접근 경로(AAP)에 포함된 컬럼값과 조합된 연산자를 비교하여 허용 범우 내에서 일정 비율 이상 일치하는지 확인하는 단계를 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
14. The method of claim 13,
Comparing an operator combined with a column value included in the improvement access path (FAP) and an operator combined with a column value included in the analysis access path (AAP) and checking whether the operator matches a predetermined ratio or more within an allowable range Wherein the database index design is automatically optimized.
제 1항에 있어서, 상기 제6 단계는,
상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되지 않는 경우에 상기 제1 단계 내지 제6 단계를 반복하도록 처리하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method as claimed in claim 1,
Further comprising the step of repeating the first through sixth steps when the improvement access path (FAP) and the analysis access path (AAP) do not match each other. .
제 1항에 있어서, 상기 제6 단계는,
상기 개선 접근 경로(FAP)와 분석 접근 경로(AAP)가 매칭되는 경우 개선 접근 경로(FAP)를 생성하는 과정을 중단하고 일정 기간이 경과한 이후에 상기 제1 단계 내지 제6 단계를 다시 수행하도록 스케쥴링하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 데이터베이스 인덱스 디자인의 자동 최적화 방법.
The method as claimed in claim 1,
If the improvement access path FAP and the analysis access path AAP are matched, the process of generating the improvement access path FAP is stopped and the first through sixth steps are performed again after a predetermined period of time has elapsed The method of claim 1, further comprising the step of:
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 true KR20190032697A (en) 2019-03-28
KR102040568B1 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
KR102040568B1 (en) 2019-11-07

Similar Documents

Publication Publication Date Title
US9953095B1 (en) Enhanced delivery of deidentified production data
Hurka et al. Is morality policy different? Testing sectoral and institutional explanations of policy change
CN105488223A (en) Analyzing and subscribing method and system of business data events
CN110222054A (en) A kind of method, apparatus, terminal device and storage medium improving retrieval rate
CN109542737A (en) Platform alert processing method, device, electronic device and storage medium
Price et al. Preliminary statistical analysis of documentation of killings in the Syrian Arab Republic
Martino et al. Temporal outlier analysis of online civil trial cases based on graph and process mining techniques
Thummula et al. A cost-effective technique to avoid communication and computation overhead in vehicle insurance database for online record monitoring
CN111062562A (en) Community grid service linkage disposal control method and system
Karkin et al. Structural changes driven by e-petitioning technology: changing the relationship between the central government and local governments
Kalyani The Creativity Decline: Evidence from US Patents
CN111291408A (en) Data management method and device and electronic equipment
CN110750559A (en) Authority information processing method and device, storage medium and electronic device
CN106777310B (en) Information verification method and device
Balasubramanian et al. NBER Patent Data-BR Bridge: User guide and technical documentation
CN112330299A (en) Business process management method, device, equipment and storage medium
KR20190032697A (en) Method for Automatic Optimizing Index Design of Database
ES2900746T3 (en) Systems and methods to effectively distribute warning messages
CN109766440B (en) Method and system for determining default classification information for object text description
US20230074414A1 (en) Optimizing flow of data within etl data processing pipeline
RU115095U1 (en) LEGAL INFORMATION COLLECTION SYSTEM AND ITS ANALYSIS FOR IDENTIFYING PROBLEM ISSUES AND DISADVANTAGES OF REGULATORY LEGAL REGULATION
CN115048379A (en) Statistical method, terminal device and computer-readable storage medium
Bruelheide Cocktail clustering–a new hierarchical agglomerative algorithm for extracting species groups in vegetation databases
CN115293682A (en) Abnormal logistics order monitoring method and related device
CN111026705B (en) Building engineering file management method, system and terminal equipment

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