KR102138627B1 - 데이터 쿼리 방법 및 장치, 및 데이터베이스 시스템 - Google Patents
데이터 쿼리 방법 및 장치, 및 데이터베이스 시스템 Download PDFInfo
- Publication number
- KR102138627B1 KR102138627B1 KR1020187017354A KR20187017354A KR102138627B1 KR 102138627 B1 KR102138627 B1 KR 102138627B1 KR 1020187017354 A KR1020187017354 A KR 1020187017354A KR 20187017354 A KR20187017354 A KR 20187017354A KR 102138627 B1 KR102138627 B1 KR 102138627B1
- Authority
- KR
- South Korea
- Prior art keywords
- join
- predicate
- query plan
- reconstructed
- original
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24544—Join order optimisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24545—Selectivity estimation or determination
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
도 1a 및 도 1b는 본 발명의 실시예에 따른 적용 시나리오들의 개략도들이다.
도 1c는 본 발명의 실시예에 따른 결합 연산의 예이다.
도 2는 본 발명의 실시예에 따른 등가 쿼리 계획의 예이다.
도 3은 본 발명의 실시예에 따른 연산 레벨 교환 규칙의 예이다.
도 4는 본 발명의 실시예에 따른 연산 레벨 조합 규칙의 예이다.
도 5는 본 발명의 실시예에 따른 연산 레벨 좌측 치환 규칙의 예이다.
도 6은 본 발명의 실시예에 따른 연산 레벨 우측 치환 규칙의 예이다.
도 7은 본 발명의 실시예에 따른 술어 레벨 조합 규칙의 예이다.
도 8은 본 발명의 실시예에 따른 술어 레벨 좌측 치환 규칙의 예이다.
도 9는 본 발명의 실시예에 따른 술어 레벨 우측 치환 규칙의 예이다.
도 10은 본 발명의 실시예에 따른 등가 쿼리 계획의 예이다.
도 11은 본 발명의 실시예에 따른 데이터 쿼리 방법의 개략 흐름도이다.
도 12는 본 발명의 실시예에 따른 쿼리 계획의 예이다.
도 13a 및 도 13b는 본 발명의 실시예에 따른 원본 쿼리 계획에서 술어의 제약 조건을 결정하는 흐름도이다.
도 14는 본 발명의 실시예에 따른 제약 조건을 추가하는 개략도이다.
도 15는 본 발명의 실시예에 따른 제약 조건을 추가하는 다른 개략도이다.
도 16은 본 발명의 실시예에 따른 등가 쿼리 계획을 결정하는 예이다.
도 17은 본 발명의 실시예에 따른 데이터 쿼리 장치의 개략 블록도이다.
도 18은 본 발명의 실시예에 따른 데이터베이스 시스템의 개략 블록도이다.
도 19는 본 발명의 실시예에 따른 데이터 쿼리 장치의 개략 구조도이다.
Claims (20)
- 데이터 쿼리 방법으로서,
상기 방법은 데이터베이스 시스템에 의해 실행되고, 이러한 데이터베이스 시스템은 컴퓨터 디바이스 상에서 실행되고, 상기 방법은,
데이터 쿼리 요청을 수신하는 단계;
상기 데이터 쿼리 요청에 따라 원본 쿼리 계획을 생성하는 단계 - 상기 원본 쿼리 계획은 데이터베이스에서 데이터를 획득하기 위해 상기 데이터 쿼리 요청을 파싱(parsing)함으로써 생성되는 쿼리 계획임 -;
상기 원본 쿼리 계획 내의 결합 술어를 재구성하는 단계 - 상기 결합 술어는 상기 데이터베이스 내의 2개 이상의 표 내의 컬럼들의 관계를 설명하는데 사용되고 상기 데이터베이스 내의 2개 이상의 표를 하나의 결과 표로 조합하는데 사용되는 술어임 -;
상기 원본 쿼리 계획 내의 재구성된 결합 술어의 기본 정보를 결정하는 단계;
결합 연산 규칙에 기초하여, 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 제약 조건을 결정하는 단계 - 상기 제약 조건은 상기 결합 연산 규칙이 충족되지 않는 경우에 상기 원본 쿼리 계획 내의 재구성된 결합 술어에 추가되는 조건임 -;
상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 기본 정보 및 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 제약 조건에 따라 상기 원본 쿼리 계획에 대한 등가 쿼리 계획을 결정하는 단계 - 상기 등가 쿼리 계획은 연산 레벨 규칙들 또는 술어 레벨 규칙들을 사용하여 변환에 의해 상기 원본 쿼리 계획으로부터 획득되는 쿼리 계획임 -; 및
상기 원본 쿼리 계획에 대한 상기 등가 쿼리 계획에 따라 쿼리를 수행하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 기본 정보 및 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 제약 조건에 따라 상기 원본 쿼리 계획에 대한 등가 쿼리 계획을 결정하는 단계는,
상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 기본 정보 및 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 제약 조건에 따라 상기 원본 쿼리 계획에 대한 등가 쿼리 계획 세트를 결정하는 단계를 포함하고;
상기 원본 쿼리 계획에 대한 등가 쿼리 계획에 따라 쿼리를 수행하는 단계는,
상기 등가 쿼리 계획 세트로부터 쿼리 계획을 선택하여 쿼리를 수행하는 단계를 포함하는 방법. - 제2항에 있어서,
상기 방법은,
상기 원본 쿼리 계획에 따라 후보 쿼리 계획 세트를 획득하는 단계를 추가로 포함하고;
상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 기본 정보 및 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 제약 조건에 따라 상기 원본 쿼리 계획에 대한 등가 쿼리 계획 세트를 결정하는 단계는,
상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 기본 정보 및 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 제약 조건에 따라 상기 후보 쿼리 계획 세트로부터 상기 등가 쿼리 계획 세트를 결정하는 단계를 포함하는 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 원본 쿼리 계획 내의 결합 술어를 재구성하는 단계는,
상기 원본 쿼리 계획 내의 내부 결합 연산의 모든 결합 술어들을 접속사 정규 형태로 변환하는 단계, 및 동일한 입력 표를 갖는 결합 술어들을 조합하는 단계; 및
상기 원본 쿼리 계획 내의 비-내부 결합 연산의 모든 결합 술어들을 하나의 결합 술어로 조합하는 단계를 포함하는 방법. - 제1항에 있어서,
상기 결합 술어의 상기 기본 정보는 상기 결합 술어의 입력 표, 상기 결합 술어가 위치되는 결합 연산의 좌측 서브트리에 포함되는 상기 결합 술어의 입력 표, 상기 결합 술어가 위치되는 상기 결합 연산의 우측 서브트리에 포함되는 상기 결합 술어의 입력 표, 및 상기 결합 술어가 위치되는 상기 결합 연산의 결합 타입을 포함하는 방법. - 제1항에 있어서,
상기 결합 연산 규칙은 연산 레벨 규칙 및 술어 레벨 규칙을 포함하고, 상기 연산 레벨 규칙은 연산 레벨 교환 규칙: e1 oa p12 e2 = e2 oa p12 e1, 연산 레벨 조합 규칙: (e1 oa p12 e2) ob p23 e3 = e1 oa p12 (e2 ob p23 e3), 연산 레벨 좌측 치환 규칙: (e1 oa p12 e2) ob p13 e3 = (e1 ob p13 e3) oa p12 e2, 및 연산 레벨 우측 치환 규칙: e1 oa p13 (e2 ob p23 e3) = e2 ob p23(e1 oa p13 e3)을 포함하고, 상기 술어 레벨 규칙은 술어 레벨 조합 규칙: (e1 oa p12 e2) ob p∧p23 e3 = e1 oa p12∧p (e2 ob p23 e3), 술어 레벨 좌측 치환 규칙: (e1 oa p12 e2) ob p13∧p e3 = (e1 ob p13 e3) oa p12∧p e2, 및 술어 레벨 우측 치환 규칙: e1 oa p∧p13 (e2 ob p23 e3) = e2 ob p∧p23 (e1 oa p13 e3)를 포함하고, ei은 쿼리 표현이고, oa 및 ob는 결합 연산들이고, pij는 ei와 ej 사이의 결합 술어인 방법. - 제6항에 있어서,
상기 결합 연산 규칙에 기초하여, 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 제약 조건을 결정하는 단계는,
상기 원본 쿼리 계획 내의 각각의 결합 연산 노드 oB에 대해, oB를 루트 노드로서 사용하는 서브트리에서의 각각의 결합 연산 노드 oA를 횡단하는 단계; 및
oB를 루트 노드로서 사용하는 서브트리의 좌측 서브트리에 oA가 있을 때, oA 및 oB가 연산 레벨 조합 규칙 및 술어 레벨 조합 규칙을 충족시키지 않으면, oB 상에 각각 재구성된 결합 술어에 제1 제약 조건을 추가하는 단계; 및 oA 및 oB가 연산 레벨 좌측 치환 규칙 및 술어 레벨 좌측 치환 규칙을 충족시키지 않으면, oB 상에 각각 재구성된 결합 술어에 제2 제약 조건을 추가하는 단계; 또는
oB를 루트 노드로서 사용하는 서브트리의 우측 서브트리에 oA가 있을 때, oA 및 oB가 연산 레벨 조합 규칙 및 술어 레벨 조합 규칙을 충족시키지 않으면, oB 상에 각각 재구성된 결합 술어에 제2 제약 조건을 추가하는 단계; 및 oA 및 oB가 연산 레벨 우측 치환 규칙 및 술어 레벨 우측 치환 규칙을 충족시키지 않으면, oB 상에 각각 재구성된 결합 술어에 제1 제약 조건을 추가하는 단계를 포함하고;
상기 제1 제약 조건은 T(e2)->T(e1)∩T(pa1∧pa2∧...∧pan)이고, 상기 제2 제약 조건은 T(e1)->T(e2)∩T(pa1∧pa2∧...∧pan)이고, T(e1) 는 oA를 루트 노드로서 사용하는 서브트리의 좌측 서브트리 e1에 포함되는 원본 입력 표를 표시하고, T(e2) 는 oA를 루트 노드로서 사용하는 서브트리의 우측 서브트리 e2에 포함되는 원본 입력 표를 표시하고, T(pa1∧pa2∧...∧pan)는 oA 상에 재구성된 결합 술어 pa1∧pa2∧...∧pan에 포함되는 원본 입력 표를 표시하고, T1->T2는 T1->T2에 의해 제약되는 결합 술어가 위치되는 결합 연산을 루트 노드로서 사용하는 제1 서브트리가 T1에서의 임의의 입력 표를 포함하면, 상기 제1 서브트리가 T2에서의 모든 입력 표들을 포함한다는 점을 표시하는 방법. - 제1항에 있어서,
상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 기본 정보 및 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 제약 조건에 따라 상기 원본 쿼리 계획에 대한 등가 쿼리 계획을 결정하는 단계는,
제1 후보 쿼리 계획 P'는 P'가 이하의 조건들을 충족시키면 원본 쿼리 계획 P에 대한 등가 쿼리 계획이라고 결정하는 단계를 포함하는-
P'의 각각의 제1 결합 연산의 결합 타입은 내부 결합이고, 상기 제1 결합 연산은 적어도 2개의 재구성된 결합 술어들을 갖는 결합 연산이고, P에 있고 상기 적어도 2개의 재구성된 결합 술어들에서의 각각의 결합 술어에 대응하는 결합 연산의 결합 타입은 내부 결합임;
P'에서의 각각의 결합 연산 ob' 상의 각각의 결합 술어 p에 대해,
ob'가 연산 레벨 교환 규칙을 충족시키지 않을 때, P'에서의 Tl(p) 및 P에서의 Tl(p)은 같고, P'에서의 Tr(p) 및 P에서의 Tr(p)은 같음- Tl(p)는 p가 위치되는 결합 연산의 좌측 서브트리에 포함되는 p의 입력 표를 표시하고, Tr(p)는 p가 위치되는 결합 연산의 우측 서브트리에 포함되는 p의 입력 표를 표시함 -; 또는
ob'가 연산 레벨 교환 규칙을 충족시킬 때, P'에서의 Tl(p) 및 P에서의 Tl(p)은 같고, P'에서의 Tr(p) 및 P에서의 Tr(p)은 같거나; 또는 P'에서의 Tl(p) 및 P에서의 Tr(p)은 같고, P'에서의 Tr(p) 및 P에서의 Tl(p)은 같음; 및
P'에서의 각각의 결합 연산 ob' 상의 각각의 결합 술어 p에 대해, p는 P에서의 p에 대한 제약 조건을 충족시킴 - 방법. - 제2항에 있어서,
상기 등가 쿼리 계획 세트로부터 쿼리 계획을 선택하여 쿼리를 수행하는 단계는,
상기 등가 쿼리 계획 세트로부터 비용이 최소인 쿼리 계획을 선택하여 쿼리를 수행하는 단계를 포함하는 방법. - 데이터 쿼리 장치로서,
데이터 쿼리 요청을 수신하도록 구성되는 수신 모듈;
상기 데이터 쿼리 요청에 따라 원본 쿼리 계획을 생성하도록 구성되는 생성 모듈 - 상기 원본 쿼리 계획은 데이터베이스에서 데이터를 획득하기 위해 상기 데이터 쿼리 요청을 파싱함으로써 생성되는 쿼리 계획임 -;
상기 원본 쿼리 계획 내의 결합 술어를 재구성하도록 구성되는 재구성 모듈 - 상기 결합 술어는 상기 데이터베이스 내의 2개 이상의 표 내의 컬럼들의 관계를 설명하는데 사용되고 상기 데이터베이스 내의 2개 이상의 표를 하나의 결과 표로 조합하는데 사용되는 술어임 -;
상기 원본 쿼리 계획 내의 재구성된 결합 술어의 기본 정보를 결정하도록; 결합 연산 규칙에 기초하여, 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 제약 조건을 결정하도록 - 상기 제약 조건은 상기 결합 연산 규칙이 충족되지 않는 경우에 상기 원본 쿼리 계획 내의 재구성된 결합 술어에 추가되는 조건임 -; 그리고 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 기본 정보 및 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 제약 조건에 따라 상기 원본 쿼리 계획에 대한 등가 쿼리 계획을 결정하도록 구성되는 결정 모듈 - 상기 등가 쿼리 계획은 연산 레벨 규칙들 또는 술어 레벨 규칙들을 사용하여 변환에 의해 상기 원본 쿼리 계획으로부터 획득되는 쿼리 계획임 -; 및
상기 원본 쿼리 계획에 대한 등가 쿼리 계획에 따라 쿼리를 수행하도록 구성되는 쿼리 모듈
을 포함하는 장치. - 제10항에 있어서,
상기 결정 모듈은 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 기본 정보 및 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 제약 조건에 따라 상기 원본 쿼리 계획에 대한 등가 쿼리 계획 세트를 결정하도록 구체적으로 구성되고;
상기 쿼리 모듈은 상기 등가 쿼리 계획 세트로부터 쿼리 계획을 선택하여 쿼리를 수행하도록 구체적으로 구성되는 장치. - 제11항에 있어서,
상기 장치는,
상기 원본 쿼리 계획에 따라 후보 쿼리 계획 세트를 획득하도록 구성되는 획득 모듈을 추가로 포함하고;
상기 결정 모듈은 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 기본 정보 및 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 제약 조건에 따라 상기 후보 쿼리 계획 세트로부터 상기 등가 쿼리 계획 세트를 결정하도록 구체적으로 구성되는 장치. - 제10항 내지 제12항 중 어느 한 항에 있어서,
상기 재구성 모듈은 구체적으로,
상기 원본 쿼리 계획 내의 내부 결합 연산의 모든 결합 술어들을 접속사 정규 형태로 변환하도록, 그리고 동일한 입력 표를 갖는 결합 술어들을 조합하도록; 그리고
상기 원본 쿼리 계획 내의 비-내부 결합 연산의 모든 결합 술어들을 하나의 결합 술어로 조합하도록 구성되는 장치. - 제10항에 있어서,
상기 결합 술어의 기본 정보는 상기 결합 술어의 입력 표, 상기 결합 술어가 위치되는 결합 연산의 좌측 서브트리에 포함되는 상기 결합 술어의 입력 표, 상기 결합 술어가 위치되는 상기 결합 연산의 우측 서브트리에 포함되는 상기 결합 술어의 입력 표, 및 상기 결합 술어가 위치되는 상기 결합 연산의 결합 타입을 포함하는 장치. - 제10항에 있어서,
상기 결합 연산 규칙은 연산 레벨 규칙 및 술어 레벨 규칙을 포함하고, 상기 연산 레벨 규칙은 연산 레벨 교환 규칙: e1 oa p12 e2 = e2 oa p12 e1, 연산 레벨 조합 규칙: (e1 oa p12 e2) ob p23 e3 = e1 oa p12 (e2 ob p23 e3), 연산 레벨 좌측 치환 규칙: (e1 oa p12 e2) ob p13 e3 = (e1 ob p13 e3) oa p12 e2, 및 연산 레벨 우측 치환 규칙: e1 oa p13 (e2 ob p23 e3) = e2 ob p23(e1 oa p13 e3)을 포함하고, 상기 술어 레벨 규칙은 술어 레벨 조합 규칙: (e1 oa p12 e2) ob p∧p23 e3 = e1 oa p12∧p (e2 ob p23 e3), 술어 레벨 좌측 치환 규칙: (e1 oa p12 e2) ob p13∧p e3 = (e1 ob p13 e3) oa p12∧p e2, 및 술어 레벨 우측 치환 규칙: e1 oa p∧p13 (e2 ob p23 e3) = e2 ob p∧p23 (e1 oa p13 e3)를 포함하고, ei은 쿼리 표현이고, oa 및 ob는 결합 연산들이고, pij는 ei와 ej 사이의 결합 술어인 장치. - 제15항에 있어서,
상기 결정 모듈은 구체적으로,
상기 원본 쿼리 계획 내의 각각의 결합 연산 노드 oB에 대해, oB를 루트 노드로서 사용하는 서브트리에서의 각각의 결합 연산 노드 oA를 횡단하도록; 그리고
oB를 루트 노드로서 사용하는 서브트리의 좌측 서브트리에 oA가 있을 때, oA 및 oB가 연산 레벨 조합 규칙 및 술어 레벨 조합 규칙을 충족시키지 않으면, oB 상에 각각 재구성된 결합 술어에 제1 제약 조건을 추가하도록; 그리고 oA 및 oB가 연산 레벨 좌측 치환 규칙 및 술어 레벨 좌측 치환 규칙을 충족시키지 않으면, oB 상에 각각 재구성된 결합 술어에 제2 제약 조건을 추가하도록; 또는
oB를 루트 노드로서 사용하는 서브트리의 우측 서브트리에 oA가 있을 때, oA 및 oB가 연산 레벨 조합 규칙 및 술어 레벨 조합 규칙을 충족시키지 않으면, oB 상에 각각 재구성된 결합 술어에 제2 제약 조건을 추가하도록; 그리고 oA 및 oB가 연산 레벨 우측 치환 규칙 및 술어 레벨 우측 치환 규칙을 충족시키지 않으면, oB 상에 각각 재구성된 결합 술어에 제1 제약 조건을 추가하도록 구성되고;
상기 제1 제약 조건은 T(e2)->T(e1)∩T(pa1∧pa2∧...∧pan)이고, 상기 제2 제약 조건은 T(e1)->T(e2)∩T(pa1∧pa2∧...∧pan)이고, T(e1) 는 oA를 루트 노드로서 사용하는 서브트리의 좌측 서브트리 e1에 포함되는 원본 입력 표를 표시하고, T(e2) 는 oA를 루트 노드로서 사용하는 서브트리의 우측 서브트리 e2에 포함되는 원본 입력 표를 표시하고, T(pa1∧pa2∧...∧pan)는 oA 상에 재구성된 결합 술어 pa1∧pa2∧...∧pan에 포함되는 원본 입력 표를 표시하고, T1->T2는 T1->T2에 의해 제약되는 결합 술어가 위치되는 결합 연산을 루트 노드로서 사용하는 제1 서브트리가 T1에서의 임의의 입력 표를 포함하면, 상기 제1 서브트리가 T2에서의 모든 입력 표들을 포함한다는 점을 표시하는 장치. - 제10항에 있어서,
상기 결정 모듈은 구체적으로,
제1 후보 쿼리 계획 P'는 P'가 이하의 조건들을 충족시키면 원본 쿼리 계획 P에 대한 등가 쿼리 계획이라고 결정하도록 구성되는-
P'의 각각의 제1 결합 연산의 결합 타입은 내부 결합이고, 상기 제1 결합 연산은 적어도 2개의 재구성된 결합 술어들을 갖는 결합 연산이고, P에 있고 상기 적어도 2개의 재구성된 결합 술어들에서의 각각의 결합 술어에 대응하는 결합 연산의 결합 타입은 내부 결합임;
P'에서의 각각의 결합 연산 ob' 상의 각각의 결합 술어 p에 대해,
ob'가 연산 레벨 교환 규칙을 충족시키지 않을 때, P'에서의 Tl(p) 및 P에서의 Tl(p)은 같고, P'에서의 Tr(p) 및 P에서의 Tr(p)은 같음- Tl(p)는 p가 위치되는 결합 연산의 좌측 서브트리에 포함되는 p의 입력 표를 표시하고, Tr(p)는 p가 위치되는 결합 연산의 우측 서브트리에 포함되는 p의 입력 표를 표시함 -; 또는
ob'가 연산 레벨 교환 규칙을 충족시킬 때, P'에서의 Tl(p) 및 P에서의 Tl(p)은 같고, P'에서의 Tr(p) 및 P에서의 Tr(p)은 같거나; 또는 P'에서의 Tl(p) 및 P에서의 Tr(p)은 같고, P'에서의 Tr(p) 및 P에서의 Tl(p)은 같음; 및
P'에서의 각각의 결합 연산 ob' 상의 각각의 결합 술어 p에 대해, p는 P에서의 p에 대한 제약 조건을 충족시킴 - 장치. - 제11항에 있어서,
상기 쿼리 모듈은 구체적으로,
상기 등가 쿼리 계획 세트로부터 비용이 최소인 쿼리 계획을 선택하여 쿼리를 수행하도록 구성되는 장치. - 데이터베이스 시스템으로서,
제10항에 따른 데이터 쿼리 장치 및 데이터베이스를 포함하는 데이터베이스 시스템. - 프로그램이 기록되는 컴퓨터 판독 가능 기록 매체로서,
상기 프로그램은, 실행될 때, 컴퓨터로 하여금,
데이터 쿼리 요청을 수신하는 단계;
상기 데이터 쿼리 요청에 따라 원본 쿼리 계획을 생성하는 단계 - 상기 원본 쿼리 계획은 데이터베이스에서 데이터를 획득하기 위해 상기 데이터 쿼리 요청을 파싱함으로써 생성되는 쿼리 계획임 -;
상기 원본 쿼리 계획 내의 결합 술어를 재구성하는 단계 - 상기 결합 술어는 상기 데이터베이스 내의 2개 이상의 표 내의 컬럼들의 관계를 설명하는데 사용되고 상기 데이터베이스 내의 2개 이상의 표를 하나의 결과 표로 조합하는데 사용되는 술어임 -;
상기 원본 쿼리 계획 내의 재구성된 결합 술어의 기본 정보를 결정하는 단계;
결합 연산 규칙에 기초하여, 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 제약 조건을 결정하는 단계 - 상기 제약 조건은 상기 결합 연산 규칙이 충족되지 않는 경우에 상기 원본 쿼리 계획 내의 재구성된 결합 술어에 추가되는 조건임 -;
상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 기본 정보 및 상기 원본 쿼리 계획 내의 재구성된 결합 술어의 상기 제약 조건에 따라 상기 원본 쿼리 계획에 대한 등가 쿼리 계획을 결정하는 단계 - 상기 등가 쿼리 계획은 연산 레벨 규칙들 또는 술어 레벨 규칙들을 사용하여 변환에 의해 상기 원본 쿼리 계획으로부터 획득되는 쿼리 계획임 -; 및
상기 원본 쿼리 계획에 대한 상기 등가 쿼리 계획에 따라 쿼리를 수행하는 단계
를 실행할 수 있게 하는 컴퓨터 판독 가능 기록 매체.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2015/095909 WO2017091925A1 (zh) | 2015-11-30 | 2015-11-30 | 数据查询的方法、装置和数据库系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20180083927A KR20180083927A (ko) | 2018-07-23 |
| KR102138627B1 true KR102138627B1 (ko) | 2020-07-28 |
Family
ID=58796008
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020187017354A Active KR102138627B1 (ko) | 2015-11-30 | 2015-11-30 | 데이터 쿼리 방법 및 장치, 및 데이터베이스 시스템 |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US10885034B2 (ko) |
| EP (1) | EP3373154A1 (ko) |
| JP (1) | JP6628455B2 (ko) |
| KR (1) | KR102138627B1 (ko) |
| CN (1) | CN107251013B (ko) |
| BR (1) | BR112018010857B1 (ko) |
| SG (1) | SG11201804544QA (ko) |
| WO (1) | WO2017091925A1 (ko) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6707797B2 (ja) * | 2017-03-29 | 2020-06-10 | 株式会社日立製作所 | データベース管理システム及びデータベース管理方法 |
| CN108664516A (zh) * | 2017-03-31 | 2018-10-16 | 华为技术有限公司 | 查询优化方法及相关装置 |
| US10885035B2 (en) * | 2019-04-26 | 2021-01-05 | Advanced New Technologies Co., Ltd. | Method and system for outer join of database tables |
| CN111949686B (zh) * | 2019-05-14 | 2024-05-14 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及设备 |
| US12321346B2 (en) * | 2019-06-26 | 2025-06-03 | International Business Machines Corporation | Adaptive query optimization using machine learning |
| CN111104426B8 (zh) * | 2019-11-22 | 2024-04-23 | 北京傲速科技有限公司 | 一种数据查询方法及系统 |
| CN111151858B (zh) * | 2020-01-13 | 2021-10-15 | 吉利汽车研究院(宁波)有限公司 | 一种点焊焊接参数应用系统及设置方法 |
| KR102125010B1 (ko) * | 2020-03-17 | 2020-06-19 | 김명훈 | 데이터베이스 전환 분석 시스템 및 방법 |
| CN114168620B (zh) * | 2022-02-11 | 2022-05-17 | 北京奥星贝斯科技有限公司 | 执行计划的处理方法及装置 |
| CN115964374B (zh) * | 2023-02-22 | 2023-09-26 | 深圳计算科学研究院 | 一种基于预计算场景的查询处理方法及其装置 |
| CN117149831A (zh) * | 2023-08-30 | 2023-12-01 | 北京火山引擎科技有限公司 | 数据库的数据读取方法、设备及存储介质 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009037603A (ja) | 2007-07-05 | 2009-02-19 | Nec (China) Co Ltd | クエリー要件展開器およびクエリー要件展開方法 |
| US20110029508A1 (en) | 2009-07-31 | 2011-02-03 | Al-Omari Awny K | Selectivity-based optimized-query-plan caching |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5819255A (en) | 1996-08-23 | 1998-10-06 | Tandem Computers, Inc. | System and method for database query optimization |
| JP4552242B2 (ja) * | 1999-10-06 | 2010-09-29 | 株式会社日立製作所 | 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法 |
| JP3515050B2 (ja) | 2000-07-07 | 2004-04-05 | 三菱電機株式会社 | データベース演算処理装置 |
| US6665663B2 (en) | 2001-03-15 | 2003-12-16 | International Business Machines Corporation | Outerjoin and antijoin reordering using extended eligibility lists |
| US6598044B1 (en) * | 2002-06-25 | 2003-07-22 | Microsoft Corporation | Method for choosing optimal query execution plan for multiple defined equivalent query expressions |
| US7617179B2 (en) * | 2002-06-29 | 2009-11-10 | Ianywhere Solutions, Inc. | System and methodology for cost-based subquery optimization using a left-deep tree join enumeration algorithm |
| US8086598B1 (en) * | 2006-08-02 | 2011-12-27 | Hewlett-Packard Development Company, L.P. | Query optimizer with schema conversion |
| US7546311B2 (en) * | 2006-11-30 | 2009-06-09 | Ianywhere Solutions, Inc. | Optimization of left and right outer join operations in database management systems |
| US8589382B2 (en) * | 2011-12-29 | 2013-11-19 | International Business Machines Corporation | Multi-fact query processing in data processing system |
| US20130297586A1 (en) * | 2012-05-07 | 2013-11-07 | International Business Machines Corporation | Optimizing queries using predicate mappers |
| CN103714058B (zh) * | 2012-09-28 | 2017-05-17 | Sap欧洲公司 | 用于数据库查询优化的方法以及使用该方法的系统 |
| CN104216891B (zh) * | 2013-05-30 | 2018-02-02 | 国际商业机器公司 | 关系型数据库中的查询语句的优化方法和设备 |
| CN103678589B (zh) * | 2013-12-12 | 2017-02-01 | 用友网络科技股份有限公司 | 一种基于等价类的数据库内核查询优化方法 |
| US9411806B2 (en) * | 2014-05-06 | 2016-08-09 | International Business Machines Corporation | Optimizing relational database queries with multi-table predicate expressions |
| US10133778B2 (en) * | 2015-11-20 | 2018-11-20 | Sap Se | Query optimization using join cardinality |
-
2015
- 2015-11-30 SG SG11201804544QA patent/SG11201804544QA/en unknown
- 2015-11-30 BR BR112018010857-0A patent/BR112018010857B1/pt active IP Right Grant
- 2015-11-30 EP EP15909443.2A patent/EP3373154A1/en not_active Ceased
- 2015-11-30 KR KR1020187017354A patent/KR102138627B1/ko active Active
- 2015-11-30 JP JP2018527925A patent/JP6628455B2/ja active Active
- 2015-11-30 CN CN201580005935.1A patent/CN107251013B/zh active Active
- 2015-11-30 WO PCT/CN2015/095909 patent/WO2017091925A1/zh active Application Filing
-
2018
- 2018-05-30 US US15/992,925 patent/US10885034B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009037603A (ja) | 2007-07-05 | 2009-02-19 | Nec (China) Co Ltd | クエリー要件展開器およびクエリー要件展開方法 |
| US20110029508A1 (en) | 2009-07-31 | 2011-02-03 | Al-Omari Awny K | Selectivity-based optimized-query-plan caching |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6628455B2 (ja) | 2020-01-08 |
| US10885034B2 (en) | 2021-01-05 |
| KR20180083927A (ko) | 2018-07-23 |
| SG11201804544QA (en) | 2018-06-28 |
| BR112018010857B1 (pt) | 2023-02-07 |
| EP3373154A4 (en) | 2018-09-12 |
| CN107251013A (zh) | 2017-10-13 |
| JP2019504390A (ja) | 2019-02-14 |
| BR112018010857A2 (pt) | 2018-11-21 |
| WO2017091925A1 (zh) | 2017-06-08 |
| EP3373154A1 (en) | 2018-09-12 |
| CN107251013B (zh) | 2020-02-14 |
| US20180276277A1 (en) | 2018-09-27 |
| BR112018010857A8 (pt) | 2022-11-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102138627B1 (ko) | 데이터 쿼리 방법 및 장치, 및 데이터베이스 시스템 | |
| US20200004748A1 (en) | Reusing sub-query evaluation results in evaluating query for data item having multiple representations in graph | |
| US10769147B2 (en) | Batch data query method and apparatus | |
| US10133778B2 (en) | Query optimization using join cardinality | |
| US7849073B2 (en) | Load balancing for complex database query plans | |
| US20100082671A1 (en) | Joining Tables in Multiple Heterogeneous Distributed Databases | |
| US7577637B2 (en) | Communication optimization for parallel execution of user-defined table functions | |
| US9582553B2 (en) | Systems and methods for analyzing existing data models | |
| US20120072412A1 (en) | Evaluating execution plan changes after a wakeup threshold time | |
| CN104769586A (zh) | 采用位置信息剖析数据 | |
| CN102541631B (zh) | 以多线程不同驱动源执行计划处理查询的方法和系统 | |
| US11693883B2 (en) | Techniques for ordering predicates in column partitioned databases for query optimization | |
| US8515927B2 (en) | Determining indexes for improving database system performance | |
| US10936606B2 (en) | Method and system for processing data in a parallel database environment | |
| KR20170109119A (ko) | 분산 질의 엔진에서의 질의 최적화 방법 및 장치 | |
| Oliveira et al. | Performance evaluation of NoSQL multi-model data stores in polyglot persistence applications | |
| US9934280B2 (en) | Join order restrictions | |
| US10922278B2 (en) | Systems and methods for database compression and evaluation | |
| Pandit et al. | Accelerating big data analytics with collaborative planning in Teradata Aster 6 | |
| US11816582B2 (en) | Heuristic search for k-anonymization | |
| US20250028721A1 (en) | Index join query optimization | |
| Paixão et al. | Clustering large-scale, distributed software component repositories | |
| JP2017068758A (ja) | 検索制御プログラム、検索制御方法および検索サーバ装置 | |
| WO2015080567A1 (en) | A method for converting a knowledge base to binary form | |
| HK1211109B (zh) | 采用位置信息剖析数据 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| AMND | Amendment | ||
| PA0105 | International application |
Patent event date: 20180619 Patent event code: PA01051R01D Comment text: International Patent Application |
|
| PA0201 | Request for examination | ||
| PG1501 | Laying open of application | ||
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20190531 Patent event code: PE09021S01D |
|
| AMND | Amendment | ||
| E601 | Decision to refuse application | ||
| PE0601 | Decision on rejection of patent |
Patent event date: 20191227 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20190531 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |
|
| X091 | Application refused [patent] | ||
| AMND | Amendment | ||
| PX0901 | Re-examination |
Patent event code: PX09011S01I Patent event date: 20191227 Comment text: Decision to Refuse Application Patent event code: PX09012R01I Patent event date: 20190731 Comment text: Amendment to Specification, etc. Patent event code: PX09012R01I Patent event date: 20180619 Comment text: Amendment to Specification, etc. |
|
| PX0701 | Decision of registration after re-examination |
Patent event date: 20200424 Comment text: Decision to Grant Registration Patent event code: PX07013S01D Patent event date: 20200325 Comment text: Amendment to Specification, etc. Patent event code: PX07012R01I Patent event date: 20191227 Comment text: Decision to Refuse Application Patent event code: PX07011S01I Patent event date: 20190731 Comment text: Amendment to Specification, etc. Patent event code: PX07012R01I Patent event date: 20180619 Comment text: Amendment to Specification, etc. Patent event code: PX07012R01I |
|
| X701 | Decision to grant (after re-examination) | ||
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20200722 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20200723 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration | ||
| PR1001 | Payment of annual fee |
Payment date: 20240619 Start annual number: 5 End annual number: 5 |
|
| PR1001 | Payment of annual fee |
Payment date: 20250616 Start annual number: 6 End annual number: 6 |