IP Library Granted Patent US 7,814,080
Granted Patent B1
US 7,814,080 · App. 10/694,564 · Granted Oct 12, 2010

Grouping database queries and/or transactions

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 7,814,080
App. No.
10/694,564
Granted
Oct 12, 2010
Kind
B1
Abstract

A method and apparatus identifies SQL statements in a first transaction that specify modification operations that are commutative and associative. The SQL statements are combined into one SQL statement, and the one SQL statement is submitted to a database system. Optionally, or alternatively, multiple transactions can be grouped together into one transaction.

Claims (36)

1. A method comprising:

establishing multiple sessions with a database system, each session associated with at least one transaction;

identifying transactions that operate on the same set of one or more tuples;

re-allocating transactions between or among the sessions such that the identified transactions that operate on the same set of one or more tuples are allocated to one of the sessions;

identifying statements in a particular one of the transactions that specify modification operations that are commutative and associative;

combining the identified statements into one statement; and

submitting the one statement to the database system.

2. The method of claim 1 , wherein identifying the statements comprises identifying Structured Query Language (SQL) statements.

3. The method of claim 1 , wherein combining the identified statements is performed prior to submitting the one statement to the database system.

4. The method of claim 1 , further comprising grouping plural ones of the transactions into the particular transaction.

5. The method of claim 4 , wherein establishing the multiple sessions, identify the transactions, re-allocating the transactions, identifying the statements, combining the identified statements, submitting the one statement, and grouping the plural transactions are performed by a module separate from a database engine of the database system.

6. The method of claim 1 , wherein establishing the multiple sessions, identifying the transactions, re-allocating the transactions, identifying the statements, combining the identified statements, and submitting the one statement are performed by a module separate from a database engine of the database system.

7. The method of claim 6 , wherein identifying the statements, combining the identified statements, and submitting the one statement are performed by the module without first accessing data in relational tables.

8. The method of claim 1 , further comprising switching an order of statements in the particular transaction to place the identified statements adjacent to each other.

9. The method of claim 8 , further comprising determining whether data dependency exists between or among the identified statements prior to switching the order of the identified statements.

10. The method of claim 1 , wherein identifying the statements comprises identifying statements <t, b 1 > through <t, b m >, m being greater than 1, where t represents a set of one or more tuples, and b 1 through bm represent respective modification operations on the set of one or more tuples, and

wherein combining the identified statements comprises combining the identified statements into statement <t, c>, where c represents an aggregation of b 1 through b m .

11. The method of claim 10 , wherein combining the identified statements comprises combining the identified statements into statement <t, c>, where c represents an addition b 1 through b m .

12. The method of claim 10 , wherein combining the identified statements comprises combining the identified statements into statement <t, c>, where c represents a multiplication of b 1 through b m .

13. A system comprising:

an interface to receive first queries from a client system;

one or more processors; and

a software utility executable on the one or more processors to:

establish plural sessions with a database system, each session associated with at least one transaction;

identify transactions that operate on the same set of one or more tuples;

re-allocate transactions between or among the sessions such that the identified transactions that operate on the same set of one or more tuples is allocated to one of the sessions;

identify first queries of a particular one of the transactions that specify commutative and associative operations, and

group the identified first queries into a second query.

14. The system of claim 13 , wherein the statements comprises Structured Query Language (SQL) statements.

15. The system of claim 13 , wherein the controller is adapted to send the second query to a database engine of the database system.

16. The system of claim 15 , wherein the controller is adapted to group the identified first queries prior to submitting the second query to the database engine.

17. The system of claim 13 , wherein the software utility is executable to group plural transactions into the particular transaction.

18. The system of claim 13 , wherein the identified first queries comprise statements <t, b 1 > through <t, b m >, m being greater than 1, where t represents a set of one or more tuples, and b 1 through bm represent respective modification operations on the set of one or more tuples, and

wherein the second query comprises statement <t, c>, where c represents an aggregation of b 1 through b m .

19. The system of claim 18 , wherein c represents an addition of b 1 through b m .

20. The system of claim 18 , wherein c represents a multiplication of b 1 through b m .

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2008
From: NCR CORPORATION
To: TERADATA US, INC.
Reel/Frame 020666/0438 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2003
From: LUO, GANG; WATZKE, MICHAEL W.; ELLMANN, CURT J.
To: NCR CORPORATION
Reel/Frame 014641/0659 →