IP Library Granted Patent US 8,635,206
Granted Patent B2
US 8,635,206 · App. 13/173,878 · Granted Jan 21, 2014

Database query optimization

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 8,635,206
App. No.
13/173,878
Granted
Jan 21, 2014
Kind
B2
Abstract

In some embodiments, a method includes detecting a structured query language (SQL) query. The method can also include determining that the SQL query includes a first sub-query and a second sub-query, wherein the first sub-query and second sub-query are operands for a Union operation, wherein a first result of the first sub-query is associated with a first Group By operation, wherein a second result of the second sub-query is associated with a second Group By operation, and wherein a result of the Union operation is associated with a third Group By operation. The method can also include determining that partitioning columns are the same for the first and second Group By operations; determining that the first and second sub-queries include identical algebraic functions; determining that the first Group By operation and first sub-query are not referenced elsewhere in the SQL query; and transforming the SQL query into an optimized query.

Claims (53)

1. A computer-implemented method for efficiently transforming a database query comprising:

detecting a database query; and

in response to detecting the database query, performing operations including:

(a) determining that the database query includes a first sub-query and a second sub-query, wherein the first sub-query and second sub-query are operands for a Union operation, wherein a first result of the first sub-query is associated with a first Group By operation, wherein a second result of the second sub-query is associated with a second Group By operation, and wherein a result of the Union operation is associated with a third Group By operation,

(b) determining that partitioning columns are the same for the first and second Group By operations,

(c) determining that the first and second sub-queries include identical algebraic functions,

(d) determining that the first Group By operation and first sub-query are not referenced elsewhere in the query, and

transforming the database query into an optimized query, wherein the optimized query does not include the Union operation.

2. The computer-implemented method of claim 1 , wherein the optimized query and the database query produce the same results.

3. The computer-implemented method of claim 1 , wherein the optimized query and the database query are in structured query language (SQL) format.

4. The computer-implemented method of claim 1 , wherein the algebraic functions include one or more of Sum and Count.

5. The computer-implemented method of claim 1 , wherein the optimized query requires fewer computing resources to evaluate than does the database query, and the algebraic functions include one or more of sum and count.

6. The computer-implemented method of claim 1 , wherein a structured query language (SQL) parser performs the detecting step, a query graph semantics unit performs the determining steps (a) through (d), and a query transformation unit performs the transforming step.

7. A computer-implemented method for transforming database queries to more efficient forms in a computer system, the method comprising:

detecting a database query, wherein the database query includes a Select operator, and the database query includes a Union operator between a first sub-query and a second sub-query, wherein the first sub-query includes a Group By operation over the first sub-query, and wherein the second sub-query includes a Group By operation over the second sub-query, and wherein the database query includes a Group By operation over both the first and second sub-queries;

determining that rows of a table in the first sub-query match rows of the table in the second sub-query;

determining that the first sub-query and the second sub-query reference identical columns of the table and include identical algebraic functions applied to each column of the table;

determining that the first sub-query and the first sub-query's Group By are not referenced elsewhere in the database query; and

transforming the database query to an optimized query, wherein the optimized query does not include the Union operator.

8. The computer-implemented method of claim 7 , wherein the database query and the optimized query produce the same result.

9. The computer-implemented method of claim 7 , wherein the database query is in structured query language (SQL) format.

10. The computer-implemented method of claim 7 further comprising:

determining that the first sub-query is not referenced elsewhere in the database query.

11. The computer-implemented method of claim 7 , wherein the algebraic functions include one or more of sum and count.

12. The computer-implemented method of claim 7 , wherein the optimized query requires fewer computing resources to evaluate than does the database query.

13. A computer program product for transforming a database queries, the computer program product comprising:

a non-transitory computer readable storage medium having computer usable program code embodied therewith, the computer usable program code comprising a computer usable program code to:

detect the database query, wherein the database query includes a Select operator, and the database query includes a Union operator between a first sub-query and a second sub-query, wherein the first sub-query includes a Group By operation over the first sub-query, and wherein the second sub-query includes a Group By operation over the second sub-query, and wherein the database query includes a Group By operation over both the first and second sub-queries;

determining that rows of a table in the first sub-query match rows of the table in the second sub-query;

determine that the first sub-query and the second sub-query reference identical columns of the table and include identical algebraic functions applied to each column of the table;

determine that the first sub-query and the first sub-query's Group By are not referenced elsewhere in the database query; and

transform the database query to an optimized query, wherein the optimized query does not include the Union operator.

14. The computer program product of claim 13 , wherein the database query and the optimized query produce the same result.

15. The computer program product of claim 13 , wherein the database query is in structured query language (SQL) format.

16. The computer program product of claim 13 further comprising:

determining that the first sub-query is not referenced elsewhere in the database query.

17. The computer program product of claim 13 , wherein the algebraic functions include one or more of sum and count.

18. The computer program product of claim 13 , wherein the optimized query requires fewer computing resources to evaluate than does the database query.

19. An apparatus comprising:

a processor configured to execute instructions for a database management system;

the database management system configured to process database queries, wherein the database management system includes

a query transformation unit configured to

detect a database query, wherein the database query includes a Select operator, and the database query includes a Union operator between a first sub-query and a second sub-query, wherein the first sub-query includes a Group By operation over the first sub-query, and wherein the second sub-query includes a Group By operation over the second sub-query, and wherein the database query includes a Group By operation over both the first and second sub-queries;

determine that rows of a table in the first sub-query match rows of the table in the second sub-query;

determine that the first sub-query and the second sub-query reference identical columns of the table and include identical algebraic functions applied to each column of the table;

determine that the first sub-query and the first sub-query's Group By are not referenced elsewhere in the database query; and

transform the database query to an optimized query, wherein the optimized query does not include the Union operator.

20. The apparatus of claim 19 , wherein the optimized query and the structured query language (SQL) query produce the same results.

21. The apparatus of claim 19 , wherein the optimized query is in structured query language (SQL) format.

22. The apparatus of claim 19 , wherein the algebraic functions include one or more of Sum and Count.

23. The apparatus of claim 19 , wherein the optimized query requires fewer computing resources to evaluate than does the database query.

24. The apparatus of claim 19 , wherein the optimized query includes a single Group By operation.

25. The apparatus of claim 19 , wherein the algebraic functions include one or more of sum and count.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AIRBNB, INC.
Reel/Frame 056427/0193 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2011
From: BARBAS, PEDRO M.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026597/0241 →