IP Library Granted Patent US 9,652,503
Granted Patent B2
US 9,652,503 · App. 14/682,804 · Granted May 16, 2017

Methods and apparatus for monitoring execution of a database query program

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,652,503
App. No.
14/682,804
Granted
May 16, 2017
Kind
B2
Abstract

A method includes, receiving, during a first portion of an execution of a main program including a database query program and based on a first configuration for monitoring the database query program, a parameter value representing performance of execution of the database query program. The method further includes determining that a performance condition has been satisfied based on the parameter value, and triggering execution of a second configuration for monitoring the database query program during a second portion of the execution of the main program in response to the performance condition being satisfied.

Claims (67)

1. A non-transitory computer-readable storage medium storing instructions that when executed cause a processor to:

receive, during a first portion of an execution of a main program that includes a plurality of database query programs, a parameter value representing performance of a first database query program from the plurality of database query programs;

execute a first configuration for monitoring the performance of the first database query program during the first portion of the execution of the main program;

determine whether a performance condition has been satisfied by the first database query program during the first portion of the execution of the main program, based, at least in part, on the parameter value;

based on a determination that the performance condition has been satisfied, execute a second configuration for monitoring the performance of the first database query program during a second portion of the execution of the main program; and

execute a third configuration for monitoring a second database query program from the plurality of database query programs during the first portion of the execution of the main program, the third configuration being different from the first and second configurations for monitoring the performance of the first database query program.

2. The non-transitory computer-readable storage medium of claim 1 , wherein the performance condition is satisfied in response to the first database query program being executed a threshold number of times, and wherein the parameter value includes an indicator of the number of times that the first database query program has been executed.

3. The non-transitory computer-readable storage medium of claim 1 , wherein the main program is executed during each of a plurality of execution cycles,

and wherein the instructions when executed cause the processor to:

execute the first configuration for monitoring the first database query program at a beginning of each of the plurality of execution cycles of the main program.

4. The computer-readable storage medium of claim 1 , wherein

the main program is executed during each of a plurality of execution cycles,

and wherein the instructions when executed cause the processor to:

execute a third configuration for monitoring the first database query program at a beginning of each execution cycle of the main program from the plurality of execution cycles subsequent to a first execution cycle from the plurality of execution cycles.

5. The non-transitory computer-readable storage medium of claim 1 , wherein the first configuration for monitoring the first database query program has a sampling rate that is different than a sampling rate of the second configuration for monitoring the first database query program.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the parameter value representing performance of the first database query program is based on a duration of execution of the database query program.

7. The non-transitory computer-readable storage medium of claim 1 , wherein the parameter value representing performance of the first database query program is based on at least one of an occurrence of a deadlock or a timeout.

8. The non-transitory computer-readable storage medium of claim 1 , wherein the first database query program is a structured query language (SQL) program.

9. The non-transitory computer-readable storage medium of claim 1 , wherein the parameter value representing performance of the first database query program includes a value based on at least one of a number of timeouts, a number of deadlocks, a duration of an execution, an execution counter value, an input/output (I/O) time, a central processing unit (CPU) time, a CPU usage, a number of get page requests and a wait time of the database query program.

10. A computer-implemented method comprising:

receiving, during a first portion of an execution of a main program that includes a plurality of database query programs, a parameter value representing performance of a first database query program from the plurality of database query programs;

executing a first configuration for monitoring the performance of the first database query program during the first portion of the execution of the main program;

determining whether a performance condition has been satisfied by the first database query program during the first portion of the execution of the main program, based, at least in part, on the parameter value;

based on a determination that the performance condition has been satisfied, executing a second configuration for monitoring the performance of the first database query program during a second portion of the execution of the main program; and

executing a third configuration for monitoring a second database query program from the plurality of database query programs during the first portion of the execution of the main program, the third configuration being different from the first and second configurations for monitoring the performance of the first database query program.

11. The computer-implemented method of claim 10 , wherein the performance condition is satisfied in response to the first database query program being executed a threshold number of times, and wherein the parameter value includes an indicator of the number of times that the first database query program has been executed.

12. The computer-implemented method of claim 10 , wherein the main program is executed during each of a plurality of execution cycles, the method further comprising:

executing the first configuration for monitoring the first database query program at a beginning of each of the plurality of execution cycles of the main program.

13. The computer-implemented method of claim 10 , wherein the main program is executed during each of a plurality of execution cycles, the method further comprising:

executing a third configuration for monitoring the first database query program at a beginning of each execution cycle of the main program from the plurality of execution cycles subsequent to a first execution cycle from the plurality of execution cycles.

14. The computer-implemented method of claim 10 , wherein the first configuration for monitoring the first database query program has a sampling rate that is different than a sampling rate of the second configuration for monitoring the first database query program.

15. The computer-implemented method of claim 10 , wherein the parameter value representing performance of the first database query program is based on a duration of execution of the database query program.

16. The computer-implemented method of claim 10 , wherein the parameter value representing performance of the first database query program is based on at least one of an occurrence of a deadlock or a timeout.

17. The computer-implemented method of claim 10 , wherein the first database query program is a structured query language (SQL) program.

18. The computer-implemented method of claim 10 , wherein the parameter value representing performance of the first database query program includes a value based on at least one of a number of timeouts, a number of deadlocks, a duration of an execution, an execution counter value, an input/output (I/O) time, a central processing unit (CPU) time, a CPU usage, a number of get page requests and a wait time of the database query program.

19. A non-transitory computer-readable storage medium storing instructions that when executed cause a processor to:

receive, during a first portion of an execution of a main program that includes a plurality of database query programs, a parameter value representing performance of a first database query program from the plurality of database query programs, wherein the execution of the main program occurs during a first execution cycle from a plurality of execution cycles;

execute a first configuration for monitoring the performance of the first database query program during the first portion of the execution of the main program;

determine whether a performance condition has been satisfied by the first database query program during the first portion of the execution of the main program, based, at least in part, on the parameter value;

based on a determination that the performance condition has been satisfied, execute a second configuration for monitoring the performance of the first database query program during a second portion of the execution of the main program; and

execute a third configuration for monitoring the first database query program at a beginning of each execution cycle of the main program from the plurality of execution cycles subsequent to the first execution cycle from the plurality of execution cycles.

20. The non-transitory computer-readable storage medium of claim 19 , wherein the performance condition is satisfied in response to the first database query program being executed a threshold number of times, and wherein the parameter value includes an indicator of the number of times that the first database query program has been executed.

21. The non-transitory computer-readable storage medium of claim 19 , wherein the instructions when executed cause the processor to execute a third configuration for monitoring a second database query program from the plurality of database query programs during the first portion of the execution of the main program, the third configuration being different from the first and second configurations for monitoring the performance of the first database query program.

22. The non-transitory computer-readable storage medium of claim 19 , wherein the main program is executed during each of a plurality of execution cycles, and wherein the instructions when executed cause the processor to:

execute the first configuration for monitoring the first database query program at a beginning of each of the plurality of execution cycles of the main program.

23. The non-transitory computer-readable storage medium of claim 19 , wherein the first configuration for monitoring the first database query program has a sampling rate that is different than a sampling rate of the second configuration for monitoring the first database query program.

24. The non-transitory computer-readable storage medium of claim 19 , wherein the parameter value representing performance of the first database query program is based on a duration of execution of the database query program.

25. The non-transitory computer-readable storage medium of claim 19 , wherein the parameter value representing performance of the first database query program is based on at least one of an occurrence of a deadlock or a timeout.

26. The non-transitory computer-readable storage medium of claim 19 , wherein the first database query program is a structured query language (SQL) program.

27. The non-transitory computer-readable storage medium of claim 19 , wherein the parameter value representing performance of the first database query program includes a value based on at least one of a number of timeouts, a number of deadlocks, a duration of an execution, an execution counter value, an input/output (I/O) time, a central processing unit (CPU) time, a CPU usage, a number of get page requests and a wait time of the database query program.

28. A computer-implemented method comprising:

receiving, during a first portion of an execution of a main program that includes a plurality of database query programs, a parameter value representing performance of a first database query program from the plurality of database query programs, wherein the execution of the main program occurs during a first execution cycle from a plurality of execution cycles;

executing a first configuration for monitoring the performance of the first database query program during the first portion of the execution of the main program;

determining whether a performance condition has been satisfied by the first database query program during the first portion of the execution of the main program, based, at least in part, on the parameter value;

based on a determination that the performance condition has been satisfied, executing a second configuration for monitoring the performance of the first database query program during a second portion of the execution of the main program; and

executing a third configuration for monitoring the first database query program at a beginning of each execution cycle of the main program from the plurality of execution cycles subsequent to the first execution cycle from the plurality of execution cycles.

29. The computer-implemented method of claim 28 , wherein the performance condition is satisfied in response to the first database query program being executed a threshold number of times, and wherein the parameter value includes an indicator of the number of times that the first database query program has been executed.

30. The computer-implemented method of claim 28 further comprising:

executing a third configuration for monitoring a second database query program from the plurality of database query programs during the first portion of the execution of the main program, the third configuration being different from the first and second configurations for monitoring the performance of the first database query program.

31. The computer-implemented method of claim 28 , wherein the main program is executed during each of a plurality of execution cycles,

and wherein the method further comprises:

executing the first configuration for monitoring the first database query program at a beginning of each of the plurality of execution cycles of the main program.

32. The computer-implemented method of claim 28 , wherein the first configuration for monitoring the first database query program has a sampling rate that is different than a sampling rate of the second configuration for monitoring the first database query program.

33. The computer-implemented method of claim 28 , wherein the parameter value representing performance of the first database query program is based on a duration of execution of the database query program.

34. The computer-implemented method of claim 28 , wherein the parameter value representing performance of the first database query program is based on at least one of an occurrence of a deadlock or a timeout.

35. The computer-implemented method of claim 28 , wherein the first database query program is a structured query language (SQL) program.

36. The computer-implemented method of claim 28 , wherein the parameter value representing performance of the first database query program includes a value based on at least one of a number of timeouts, a number of deadlocks, a duration of an execution, an execution counter value, an input/output (I/O) time, a central processing unit (CPU) time, a CPU usage, a number of get page requests and a wait time of the database query program.

Assignments (13)
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0189 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2015
From: BEHNE, MICHAEL D.
To: BMC SOFTWARE, INC.
Reel/Frame 035380/0394 →