IP Library Granted Patent US 11,294,900
Granted Patent B2
US 11,294,900 · App. 15/114,337 · Granted Apr 5, 2022

Real-time monitoring and analysis of query execution

Inventors: Alkiviadis Simitsis (Santa Clara, CA); William K. Wilkinson (San Mateo, CA); Jorge Augusto Saldivar Galli (Palo Alto, CA)
Assignee: MICRO FOCUS LLC
G06F16/24542
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,294,900
App. No.
15/114,337
Filed
Jul 26, 2016
Granted
Apr 5, 2022
Kind
B2
Examiner
ZHAO, YU
Art Unit
2169
USPC
707/718
Abstract

Example embodiments relate to providing real-time monitoring and analysis of query execution. In example embodiments, a query plan is obtained for a database query that is scheduled for execution in a database. A query tree is then generated based on the query plan, where the query tree includes operator nodes that are associated corresponding operators in the query plan. At this stage, performance metrics are collected from the database during the execution of the database query. Next, the query tree is displayed with the performance metrics, where a related portion of the performance metrics are displayed in each of the operator nodes.

Claims (57)

1. A system for providing real-time monitoring and analysis of query execution, the system comprising of:

a processor to:

obtain a query plan for a database query scheduled for execution in a database;

generate a query tree based on the query plan, wherein the query tree comprises a plurality of operator nodes each of which is associated with a corresponding operator in the query plan;

collect performance metrics from the database, wherein the performance metrics measure performance of the database query during execution of the database query in the database;

display the query tree with the performance metrics, wherein a related portion of the performance metrics is displayed as a graphical representation inside each of the plurality of operator nodes;

as the execution of the database query continues, collect updates to the performance metrics from the database; and

in response to collecting the updates to the performance metrics, update, in real-time, the related portion of the performance metrics displayed as the graphical representation inside each of the plurality of operator nodes based on the updates to the performance metrics.

2. The system of claim 1 , wherein the processor is further to:

display an overview tree of the query plan, wherein the overview tree is used to navigate to a different extent in a display of query tree.

3. The system of claim 1 , wherein the processor is further to:

display a progress indicator to show progress of the execution of the database query, wherein each operator node of the plurality of operator nodes is color-coded based on an execution status of an operator corresponding to the operator node.

4. The system of claim 1 , wherein the database is a parallel database comprising a plurality of database computing devices, and wherein the query plan is executed in parallel on the plurality of database computing devices.

5. The system of claim 1 , wherein the processor is further to:

identify a plurality of critical paths in the query tree based on the performance metrics; and

determine a plurality of tree subsets based on the plurality of critical paths, wherein each of the plurality of tree subsets includes a critical path of the plurality of critical paths and descendent nodes of the critical path from the plurality of operator nodes.

6. The system of claim 5 , wherein the processor is further to:

in response to a user selecting a target subset of the plurality of tree subsets, generate a new subquery for the target subset comprising additional syntax that allows operators in the target subset to be executed in the database; and

display an isolated query tree for the new subquery.

7. The system of claim 1 , wherein the display of a query tree suppresses a low priority node of the plurality of operator nodes based on the related portion of performance metrics.

8. The system of claim 1 , wherein the processor is further to:

identify a plurality of critical paths in the query tree based on resource usage determined from the performance metrics; and

responsive to identifying the plurality of critical paths in the query tree, update a display of operator nodes associated with the plurality of critical paths in the query tree.

9. A method for providing real-time monitoring and analysis of query execution, the method comprising:

obtaining a query plan for a database query scheduled for execution in a database;

generating a query tree based on the query plan, wherein the query tree comprises a plurality of operator nodes each of which is associated with a corresponding operator in the query plan;

collecting performance metrics, in real-time, from the database during the execution of the database query;

displaying the query tree with the performance metrics, in real-time, wherein a related portion of the performance metrics is displayed as a graphical representation inside each of the plurality of operator nodes;

