KR20230146162A - 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법 - Google Patents
사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법 Download PDFInfo
- Publication number
- KR20230146162A KR20230146162A KR1020220044542A KR20220044542A KR20230146162A KR 20230146162 A KR20230146162 A KR 20230146162A KR 1020220044542 A KR1020220044542 A KR 1020220044542A KR 20220044542 A KR20220044542 A KR 20220044542A KR 20230146162 A KR20230146162 A KR 20230146162A
- Authority
- KR
- South Korea
- Prior art keywords
- column
- user
- query
- data
- columns
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004458 analytical method Methods 0.000 claims abstract description 16
- 238000005516 engineering process Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000007405 data analysis Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000002996 emotional effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 빅데이터 영역에서 사용자가 자주 사용하는 SQL 쿼리 패턴에 적합한 메타 데이터와 인덱스를 자동으로 생성한 후 이를 통해 사용자 SQL 쿼리문 수행에 활용함으로써 쿼리 성능을 향상시킬 수 있도록 한 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법에 관한 것이다.
본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법은 데이터베이스 관리 시스템에 의해 수행되고, 사용자가 지정한 기간() 동안 사용자의 SQL 쿼리 로그 데이터를 분석하여 'WHERE'절에 사용된 칼럼에 대해 테이블 별로 분류한 후 별도의 분석 데이터로 저장하는 (a) 단계; (a) 단계의 분석 데이터를 활용하여 테이블 별로 상기 'WHERE'절에 포함된 테이블 별 전체 칼럼 건수인 전체 사용 칼럼수(), 상기 'WHERE'절에 포함된 테이블 별 칼럼의 전체 사용 횟수(, 각 칼럼 별 사용 횟수( 및 칼럼 별 평균 사용 횟수()를 계산하는 (b) 단계; (b) 단계에서 계산된 값을 통해 메타 데이터와 인덱스를 생성할 칼럼 리스트를 생성하는 (c) 단계 및 (c) 단계에서 생성된 칼럼 리스트 반영하여 향후 데이터베이스에 적재되는 데이터에 대해서 메타 데이터와 인덱스를 자동으로 생성하는 (d) 단계를 포함하여 이루어진다.
본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법은 데이터베이스 관리 시스템에 의해 수행되고, 사용자가 지정한 기간() 동안 사용자의 SQL 쿼리 로그 데이터를 분석하여 'WHERE'절에 사용된 칼럼에 대해 테이블 별로 분류한 후 별도의 분석 데이터로 저장하는 (a) 단계; (a) 단계의 분석 데이터를 활용하여 테이블 별로 상기 'WHERE'절에 포함된 테이블 별 전체 칼럼 건수인 전체 사용 칼럼수(), 상기 'WHERE'절에 포함된 테이블 별 칼럼의 전체 사용 횟수(, 각 칼럼 별 사용 횟수( 및 칼럼 별 평균 사용 횟수()를 계산하는 (b) 단계; (b) 단계에서 계산된 값을 통해 메타 데이터와 인덱스를 생성할 칼럼 리스트를 생성하는 (c) 단계 및 (c) 단계에서 생성된 칼럼 리스트 반영하여 향후 데이터베이스에 적재되는 데이터에 대해서 메타 데이터와 인덱스를 자동으로 생성하는 (d) 단계를 포함하여 이루어진다.
Description
본 발명은 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법에 관한 것으로, 특히 빅데이터 영역에서 사용자가 자주 사용하는 SQL 쿼리 패턴에 적합한 메타 데이터와 인덱스를 자동으로 생성한 후 이를 통해 사용자 SQL 쿼리문 수행에 활용함으로써 쿼리 성능을 향상시킬 수 있도록 한 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법에 관한 것이다.
빅데이터(big data)란 복잡하고 다양한 대규모 데이터세트 자체는 물론 이 데이터세트로부터 정보를 추출하고 결과를 분석하여 더 큰 가치를 창출하는 기술을 뜻한다. 수치 데이터 등 기존의 정형화된 정보뿐 아니라 텍스트, 이미지, 오디오 또는 로그 기록 등 여러 형태의 비정형 정보가 빅 데이터로 활용된다.
최근 모바일기기와 SNS 이용 보편화 및 사물인터넷 확산 등으로 데이터의 양이 기하급수적으로 늘어나고 있다. 하지만 저장매체의 가격 하락 등으로 데이터 관리 비용이 감소하고, 클라우드 컴퓨팅 등으로 데이터 처리 및 분석 기술이 발전하면서 빅데이터 활용 여건은 계속 개선되어가고 있다.
이러한, 빅데이터 관련 기술은 데이터를 수집 및 저장하는 데이터 '처리기술'과 데이터를 분석 및 시각화하는 데이터 '분석기술'로 구성된다. 데이터 처리기술의 발달은 저가의 서버와 하드디스크를 여러 대 연결하여 대용량 데이터를 분산 처리함으로써 기존의 고비용 데이터 분석 솔루션을 대체하였다. 데이터 분석기술의 발달은 기존 데이터 분석에서는 불가능했던 비선형적 상관관계 규명이나 감성 분석 등 비정형화된 분석도 가능하게 만들었다. 여기서 감성 분석은 텍스트 채굴(text mining) 기술의 하나로 텍스트(예: 상품 품평)에 나타난 사람들의 태도, 의견 또는 성향 등의 주관적인 속성을 지닌 데이터를 추출하여 분석하는 기법이다.
이처럼 빅데이터는 대량(high-volume), 초고속(high-velocity), 고다양성(high-variety) 및 고가변성(high-variability)의 특성을 지니며 고정확성(high-veracity)을 확보해야 하는 정보 자산이다.
한편, 광범위한 빅데이터 영역을 분석하기 위해 사용자는 다양한 SQL 쿼리문을 통해 데이터베이스에 저장된 데이터를 활용해야 하는데, 분석해야 하는 데이터의 양이 방대해지면서 데이터 과학자와 데이터 분석가에게는 무엇보다도 빠른 데이터 처리 및 빠른 쿼리 결과 획득이 요구되고 있다.
여기서, SQL(Structured Query Language)은 데이터베이스 시스템에서 데이터의 검색과 관리 및 스키마 생성과 수정 등을 위해 사용되는 질의 언어이다.
인덱스(index)는 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료 구조로서, 예를 들어 도서의 맨 앞 또는 맨 뒤에 추가되는 색인과 동일한 역할을 한다. 즉, 데이터베이스에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료 구조를 생성하여 원하는 데이터를 빠르게 조회할 수 있도록 돕고 있다.
메타 데이터(meta data)는 데이터에 관한 구조화된 데이터를 의미하는데, 대량의 데이터 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 생성되는 데이터로서, 데이터의 'MIN', 'MAX' 또는 데이터 타입 등 데이터와 관련된 정보를 포함하고 있다. 예를 들어, 이미지에 대한 메타 데이터로는 촬영 날짜와 시간 정보, 카메라 정보(카메라 제조사, 모델명) 및 카메라 설정 정보(초점 거리, 플래시, ISO 감도, 조리개, 셔터 속도, 회전 방향, 색 공간 등)가 포함되고, 이외에도 아티스트나 저작권 정보 또는 위치 정보 등이 추가로 포함될 수 있다.
한편, 종래 SQL 쿼리문을 통해 데이터베이스에 저장된 빅 데이터를 활용함에 있어서는 데이터베이스에서 특정 칼럼에 대해 인덱스를 생성해야 하는데, 이 과정에서 대상 칼럼이 갖고 있는 특징을 고려하여 인덱스를 생성할 칼럼을 선정한다.
구체적으로, 규모가 작지 않은 테이블, 'INSERT', 'UPDATE' 및 'DELETE'가 자주 발생하지 않는 컬럼, 'JOIN'이나 'WHERE' 또는 'ORDER BY'에 자주 사용되는 컬럼 및 데이터의 중복도가 낮은 컬럼일수록 인덱스를 생성하는 것이 효과적이다.
그러나 하루에도 무수히 많이 수집되는 빅 데이터의 경우 트렌드에 따라 분석해야 하는 칼럼이 계속 변화하여 인덱스를 생성할 칼럼이 사용되지 않게 될 수도 있는데, 이 경우에 인덱스를 생성한 칼럼의 내용을 수정, 변경 또는 삭제하기 위해서는 사용자가 해당 컬럼에 대한 카디널리티(cardinarity), 선택도(selectivity), 활용도 및 중복도 등을 일일이 다시 확인해야 하는 번거로움이 있었다.
선행기술 1: 제10-2020-0106950호 공개특허공보(발명의 명칭: SQL 질의 플랜들을 최적화하기 위한 차원 콘텍스트 전파 기술들)
선행기술 2: 제10-1747265호 등록특허공보(발명의 명칭: 쿼리를 실행하기 위한 방법, 장치 및 컴퓨터 판독가능 매체)
본 발명은 전술한 문제점을 해결하기 위해 안출된 것으로서, 빅데이터 영역에서 사용자가 자주 사용하는 SQL 쿼리 패턴에 적합한 메타 데이터와 인덱스를 자동으로 생성한 후 이를 통해 사용자 SQL 쿼리문 수행에 활용함으로써 쿼리 성능을 향상시킬 수 있도록 한 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법을 제공함을 목적으로 한다.
전술한 목적을 달성하기 위한 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법은 데이터베이스 관리 시스템에 의해 수행되고, 사용자가 지정한 기간() 동안 사용자의 SQL 쿼리 로그 데이터를 분석하여 'WHERE'절에 사용된 칼럼에 대해 테이블 별로 분류한 후 별도의 분석 데이터로 저장하는 (a) 단계; (a) 단계의 분석 데이터를 활용하여 테이블 별로 상기 'WHERE'절에 포함된 테이블 별 전체 칼럼 건수인 전체 사용 칼럼수(), 상기 'WHERE'절에 포함된 테이블 별 칼럼의 전체 사용 횟수(, 각 칼럼 별 사용 횟수( 및 칼럼 별 평균 사용 횟수()를 계산하는 (b) 단계; (b) 단계에서 계산된 값을 통해 메타 데이터와 인덱스를 생성할 칼럼 리스트를 생성하는 (c) 단계 및 (c) 단계에서 생성된 칼럼 리스트 반영하여 향후 데이터베이스에 적재되는 데이터에 대해서 메타 데이터와 인덱스를 자동으로 생성하는 (d) 단계를 포함하여 이루어진다.
전술한 구성에서, 상기 (a) 단계 내지 상기 (d) 단계는 사용자에 의한 쿼리 동작이 없는 유휴 상태에 수행된다.
상기 (b) 단계에서, 칼럼 별 사용 횟수를 나타내는 가 칼럼 별 평균 사용 횟수를 나타내는 이상( )인 칼럼을 칼럼 리스트에 포함하되, 는 양의 실수이다.
현 주기에서 생성된 칼럼 리스트를 이전 주기들에서 생성된 칼럼 리스트와 비교하여 연속으로 N번째 포함되는 칼럼을 영구적으로 메타 데이터와 인덱스를 생성하는 칼럼으로 등록하되, N은 양의 정수이다.
본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법에 따르면, 사용자의 SQL 사용 패턴에 따라 메타 데이터와 인덱스를 생성함으로써 사용자가 직접 칼럼의 특성을 고려할 필요가 없으며, 사용자가 직접 인덱스를 반복하여 생성 및 삭제하는 작업을 감소시킬 수가 있다.
이뿐 아니라 SQL 쿼리 분석 트렌드에 따라 칼럼의 인덱스와 메타 데이터가 유연하게 업데이트 됨으로써 사용자의 SQL 쿼리에 대해 빠르게 결과를 리턴할 수가 있다.
도 1은 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법을 예시적으로 설명하기 위한 메타 데이터 테이블.
도 2는 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법을 설명하기 위한 흐름도.
도 3은 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법에서 'WHERE'절에 사용된 컬럼을 분류하는 과정을 예시적으로 보인 도.
도 4는 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법에서 칼럼 별 평균 사용 횟수를 구하는 방식을 예시적으로 설명하기 위한 도.
도 2는 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법을 설명하기 위한 흐름도.
도 3은 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법에서 'WHERE'절에 사용된 컬럼을 분류하는 과정을 예시적으로 보인 도.
도 4는 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법에서 칼럼 별 평균 사용 횟수를 구하는 방식을 예시적으로 설명하기 위한 도.
이하에서는 첨부한 도면을 참조하여 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법의 바람직한 실시예에 대해 상세하게 설명한다.
먼저 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법을 요약하여 설명하면, 사용자는 통상적으로 SQL 쿼리문의 'WHERE' 절에 다양한 조건들을 조합하여 쿼리를 수행하는데, 이 경우에 여러 칼럼 조건에 대해 모두 메타 데이터와 인덱스를 생성할 경우에 실시간으로 생성되는 로그성 데이터를 데이터베이스에 적재하는 성능이 저하될 수가 있다.
이를 감안하여 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법에서는 일정 기간 동안 사용자의 SQL 쿼리를 로그 데이터로 저장한 후 특정 사용 패턴, 예를 들어 사용한 테이블 및 'WHERE'절에 사용하는 칼럼의 사용 빈도수 등을 분석하여 메타 데이터와 인덱스를 생성할 칼럼을 선정하여 반영한다. 메타 데이터와 인덱스 생성을 위한 프로세싱은 사용자에 의한 쿼리 동작이 없는 유휴 상태에서 수행될 수 있다.
이와 같이 사용자가 자주 사용하는 SQL 쿼리 패턴 분석을 통해 유연하게 메타 데이터와 인덱스를 생성함으로써 사용자의 SQL 쿼리에 빠르게 대응하여 쿼리 결과를 생성할 뿐 아니라 사용자의 SQL 분석 트렌드에 따라 칼럼을 유연하게 변경할 수가 있다.
도 1은 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법을 예시적으로 설명하기 위한 메타 데이터 테이블인바, 본 발명의 방법에 따르면 특정 테이블(t1)에서 메타 데이터로 선정된 'col_a' 칼럼에 대해 'MIN' 및 'MAX' 값에 해당하는 메타 데이터를 자동으로 생성한다.
이 상태에서 만약 사용자의 SQL 쿼리문이 "SELECT * FROM t1 WHERE col_a = 'X'"인 경우에 본 발명의 방법에 따르면, 도 1에 예시한 바와 같이 각 파일의 메타 데이터 활용하여 1 및 2번 파일은 'MIN'~'MAX' 범위에 'WHERE'절에 해당 값('X')을 포함하지 않기 때문에 해당 파일을 로드할 필요가 없고, 이에 따라 해당 파일을 스킵할 수가 있다.
도 2는 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법을 설명하기 위한 흐름도이다. 도 2에 도시한 바와 같이, 먼저 단계 S10에서는 사용자의 SQL 쿼리 로그 데이터를 수집 및 분석하는데, 사용자가 지정한 기간() 동안 사용자의 SQL 쿼리문을 수집하여 로그 데이터로 저장한다. 다음으로, 이렇게 저장된 로그 데이터를 분석하여 'WHERE'절에 사용된 칼럼에 대해 테이블 별로 분류하는 작업을 수행한 후 별도의 분석 데이터로 저장한다.
도 3은 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법에서 'WHERE'절에 사용된 컬럼을 분류하는 과정을 예시적으로 보인 도이다. 도 3에 예시한 바와 같이, 사용자의 SQL 쿼리문을 수집하여 저장한 로그 데이터에서 'WHERE'절에 사용한 칼럼을 테이블 별로 분석한 결과, 테이블 a(table_a)에서는 'ue_imsi'라는 칼럼의 사용 빈도수가 3이고, 'ue_ind_5g_4g' 및 'vendor'이라는 칼럼의 사용 빈도수가 각각 1임을 알 수 있다. 또한, 테이블 b(table_b)에서는 'type' 및 'time_day'라는 칼럼의 사용 빈도수가 각각 2이고, 'url' 및 'imsi'라는 칼럼의 사용 빈도수가 각각 1임을 알 수 있다.
다시 도 2로 돌아가서, 단계 S20에서는 단계 S10에서 분석한 결과를 활용하여 통계 데이터를 계산하는데, 구체적으로 분석 데이터를 통해 테이블 별로 전체 사용 칼럼수(), 전체 사용 빈도수(, 칼럼 별 사용 빈도수( 및 평균 사용 빈도수()를 계산한다. 각 값의 의미와 계산식은 아래와 같이 정의될 수 있다.
(전체 사용 칼럼수): 사용자의 SQL 쿼리문의 'WHERE'절에 포함된 테이블 별 전체 칼럼 건수.
(전체 사용 횟수): 사용자의 SQL 쿼리문의 'WHERE'절에 포함된 테이블 별 칼럼의 전체 사용 횟수.
(칼럼 별 사용 횟수): 각 칼럼 별 사용 횟수.
(칼럼 별 평균 사용 횟수): 칼럼 별 평균 사용 횟수. 여기에서, 칼럼별 평균 사용 횟수는 아래의 수학식 1에 의해 구해질 수 있다.
도 4는 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법에서 칼럼 별 평균 사용 횟수를 구하는 방식을 예시적으로 설명하기 위한 도이다. 도 4에 예시한 바와 같이, 사용자의 SQL 쿼리문에 사용된 테이블 a(table_a)의 'WHERE'절에 포함된 전체 사용 칼럼 수()는 3이고, 테이블 a(table_a)의 'WHERE'절에 포함된 칼럼의 전체 사용 횟수()는 5이기 때문에 수학식 1에 의해 칼럼 별 평균 사용 횟수()는 대략 1.666이 된다.
다시 도 2로 돌아가서, 단계 S30에서는 단계 S20에서 계산된 통계 데이터를 통해 칼럼 리스트 생성하는데, 구체적으로 단계 S20에서 계산된 통계 데이터를 통해 어떤 칼럼에 대해 메타 데이터와 인덱스를 생성할 것인지를 판단한다. 이를 위해 먼저, 각 칼럼 별 사용 횟수를 나타내는 가 칼럼 별 평균 사용 횟수를 나타내는 이상( )인 칼럼을 칼럼 리스트에 포함하는데, 는 양의 실수로서 사용자가 상황에 따라 적절하게 선택될 수 있다.
다시 도 2로 돌아가서, 단계 S40에서는 단계 S30에서 생성된 칼럼 리스트 반영하여 향후 데이터베이스에 적재되는 데이터에 대해서 메타 데이터와 인덱스를 자동으로 생성한다. 예를 들어, 현 주기에서 생성된 칼럼 리스트를 이전 주기들에서 생성된 칼럼 리스트와 비교하여 연속으로 N번째 포함되는 칼럼을 영구적으로 메타 데이터와 인덱스를 생성하는 칼럼으로 등록한 후에 당해 칼럼에 대해 메타 데이터와 인덱스를 생성하는데, N은 양의 정수로서 적절하게 변경될 수 있다.
한편, 메타 데이터와 인덱스 생성을 위한 프로세싱은 사용자에 의한 쿼리 동작이 없는 유휴 상태에 수행되고, 단계 S10 내지 단계 S40은 반복하여 수행된다.
이상, 첨부한 도면을 참조하여 본 발명의 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법의 바람직한 실시예에 대하여 상세히 설명하였으나 이는 예시에 불과한 것이며, 본 발명의 기술적 사상의 범주 내에서 다양한 변형과 변경이 가능할 것이다. 따라서, 본 발명의 권리범위는 이하의 청구범위의 기재에 의하여 정해져야 할 것이다.
Claims (4)
- 데이터베이스 관리 시스템에 의해 수행되고,
사용자가 지정한 기간() 동안 사용자의 SQL 쿼리 로그 데이터를 분석하여 'WHERE'절에 사용된 칼럼에 대해 테이블 별로 분류한 후 별도의 분석 데이터로 저장하는 (a) 단계;
(a) 단계의 분석 데이터를 활용하여 테이블 별로 상기 'WHERE'절에 포함된 테이블 별 전체 칼럼 건수인 전체 사용 칼럼수(), 상기 'WHERE'절에 포함된 테이블 별 칼럼의 전체 사용 횟수(, 각 칼럼 별 사용 횟수( 및 칼럼 별 평균 사용 횟수()를 계산하는 (b) 단계;
(b) 단계에서 계산된 값을 통해 메타 데이터와 인덱스를 생성할 칼럼 리스트를 생성하는 (c) 단계 및
(c) 단계에서 생성된 칼럼 리스트 반영하여 향후 데이터베이스에 적재되는 데이터에 대해서 메타 데이터와 인덱스를 자동으로 생성하는 (d) 단계를 포함하여 이루어진 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법. - 청구항 1에 있어서,
상기 (a) 단계 내지 상기 (d) 단계는 사용자에 의한 쿼리 동작이 없는 유휴 상태에 수행되는 것을 특징으로 하는 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법. - 청구항 1에 있어서,
상기 (b) 단계에서, 칼럼 별 사용 횟수를 나타내는 가 칼럼 별 평균 사용 횟수를 나타내는 이상( )인 칼럼을 칼럼 리스트에 포함하되, 는 양의 실수인 것을 특징으로 하는 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법. - 청구항 1 내지 3 중 어느 하나에 있어서,
현 주기에서 생성된 칼럼 리스트를 이전 주기들에서 생성된 칼럼 리스트와 비교하여 연속으로 N번째 포함되는 칼럼을 영구적으로 메타 데이터와 인덱스를 생성하는 칼럼으로 등록하되, N은 양의 정수인 것을 특징으로 하는 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220044542A KR20230146162A (ko) | 2022-04-11 | 2022-04-11 | 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220044542A KR20230146162A (ko) | 2022-04-11 | 2022-04-11 | 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230146162A true KR20230146162A (ko) | 2023-10-19 |
Family
ID=88507911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220044542A KR20230146162A (ko) | 2022-04-11 | 2022-04-11 | 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230146162A (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101747265B1 (ko) | 2016-06-20 | 2017-06-15 | 주식회사 티맥스데이터 | 쿼리를 실행하기 위한 방법, 장치 및 컴퓨터 판독가능 매체 |
KR20200106950A (ko) | 2018-01-16 | 2020-09-15 | 오라클 인터내셔날 코포레이션 | Sql 질의 플랜들을 최적화하기 위한 차원 콘텍스트 전파 기술들 |
-
2022
- 2022-04-11 KR KR1020220044542A patent/KR20230146162A/ko unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101747265B1 (ko) | 2016-06-20 | 2017-06-15 | 주식회사 티맥스데이터 | 쿼리를 실행하기 위한 방법, 장치 및 컴퓨터 판독가능 매체 |
KR20200106950A (ko) | 2018-01-16 | 2020-09-15 | 오라클 인터내셔날 코포레이션 | Sql 질의 플랜들을 최적화하기 위한 차원 콘텍스트 전파 기술들 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725981B1 (en) | Analyzing big data | |
US9361320B1 (en) | Modeling big data | |
Wei et al. | AnalyticDB-V: a hybrid analytical engine towards query fusion for structured and unstructured data | |
WO2020227652A1 (en) | Query combination in a hybrid multi-cloud database environment | |
CN110674228A (zh) | 数据仓库模型构建和数据查询方法、装置及设备 | |
Gallinucci et al. | Advanced topic modeling for social business intelligence | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
Rost et al. | Distributed temporal graph analytics with GRADOOP | |
US9747349B2 (en) | System and method for distributing queries to a group of databases and expediting data access | |
Jiang et al. | Holistic primary key and foreign key detection | |
Rozsnyai et al. | Large-scale distributed storage system for business provenance | |
US20150019528A1 (en) | Prioritization of data from in-memory databases | |
CN106815353A (zh) | 一种数据查询的方法及设备 | |
US20180357278A1 (en) | Processing aggregate queries in a graph database | |
Nevarez | Inside the SQL Server Query Optimizer | |
US20190340272A1 (en) | Systems and related methods for updating attributes of nodes and links in a hierarchical data structure | |
Weiler et al. | An evaluation of the run-time and task-based performance of event detection techniques for Twitter | |
Truică et al. | TextBenDS: a generic textual data benchmark for distributed systems | |
Wang et al. | Exploiting common patterns for tree-structured data | |
CN113127660A (zh) | 一种时序图形数据库存储方法及装置 | |
CN113553491A (zh) | 一种基于倒排索引的工业大数据搜索优化方法 | |
Awada et al. | Cost Estimation Across Heterogeneous SQL-Based Big Data Infrastructures in Teradata IntelliSphere. | |
CN113360496B (zh) | 一种构建元数据标签库的方法及装置 | |
KR20230146162A (ko) | 사용자의 쿼리 패턴을 이용한 쿼리 성능 향상 방법 | |
Chereja et al. | Operationalizing analytics with NewSQL |