Pruning disk blocks of a clustered table in a relational database management system
First Claim
1. A method for pruning contiguous disk blocks of a target table in a relational database management system, the method comprising:
- dividing the contiguous disk blocks of the target table into a plurality of zones, each zone of the plurality of zones comprising a set of contiguous disk blocks of the target table;
maintaining, for each zone of the plurality of zones, a minimum column value and a maximum column value for each of one or more zoned columns of one or more tables;
wherein at least one of the one or more tables is not the target table;
receiving a query on the target table;
wherein the query contains a filter predicate on a particular column of the one or more zoned columns;
wherein the filter predicate has a predicate value;
in response to receiving the query, determining, based on the predicate value and the minimum column values and the maximum column values maintained for the particular column, one or more zones, of the plurality of zones, that cannot possibly contain rows of the target table satisfying the query;
determining, based on the one or more zones, of the plurality of zones, that cannot possibly contain rows of the target table satisfying the query, that a disk scan of the one or more zones is not necessary; and
returning an answer to the query without performing a disk scan of the one or more zones, of the plurality of zones, that cannot possibly contain rows of the target table satisfying the query;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are provided for generating a “dimensional zonemap” that allows a database server to avoid scanning disk blocks of a fact table based on filter predicates in a query that qualify one or more dimension tables. The zonemap divides the fact table into sets of contiguous disk blocks referred to as “zones”. For each zone, a minimum value and a maximum value for each of one or more “zoned” columns of the dimension tables is determined and maintained in the zonemap. For a query that contains a filter predicate on a zoned column, the predicate value can be compared to the minimum value and maximum value maintained for a zone for that zoned column to determine whether a scan of the disk blocks of the zone can be skipped.
138 Citations
18 Claims
-
1. A method for pruning contiguous disk blocks of a target table in a relational database management system, the method comprising:
-
dividing the contiguous disk blocks of the target table into a plurality of zones, each zone of the plurality of zones comprising a set of contiguous disk blocks of the target table; maintaining, for each zone of the plurality of zones, a minimum column value and a maximum column value for each of one or more zoned columns of one or more tables; wherein at least one of the one or more tables is not the target table; receiving a query on the target table; wherein the query contains a filter predicate on a particular column of the one or more zoned columns; wherein the filter predicate has a predicate value; in response to receiving the query, determining, based on the predicate value and the minimum column values and the maximum column values maintained for the particular column, one or more zones, of the plurality of zones, that cannot possibly contain rows of the target table satisfying the query; determining, based on the one or more zones, of the plurality of zones, that cannot possibly contain rows of the target table satisfying the query, that a disk scan of the one or more zones is not necessary; and returning an answer to the query without performing a disk scan of the one or more zones, of the plurality of zones, that cannot possibly contain rows of the target table satisfying the query; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of a method for pruning contiguous disk blocks of a target table in a relational database management system, the method comprising:
-
dividing the contiguous disk blocks of the target table into a plurality of zones, each zone of the plurality of zones comprising a set of contiguous disk blocks of the target table; maintaining, for each zone of the plurality of zones, a minimum column value and a maximum column value for each of one or more zoned columns of one or more tables; wherein at least one of the one or more tables is not the target table; receiving a query on the target table; wherein the query contains a filter predicate on a particular column of the one or more zoned columns; wherein the filter predicate has a predicate value; in response to receiving the query, determining, based on the predicate value and the minimum column values and the maximum column values maintained for the particular column, one or more zones, of the plurality of zones, that cannot possibly contain rows of the target table satisfying the query; determining, based on the one or more zones, of the plurality of zones, that cannot possibly contain rows of the target table satisfying the query, that a disk scan of the one or more zones is not necessary; and returning an answer to the query without performing a disk scan of the one or more zones, of the plurality of zones, that cannot possibly contain rows of the target table satisfying the query. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification