IP Library Granted Patent US 9,934,278
Granted Patent B2
US 9,934,278 · App. 14/702,858 · Granted Apr 3, 2018

Method of optimizing complex SQL statements using a region divided preferential SQL rewrite operation

Inventors: Wai Yip To (Yaumatei, HK); Ka Wing Luk (Tseung Kwan O, HK)
Assignee: QUEST SOFTWARE INC.
G06F17/30474G06F17/30404
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 9,934,278
App. No.
14/702,858
Filed
May 4, 2015
Granted
Apr 3, 2018
Kind
B2
Examiner
LEE, WILSON
Art Unit
2155
USPC
707/713
Abstract

A system, method, and computer-readable medium for optimizing complex SQL statements using a region divided preferential SQL rewrite operation. The region divided preferential SQL rewrite operation makes it possible for a user to inference a machine SQL statement rewrite operation to optimize the SQL statement with more or less focus on different regions of the SQL. This operation combines the strength of using heuristic knowledge and understanding of data to rewrite the region of the SQL statement where the problem originates with the precision and efficiency of a machine SQL statement rewrite operation. More specifically, optimizing a complex SQL statement includes a region division operation during which a SQL statement is divided into multiple regions, a user preference assignment process in which the user defines different attention level for different regions, and a region preferential rewrite operation in which the SQL statement is rewritten with consideration to the attention level defined for each region of the SQL statement.

Claims (45)

1. A computer-implementable method, comprising:

performing a region division structured query language (SQL) statement rewrite operation on the SQL statement, the region division SQL statement rewrite operation identifying a plurality of SQL statement regions;

specifying a rewrite focus priority for a particular SQL statement region in the plurality of SQL statement regions, the rewrite focus priority providing an indication of a particular amount of resource to be expended on the particular SQL statement region during an optimization operation on the particular SQL statement region, the rewrite focus priority indicating that the optimization operation is to be performed on the particular SQL statement region before other SQLs statement region in the plurality of SQL statement regions;

performing a region preferential SQL statement optimization operation on the particular SQL statement region based on the rewrite focus priority indicating that the optimization operation is to be performed on the particular SQL statement region before other SQLs statement region in the plurality of SQL statement regions and based upon the indication of the particular amount of resource to be expended on the particular SQL statement region, the SQL statement optimization operation recursively performing a rewrite optimization on the particular SQL statement region according to the specified rewrite focus priority.

2. The method of claim 1 , wherein:

the plurality of SQL statement regions of the SQL statement are defined by query blocks and subquery blocks.

3. The method of claim 1 , wherein:

the plurality of SQL statement regions comprise boundaries defining a smaller portion of the SQL statement, the boundaries being applicable to a certain type of rewrite operation.

4. The method of claim 3 , wherein:

the certain type of rewrite operation comprises a FROM clause with a table list in which a join order is changed.

5. The method of claim 1 , wherein:

after the regions are identified, the method further comprises receiving an identification of a certain region in the SQL statement and instructing the optimization operation to focus on the certain regions to rewrite during the optimization operation.

6. The method of claim 1 , wherein:

the specifying is provided via a user-specified input where the user is able to inference how to rewrite the SQL statement.

7. A system, comprising:

a processor;

a data bus coupled to the processor; and

a non-transitory, computer-readable storage medium embodying computer program code, the non-transitory, computer-readable storage medium being coupled to the data bus, the computer program code interacting with a plurality of computer operations and comprising instructions executable by the processor to cause the system to perform operations comprising:

perform a region division structured query language (SQL) statement rewrite operation on the SQL statement, the region division SQL statement rewrite operation identifying a plurality of SQL statement regions;

specify a rewrite focus priority for a particular SQL statement region in the plurality of SQL statement regions, the rewrite focus priority providing an indication of the particular amount of resource to be expended on a particular SQL statement region during an optimization operation on the particular SQL statement region, the rewrite focus priority indicating that the optimization operation is to be performed on the particular SQL statement region before other SQLs statement region in the plurality of SQL statement regions;

