Method of building multidimensional workload-aware histograms
First Claim
1. In a database system, a method of maintaining a self-tuning histogram having a plurality of existing buckets arranged in a hierarchical manner and defined by at least two bucket boundaries, a bucket volume, and a bucket frequency comprising the step of creating at least one new bucket in response to a query on the database wherein each new bucket is contained within at least one existing bucket and wherein the new bucket becomes a child bucket and the existing bucket becomes a parent bucket.
2 Assignments
0 Petitions
Accused Products
Abstract
In a database system, a method of maintaining a self-tuning histogram having a plurality of existing rectangular shaped buckets arranged in a hierarchical manner and defined by at least two bucket boundaries, a bucket volume, and a bucket frequency. At least one new bucket is created in response to a query on the database. Each new bucket is contained within at least one existing bucket and the new bucket becomes a child bucket and the existing bucket containing it becomes a parent bucket. The boundaries of each new bucket correspond to a region of the database accessed by the query and the frequency of the new bucket is a number of data records returned by the query. Buckets may be merged based on a merge criterion such as similar bucket density when the total number of buckets exceeds the predetermined budget. The boundaries of a new bucket may be shrunk if the boundaries of the new bucket intersect any existing bucket boundaries.
34 Citations
23 Claims
- 1. In a database system, a method of maintaining a self-tuning histogram having a plurality of existing buckets arranged in a hierarchical manner and defined by at least two bucket boundaries, a bucket volume, and a bucket frequency comprising the step of creating at least one new bucket in response to a query on the database wherein each new bucket is contained within at least one existing bucket and wherein the new bucket becomes a child bucket and the existing bucket becomes a parent bucket.
-
9. In a database system, a method of maintaining a self-tuning histogram having a plurality of existing buckets arranged in a hierarchical manner and defined by at least two bucket boundaries, a bucket volume, and a bucket frequency comprising the steps of:
-
a) examining the results of a query executed on the database;
b) creating at least one candidate hole in the histogram based on the results of the query;
c) modifying each candidate hole such that the modified hole is completely contained within at least one existing parent bucket and does not partially intersect any existing bucket; and
d) creating a new child bucket in the histogram corresponding to each modified hole. - View Dependent Claims (10, 11, 12, 13, 14, 15, 17, 18, 19)
-
-
16. A computer readable medium having computer executable instructions for performing steps for maintaining a self-tuning histogram having a plurality of existing buckets arranged in a hierarchical manner and defined by at least two bucket boundaries, a bucket volume, and a bucket frequency, the steps comprising:
-
a) examining the results of a query executed on the database;
b) creating at least one candidate hole in the histogram based on the results of the query;
c) modifying each candidate hole such that the modified hole is completely contained within at least one existing parent bucket and does not partially intersect any existing bucket; and
d) creating a new child bucket in the histogram corresponding to each modified hole.
-
-
20. An apparatus for maintaining a self-tuning histogram having a plurality of existing buckets arranged in a hierarchical manner and defined by at least two bucket boundaries, a bucket volume, and a bucket frequency comprising:
-
a) means for examining the results of a query executed on the database;
b) means for creating at least one candidate hole in the histogram based on the results of the query;
c) means for modifying each candidate hole such that the modified hole is completely contained within at least one existing parent bucket and does not partially intersect any existing bucket; and
d) means for creating a new child bucket in the histogram corresponding to each modified hole. - View Dependent Claims (21)
-
-
22. An apparatus for maintaining a self-tuning histogram having a plurality of existing buckets arranged in a hierarchical manner and defined by at least two bucket boundaries, a bucket volume, and a bucket frequency comprising:
-
a) a memory device for storing a database comprising multiple data records;
b) a computer having one or more processing units for executing a stored computer program, said computer including a rapid access memory store; and
c) an interface for coupling the memory device for storing the database to the computer to allow records to be retrieved from the database;
whereind) the stored program has components including i) a component for examining the results of a query executed on the database;
ii) a component for creating at least one candidate hole in the histogram based on the results of the query;
iii) a component for modifying each candidate hole such that the modified hole is completely contained within at least one existing parent bucket and does not partially intersect any existing bucket; and
iv) a component for creating a new child bucket in the histogram corresponding to each modified hole. - View Dependent Claims (23)
-
Specification