IP Library Granted Patent US 9,910,868
Granted Patent B1
US 9,910,868 · App. 14/568,386 · Granted Mar 6, 2018

Systems and methods for database index optimization

Inventor: Guy le Mar (McKinnon, AU)
Assignee: Quest Software Inc.
G06F17/30289G06F17/30321
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,910,868
App. No.
14/568,386
Filed
Dec 12, 2014
Granted
Mar 6, 2018
Kind
B1
Examiner
BUI, THUY T
Art Unit
2153
USPC
707/696
Abstract

In one embodiment, a method includes selecting a plurality of indexes of a database table, receiving an indication of a set of index pairs in the plurality of indexes that are deemed to at least partially overlap, and determining a degree of overlap between the indexes of each index pair. The method further includes determining a suggested merge relationship between the indexes of each of the index pairs. The method also includes generating an index model comprising interconnected index objects. The interconnected index objects represent the indexes of the index pairs. Interconnections between the interconnected index objects reflect the suggested merge relationship between the indexes of each index pair. Moreover, the method includes outputting a graphical representation of the index model. Additionally, the method includes allowing a user to graphically select index pairs to merge in a system-determined order.

Claims (55)

1. A method comprising, by a computer system:

selecting a plurality of indexes of a database table;

receiving an indication of a set of index pairs in the plurality of indexes that are deemed to at least partially overlap;

determining a degree of overlap between the indexes of each index pair of the set of index pairs;

determining a suggested merge relationship between the indexes of each of the index pairs, wherein the suggested merge relationship is variable based, at least in part, on the degree of overlap, wherein, for at least one index pair of the set of index pairs, the indexes of the at least one index pair include some but not all of the same columns;

generating an index model comprising interconnected index objects, the interconnected index objects representing the indexes of the index pairs, wherein interconnections between the interconnected index objects reflect the suggested merge relationship between the indexes of each index pair;

outputting a graphical representation of the index model;

allowing a user to graphically select index pairs to merge in a system-determined order, wherein the system-determined order is based, at least in part, on a type of each of the suggested merge relationships;

merging the at least one index pair responsive to user authorization, the at least one index pair comprising a surviving index and a non-surviving index, the merging comprising adding, to the surviving index, columns of the non-surviving index that are missing from the surviving index;

automatically updating the index model to reflect the merged at least one index pair; and

automatically outputting an updated graphical representation of the automatically updated index model.

2. The method of claim 1 , wherein the merging comprises a simulation that results in no changes to the database table.

3. The method of claim 1 , comprising, responsive to the automatically outputting, again allowing the user to graphically select index pairs to merge in the system-determined order.

4. The method of claim 1 , wherein the index model comprises one or more non-interconnected index objects, the one or more non-interconnected index objects representing one or more indexes of the plurality of indexes that are not included in any of the index pairs.

5. The method of claim 1 , wherein the allowing of the user to graphically select index pairs to merge in the system-determined order comprises allowing the user to make decisions regarding index pairs to merge in the following order:

each index pair that is a full sequence match;

each index pair that is a partial sequence match;

each index pair that is a full-sequence non-directional match; and

each index pair that is a partial-sequence non-directional match.

6. The method of claim 1 , wherein the receiving of the indication results from execution of a database script.

7. The method of claim 1 , wherein the suggested merge relationship is selected from the group consisting of: a full sequence match, a partial sequence match, a full sequence non-directional match, and a partial sequence non-directional match.

8. An information handling system comprising a computer processor and memory, wherein the computer processor and memory in combination are operable to implement a method comprising:

selecting a plurality of indexes of a database table;

receiving an indication of a set of index pairs in the plurality of indexes that are deemed to at least partially overlap;

determining a degree of overlap between the indexes of each index pair of the set of index pairs;

determining a suggested merge relationship between the indexes of each of the index pairs, wherein the suggested merge relationship is variable based, at least in part, on the degree of overlap, wherein, for at least one index pair of the set of index pairs, the indexes of the at least one index pair include some but not all of the same columns;

generating an index model comprising interconnected index objects, the interconnected index objects representing the indexes of the index pairs, wherein interconnections between the interconnected index objects reflect the suggested merge relationship between the indexes of each index pair;

outputting a graphical representation of the index model;

allowing a user to graphically select index pairs to merge in a system-determined order, wherein the system-determined order is based, at least in part, on a type of each of the suggested merge relationships;

merging the at least one index pair responsive to user authorization, the at least one index pair comprising a surviving index and a non-surviving index, the merging comprising adding, to the surviving index, columns of the non-surviving index that are missing from the surviving index;

automatically updating the index model to reflect the merged at least one index pair; and

automatically outputting an updated graphical representation of the automatically updated index model.

9. The information handling system of claim 8 , wherein the merging comprises a simulation that results in no changes to the database table.

10. The information handling system of claim 8 , the method comprising, responsive to the automatically outputting, again allowing the user to graphically select index pairs to merge in the system-determined order.

11. The information handling system of claim 8 , wherein the index model comprises one or more non-interconnected index objects, the one or more non-interconnected index objects representing one or more indexes of the plurality of indexes that are not included in any of the index pairs.

12. The information handling system of claim 8 , wherein the allowing of the user to graphically select index pairs to merge in the system-determined order comprises allowing the user to make decisions regarding index pairs to merge in the following order:

each index pair that is a full sequence match;

each index pair that is a partial sequence match;

each index pair that is a full-sequence non-directional match; and

each index pair that is a partial-sequence non-directional match.

13. The information handling system of claim 8 , wherein the receiving of the indication results from execution of a database script.

14. The information handling system of claim 8 , wherein the suggested merge relationship is selected from the group consisting of: a full sequence match, a partial sequence match, a full sequence non-directional match, and a partial sequence non-directional match.

15. A computer-program product comprising a non-transitory computer-usable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method comprising:

selecting a plurality of indexes of a database table;

receiving an indication of a set of index pairs in the plurality of indexes that are deemed to at least partially overlap;

determining a degree of overlap between the indexes of each index pair of the set of index pairs;

determining a suggested merge relationship between the indexes of each of the index pairs, wherein the suggested merge relationship is variable based, at least in part, on the degree of overlap, wherein, for at least one index pair of the set of index pairs, the indexes of the at least one index pair include some but not all of the same columns;

generating an index model comprising interconnected index objects, the interconnected index objects representing the indexes of the index pairs, wherein interconnections between the interconnected index objects reflect the suggested merge relationship between the indexes of each index pair;

outputting a graphical representation of the index model;

allowing a user to graphically select index pairs to merge in a system-determined order, wherein the system-determined order is based, at least in part, on a type of each of the suggested merge relationships;

merging the at least one index pair responsive to user authorization the at least one index pair comprising a surviving index and a non-surviving index, the merging comprising adding, to the surviving index, columns of the non-surviving index that are missing from the surviving index;

automatically updating the index model to reflect the merged at least one index pair; and

automatically outputting an updated graphical representation of the automatically updated index model.

16. The computer-program product of claim 15 , wherein the merging comprises a simulation that results in no changes to the database table.

17. The computer-program product of claim 15 , the method comprising, responsive to the automatically outputting, again allowing the user to graphically select index pairs to merge in the system-determined order.

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 →
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 →
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 →
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 →
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 →
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 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044719/0565 →
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 →
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 →
RELEASE OF REEL 035104 FRAME 0043 (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.
Reel/Frame 040027/0123 →
RELEASE OF REEL 035103 FRAME 0809 (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.
Reel/Frame 040027/0934 →
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 035103 FRAME 0536 (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.
Reel/Frame 040016/0864 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035104/0043 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 035103/0809 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035103/0536 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2014
From: LE MAR, GUY
To: DELL SOFTWARE INC.
Reel/Frame 034513/0082 →