perform a region preferential SQL statement optimization operation on the particular SQL statement region based on the rewrite focus priority indicating that the optimization operation is to be performed on the particular SQL statement region before other SQLs statement region in the plurality of SQL statement regions and based upon the indication of the particular amount of resource to be expended on the particular SQL statement region, the SQL statement optimization operation recursively performing a rewrite optimization on the particular SQL statement region according to the specified rewrite focus priority.

8. The system of claim 7 , wherein:

the plurality of SQL statement regions of the SQL statement are defined by query blocks and subquery blocks.

9. The system of claim 7 , wherein:

the plurality of SQL statement regions comprise boundaries defining a smaller portion of the SQL statement, the boundaries being applicable to a certain type of rewrite operation.

10. The system of claim 7 , wherein:

the certain type of rewrite operation comprises a FROM clause with a table list in which a join order is changed.

11. The system of claim 7 , wherein:

after the regions are identified, the operations further comprise receiving an identification of a certain region in the SQL statement and instructing the optimization operation to focus on the certain regions to rewrite during the optimization operation.

12. The system of claim 7 , wherein:

the specifying is provided via a user-specified input where the user is able to inference how to rewrite the SQL statement.

13. A non-transitory, computer-readable storage medium embodying computer program code, the computer program code comprising computer executable instructions that, when executed by a processor, cause a system to perform operations comprising:

performing a region division structured query language (SQL) statement rewrite operation on the SQL statement, the region division SQL statement rewrite operation identifying a plurality of SQL statement regions;

specifying a rewrite focus priority for a particular SQL statement region in the plurality of SQL statement regions, the rewrite focus priority providing an indication of a particular amount of resource to be expended on the particular SQL statement region during an optimization operation on the particular SQL statement region, the rewrite focus priority indicating that the optimization operation is to be performed on the particular SQL statement region before other SQLs statement region in the plurality of SQL statement regions;

performing a region preferential SQL statement optimization operation on the particular SQL statement region based on the rewrite focus priority indicating that the optimization operation is to be performed on the particular SQL statement region before other SQLs statement region in the plurality of SQL statement regions and based upon the indication of the particular amount of resource to be expended on the particular SQL statement region, the SQL statement optimization operation recursively performing a rewrite optimization on the particular SQL statement region according to the specified rewrite focus priority.

14. The non-transitory, computer-readable storage medium of claim 13 , wherein:

the plurality of SQL statement regions of the SQL statement are defined by query blocks and subquery blocks.

15. The non-transitory, computer-readable storage medium of claim 13 , wherein:

the plurality of SQL statement regions comprise boundaries defining a smaller portion of the SQL statement, the boundaries being applicable to a certain type of rewrite operation.

16. The non-transitory, computer-readable storage medium of claim 13 , wherein:

the certain type of rewrite operation comprises a FROM clause with a table list in which a join order is changed.

17. The non-transitory, computer-readable storage medium of claim 13 , wherein:

after the regions are identified, the operations further comprise receiving an identification of a certain region in the SQL statement and instructing the optimization operation to focus on the certain regions to rewrite during the optimization operation.

18. The non-transitory, computer-readable storage medium of claim 13 , wherein:

the specifying is provided via a user-specified input where the user is able to inference how to rewrite the SQL statement.

Assignments (26)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
CHANGE OF NAME Recorded Jun 19, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 046393/0009 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF REEL 035860 FRAME 0878 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040027/0158 →
RELEASE OF REEL 035860 FRAME 0797 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040028/0551 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 035858 FRAME 0612 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040017/0067 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035860/0878 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 035860/0797 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035858/0612 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2015
From: TO, WAI YIP; LUK, KA WING
To: DELL SOFTWARE, INC.
Reel/Frame 035572/0247 →
Continuity (1)
Related Publication 20160328446A1 · Nov 10, 2016