Pruning disk blocks in a relational database management system
First Claim
1. A computer-implemented method comprising:
- dividing disk blocks of a target table into a plurality of zones, each zone of the plurality of zones being defined by a respective set of contiguous disk blocks on disk, the respective set of contiguous disk blocks on disk containing data of one or more rows of the target table;
determining, 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 each zone of the plurality of zones corresponds to a respective set of data in the one or more zoned columns;
wherein, for each zone of the plurality of zones, the minimum column value and maximum column value determined for each zoned column of the one or more zoned columns is determined based on the respective set of data, in the one or more zoned columns, corresponding to the zone;
wherein at least one of the one or more zoned columns is not a column of 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;
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;
wherein the method is performed by one or more computing devices.
0 Assignments
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.
-
Citations
22 Claims
-
1. A computer-implemented method comprising:
-
dividing disk blocks of a target table into a plurality of zones, each zone of the plurality of zones being defined by a respective set of contiguous disk blocks on disk, the respective set of contiguous disk blocks on disk containing data of one or more rows of the target table; determining, 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 each zone of the plurality of zones corresponds to a respective set of data in the one or more zoned columns; wherein, for each zone of the plurality of zones, the minimum column value and maximum column value determined for each zoned column of the one or more zoned columns is determined based on the respective set of data, in the one or more zoned columns, corresponding to the zone; wherein at least one of the one or more zoned columns is not a column of 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; 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; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. One or more non-transitory computer-readable media storing at least one program configured for execution by at least one processor, the at least one program comprising instructions to:
-
dividing disk blocks of a target table into a plurality of zones, each zone of the plurality of zones being defined by a respective set of contiguous disk blocks on disk, the respective set of contiguous disk blocks on disk containing data of one or more rows of the target table; determining, 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 each zone of the plurality of zones corresponds to a respective set of data in the one or more zoned columns; wherein, for each zone of the plurality of zones, the minimum column value and maximum column value determined for each zoned column of the one or more zoned columns is determined based on the respective set of data, in the one or more zoned columns, corresponding to the zone; wherein at least one of the one or more zoned columns is not a column of target table; receive 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; determine, 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. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification