IP Library › Granted Patent US 11,169,994
Granted Patent B2
US 11,169,994 · App. 16/157,752 · Granted Nov 9, 2021

Query method and query device

Inventors: Lei Qiu (Beijing, CN); Maozeng Li (Beijing, CN); Haiyan Huang (Beijing, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F16/24542G06F16/2454G06F16/24532G06F16/24539G06F16/24552
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,169,994
App. No.
16/157,752
Granted
Nov 9, 2021
Kind
B2
Abstract

A query method and a query device, where the method includes determining N execution plans respectively corresponding to N query requests according to the received N query requests, determining at least two same first sub-plans, generating a first sub-query result corresponding to any one of the at least two same first sub-plans, and in a process of generating, according to the N query requests, a query result corresponding to each of the N query requests, the same first sub-query result corresponding to any one of the first sub-plans is used for all the same first sub-plans. Hence, a large amount of repeated calculation can be reduced, database system resources are reduced, and query efficiency and a throughput of a database system in a large-scale concurrent query application scenario are improved.

Claims (78)

1. A query method, comprising:

receiving N query requests, wherein the N comprises a positive integer greater than one;

determining N execution plans according to the N query requests, wherein the N execution plans correspond one-to-one to the N query requests, and wherein each of the N execution plans comprises a plurality of sub-plans;

determining at least two same first sub-plans, wherein the at least two same first sub-plans comprise different or same execution plans in the N execution plans;

generating a first sub-query result corresponding to any one of the at least two same first sub-plans, wherein the first sub-query result is used for all the at least two same first sub-plans;

determining at least two mutually different second sub-plans, wherein the at least two mutually different second sub-plans comprise different or same execution plans in the N execution plans;

generating second sub-query results separately corresponding to the at least two mutually different second sub-plans;

generating, based on the first sub-query result and the second sub-query results, a query result corresponding to each of the N query requests; and

setting, after generating the first sub-query result corresponding to any one of the at least two same first sub-plans, a hyperlink in each of the at least two same first sub-plans, wherein the hyperlink indicates all same first sub-plans.

2. The query method of claim 1 , wherein determining the N execution plans comprises:

determining a first query request set, wherein the first query request set comprises at least one of the N query requests, wherein an execution plan corresponding to each query request in the first query request set is stored in a plan cache, and wherein the plan cache stores an execution plan corresponding to the at least one of the N query requests; and

obtaining the execution plan stored in the plan cache corresponding to each query request in the first query request set.

3. The query method of claim 1 , wherein determining the N execution plans comprises:

determining a second query request set, wherein the second query request set comprises at least one of the N query requests, wherein an execution plan corresponding to each query request in the second query request set is not stored in a plan cache, and wherein the plan cache stores an execution plan corresponding to the at least one of the N query requests; and

generating the execution plan corresponding to each query request in the second query request set.

4. The query method of claim 1 , wherein before receiving the N query requests, the query method further comprises:

determining M query requests, wherein the M comprises a positive integer greater than one;

calculating total duration in which M query results are generated according to the M query requests, wherein the M query results respectively correspond to the M query requests;

determining average query duration based on the total duration in which the M query results are generated according to the M query requests;

determining a preset time period, wherein the preset time period is less than the average query duration; and

receiving the N query requests in the preset time period.

5. The query method of claim 1 , wherein receiving the N query requests comprises:

determining whether a quantity of received query requests is less than a target quantity;

continuing to receive a query request when the quantity of received query requests is less than the target quantity; and

avoid receiving any more query requests when the quantity of received query requests is greater than or equal to the target quantity.

6. The query method of claim 1 , wherein after generating the first sub-query result, the query method further comprises allocating a same address in a data cache to all the at least two same first sub-plans, and wherein the data cache stores the first sub-query result corresponding to any one of the at least two same first sub-plans.

7. The query method of claim 1 wherein setting the hyperlink in each of the at least two same first sub-plans comprises setting the hyperlink in a highest-level operator of each of the at least two same first sub-plans, and wherein each of the at least two same first sub-plans comprises a plurality of operators coupled according to an execution sequence, a lower-level operator outputting a calculation result to an upper-level operator, and the highest-level operator of each of the at least two same first sub-plans comprising a last operator executed in each of the at least two same first sub-plans.

8. The query method of claim 1 wherein after setting the hyperlink in each of the at least two same first sub-plans, the query method further comprises allocating a same address in a data cache to hyperlinks set in all the at least two same first sub-plans.

9. A query device, comprising:

an input/output interface configured to receive N query requests, wherein the N comprises a positive integer greater than one; and

a central processing unit (CPU) coupled to the input/output interface and configured to:

determine N execution plans according to the N query requests, wherein the N execution plans correspond one-to-one to the N query requests, and wherein each of the N execution plans comprises a plurality of sub-plans;

determine at least two same first sub-plans, wherein the at least two same first sub-plans comprises different or same execution plans in the N execution plans;

generate a first sub-query result corresponding to any one of the at least two same first sub-plans, wherein the first sub-query result is used for all the at least two same first sub-plans;

determine at least two mutually different second sub-plans, wherein the at least two mutually different second sub-plans comprise different or same execution plans in the N execution plans;

generate second sub-query results separately corresponding to the at least two mutually different second sub-plans;

generate, based on the first sub-query result and the second sub-query results, a query result corresponding to each of the N query requests; and

set a hyperlink in each of the at least two same first sub-plans, wherein the hyperlink indicates all same first sub-plans.

10. The query device of claim 9 , wherein the CPU is further configured to:

determine a first query request set, wherein the first query request set comprises at least one of the N query requests, wherein an execution plan corresponding to each query request in the first query request set is stored in a plan cache, and wherein the plan cache stores an execution plan corresponding to the at least one of the N query requests; and

obtain the execution plan stored in the plan cache corresponding to each query request in the first query request set.

11. The query device of claim 9 , wherein the CPU is further configured to:

determine a second query request set, wherein the second query request set comprises at least one of the N query requests, wherein an execution plan corresponding to each query request in the second query request set is not stored in a plan cache, and wherein the plan cache stores an execution plan corresponding to the at least one of the N query requests; and

generate the execution plan corresponding to each query request in the second query request set.

12. The query device of claim 9 , wherein the CPU is further configured to:

determine M query requests, wherein the M comprises a positive integer greater than one;

calculate total duration in which M query results are generated according to the M query requests, wherein the M query results respectively correspond to the M query requests;

determine average query duration, wherein the average query duration comprises the total duration in which the M query results are generated according to the M query requests;

determine a preset time period, wherein the preset time period is less than the average query duration; and

receive the N query requests in the preset time period.

13. The query device of claim 9 , wherein the CPU is further configured to:

determine whether a quantity of received query requests is less than a target quantity;

continue to receive a query request when the quantity of received query requests is less than the target quantity; and

avoid receiving any more query requests when the quantity of received query requests is greater than or equal to the target quantity.

14. The query device of claim 9 , wherein the CPU is further configured to allocate a same address in a data cache to all the at least two same first sub-plans, and wherein the data cache stores the first sub-query result corresponding to any one of the at least two same first sub-plans.

15. The query device of claim 9 wherein the CPU is further configured to set the hyperlink in a highest-level operator of each of the at least two same first sub-plans, wherein each of the at least two same first sub-plans comprises a plurality of operators coupled according to an execution sequence, wherein a lower-level operator outputs a calculation result to an upper-level operator, and wherein the highest-level operator of each of the at least two same first sub-plans comprises a last operator executed in each of the at least two same first sub-plans.

16. The query device of claim 9 , wherein the CPU is further configured to allocate a same address in a data cache to hyperlinks set in all the at least two same first sub-plans.

17. A computer program product comprising instructions stored on a non-transitory computer-readable medium that, when executed by a processor, cause a query device to:

receive N query requests, wherein the N comprises a positive integer greater than one;

determine N execution plans according to the N query requests, wherein the N execution plans correspond one-to-one to the N query requests, and wherein each of the N execution plans comprises a plurality of sub-plans;

determine at least two same first sub-plans, wherein the at least two same first sub-plans comprise different or same execution plans in the N execution plans;

generate a first sub-query result corresponding to any one of the at least two same first sub-plans, wherein the first sub-query result is used for all the at least two same first sub-plans;

determine at least two mutually different second sub-plans, wherein the at least two mutually different second sub-plans comprise different or same execution plans in the N execution plans;

generate second sub-query results separately corresponding to the at least two mutually different second sub-plans;

generate, based on the first sub-query result and the second sub-query results, a query result corresponding to each of the N query requests; and

set, after generating the first sub-query result corresponding to any one of the at least two same first sub-plans, a hyperlink in each of the at least two same first sub-plans, wherein the hyperlink indicates all same first sub-plans.

18. The computer program product of claim 17 , wherein the instructions cause the query device to determine the N execution plans by:

determining a first query request set, wherein the first query request set comprises at least one of the N query requests, wherein an execution plan corresponding to each query request in the first query request set is stored in a plan cache, and wherein the plan cache stores an execution plan corresponding to the at least one of the N query requests; and

obtaining the execution plan stored in the plan cache corresponding to each query request in the first query request set.

19. The computer program product of claim 17 , wherein the instructions cause the query device to determine the N execution plans by:

determining a second query request set, wherein the second query request set comprises at least one of the N query requests, wherein an execution plan corresponding to each query request in the second query request set is not stored in a plan cache, and wherein the plan cache stores an execution plan corresponding to the at least one of the N query requests; and

generating the execution plan corresponding to each query request in the second query request set.

20. The computer program product of claim 17 , wherein before receiving the N query requests, the instructions cause the query device to:

determine M query requests, wherein the M comprises a positive integer greater than one;

calculate total duration in which M query results are generated according to the M query requests, wherein the M query results respectively correspond to the M query requests;

determine average query duration based on the total duration in which the M query results are generated according to the M query requests;

determine a preset time period, wherein the preset time period is less than the average query duration; and

receive the N query requests in the preset time period.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2018
From: QIU, LEI; LI, MAOZENG; HUANG, HAIYAN
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 047136/0771 →
Priority Claims (1)
CN 201610334617.6 · May 18, 2016 · national
Continuity (2)
Continuation PCTCN2016102589 · Oct 19, 2016
Related Publication 20190042621A1 · Feb 7, 2019