identifying a plurality of critical paths in the query tree based on resource usage determined from the performance metrics; and

responsive to identifying the plurality of critical paths in the query tree, updating a display of operator nodes associated with the plurality of critical paths in the query tree.

10. The method of claim 9 , further comprising:

display a progress indicator to show progress of the execution of the database query, wherein each operator node of the plurality of operator nodes is color-coded based on an execution status of an operator corresponding to the operator node.

11. The method of claim 9 , further comprising:

determining a plurality of tree subsets based on the plurality of critical paths, wherein each of the plurality of tree subsets includes a critical path of the plurality of critical paths and descendent nodes of the critical path from the plurality of operator nodes.

12. The method of claim 11 , further comprising:

in response to a user selecting a target subset of the plurality of tree subsets, generating a new subquery for the target subset comprising additional syntax that allows operators in the target subset to be executed in the database; and

displaying an isolated query tree for the new subquery.

13. The method of claim 9 , wherein a display of query tree suppresses a low priority node of the plurality of operator nodes based on the related portion of performance metrics.

14. The method of claim 9 , further comprising:

as the execution of the database query continues, collecting updates to the performance metrics from the database; and

responsive to receiving the updates to the performance metrics, updating the related portion displayed as the graphical representation inside each of the plurality of operator nodes based on the updates to the performance metrics.

15. A non-transitory machine-readable storage medium encoded with instructions executable by a processor for providing real-time monitoring and analysis of query execution, the machine-readable storage medium comprising instructions to:

obtain a query plan for a database query scheduled for execution in a database, wherein the database is a parallel database comprising a plurality of database computing devices, and wherein the query plan is executed in parallel on the plurality of database computing devices;

generate a query tree based on the query plan, wherein the query tree comprises a plurality of operator nodes each of which is associated with a corresponding operator in the query plan;

collect performance metrics from the plurality of database devices, wherein the performance metrics measure performance of the database query during execution of the database query on the plurality of database devices;

display the query tree with the performance metrics, wherein a related portion of the performance metrics is displayed as a graphical representation inside each of the plurality of operator nodes, and wherein each of the plurality of operator nodes is shown to be associated with at least one of the plurality of database devices;

as the execution of the database query continues, collect updates to the performance metrics from the database; and

in response to collecting the updates to the performance metrics from the database, update, in real-time, the related portion of the performance metrics displayed as the graphical representation inside each of the plurality of operator nodes based on the updates to the performance metrics.

16. The machine-readable storage medium of claim 15 , wherein the machine-readable storage medium further comprises instructions to:

identify a plurality of critical paths in the query tree based on the performance metrics; and

determine a plurality of tree subsets based on the plurality of critical paths, wherein each of the plurality of tree subsets includes a critical path of the plurality of critical paths and descendent nodes of the critical path from the plurality of operator nodes.

17. The machine-readable storage medium of claim 16 , wherein the machine-readable storage medium further comprises instructions to:

in response to a user selecting a target subset of the plurality of tree subsets, generate a new subquery for the target subset comprising additional syntax that allows operators in the target subset to be executed in the database; and

display an isolated query tree for the new subquery.

18. The machine-readable storage medium of claim 15 , wherein the processor is further to:

identify a plurality of critical paths in the query tree based on resource usage determined from the performance metrics; and

responsive to identifying the plurality of critical paths in the query tree, update a display of operator nodes associated with the plurality of critical paths in the query tree.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2026
From: OPEN TEXT US LLC
To: ROCKET SOFTWARE, INC.
Reel/Frame 075791/0327 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2016
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 039650/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2016
From: SIMITSIS, ALKIVIADIS; WILKINSON, WILLIAM K.; SALDIVAR GALLI, JORGE AUGUSTO
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 039262/0861 →
Continuity (1)
Related Publication 20170004173A1 · Jan 5, 2017