IP Library Granted Patent US 7,392,242
Granted Patent B1
US 7,392,242 · App. 10/863,313 · Granted Jun 24, 2008

Query costing in a multidimensional database

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,392,242
App. No.
10/863,313
Granted
Jun 24, 2008
Kind
B1
Abstract

The cost of running a query (having a query range) on a multidimensional database may be estimated using a process factors criteria beyond merely the number of affected records. First, a materialized view of the database may be represented as a container of tuples, sorted by key. Then keys may be stepped through, each key representing a mapping of a combination of tuples from the container. At each step, the process may request the next smallest key in the query range greater than or equal to the key of the current step, which results in the tuple in the database whose key is the smallest, greater than or equal to the requested key, and determine if the resulting tuple is in the query range. The cost of the query may then be estimated as the number of tuples upon which the range check was performed.

Claims (42)

1. A method comprising:

estimating processing cost for a query on a multidimensional cube, the query having a query range, by:

representing a materialized view as a container of tuples;

wherein each tuple in the materialized view corresponds to a combination of dimension key values for which data exists in said multidimensional cube;

wherein each tuple has a key that is generated based on the set of dimension key values that belong to the tuple;

wherein the tuples are sorted by key;

stepping through all keys for the query range, starting with a smallest key, said smallest key initially being established as a current key and then, at each step:

establishing, as a new current key, a next smallest key that

is in the query range, and

is greater than or equal to the current key;

after establishing the new current key, receiving a resultant tuple that is associated with a resultant key;

wherein the resultant key is a key that

corresponds to a tuple that exists in the materialized view, and

is the smallest key, in the query range key, greater than or equal to the current key;

processing said resultant tuple;

establishing, as a new current key, a key that is incrementally greater than the resultant key; and

estimating the processing cost for the query as equal to the number of tuples upon which said processing was performed during said stepping; and

determining whether or not to materialize the query base upon the estimated processing costs.

2. The method of claim 1 , wherein said container is a B-tree.

3. The method of claim 1 , wherein each member in each dimension of the multidimensional cube has a unique member number.

4. The method of claim 3 , wherein said keys are binary integers constructed from bits of member numbers.

5. A computer-readable storage medium storing instructions which, when executed by a processor, cause the processor to perform the steps of:

estimating processing cost for a query on a multidimensional cube, the query having a query range, by:

representing a materialized view as a container of tuples;

wherein each tuple in the materialized view corresponds to a combination of dimension key values for which data exists in said multidimensional cube;

wherein each tuple has a key that is generated based on the set of dimension key values that belong to the tuple;

wherein the tuples are sorted by key;

stepping through all keys for the query range, starting with a smallest key, said smallest key initially being established as a current key and then, at each step:

establishing, as a new current key, a next smallest key that

is in the query range, and

is greater than or equal to the current key;

after establishing the new current key, receiving a resultant tuple that is associated with a resultant key;

wherein the resultant key is a key that

corresponds to a tuple that exists in the materialized view, and

is the smallest key, in the query range key, greater than or equal to the current key;

processing said resultant tuple;

establishing, as a new current key, a key that is incrementally greater than the resultant key; and

estimating the processing cost for the query as equal to the number of tuples upon which said processing was performed during said stepping; and

determining whether or not to materialize the query base upon the estimated processing costs.

6. The computer-readable storage medium of claim 5 , wherein said container is a B-tree.

7. The computer-readable storage medium of claim 5 , wherein each member in each dimension of the multidimensional cube has a unique member number.

8. The computer-readable storage medium of claim 7 , wherein said keys are binary integers constructed from bits of member numbers.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2011
From: HYPERION SOLUTIONS CORPORATION
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 025986/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2011
From: BEA SYSTEMS, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 025747/0775 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2004
From: BACCASH, JONATHAN M.; NAZARENKO, IGOR; RODNY, URI; SHATDAL, AMBUJ
To: HYPERION SOLUTIONS CORPORATION
Reel/Frame 015479/0854 →