0% found this document useful (0 votes)
43 views2 pages

Oracle Bitmap Join Indexes

Bitmap join indexes provide a way to store the results of joins between tables in a compressed bitmap format for faster retrieval during queries. They extend traditional bitmap indexes by including data to support join queries without having to reference the joined tables. This reduces processing compared to materialized views. Bitmap join indexes are created by specifying the columns used to join tables, and queries can then retrieve joined data directly from the index. However, they have restrictions around parallel DML and can only support joins between two tables.

Uploaded by

Srinivas Surabhi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views2 pages

Oracle Bitmap Join Indexes

Bitmap join indexes provide a way to store the results of joins between tables in a compressed bitmap format for faster retrieval during queries. They extend traditional bitmap indexes by including data to support join queries without having to reference the joined tables. This reduces processing compared to materialized views. Bitmap join indexes are created by specifying the columns used to join tables, and queries can then retrieve joined data directly from the index. However, they have restrictions around parallel DML and can only support joins between two tables.

Uploaded by

Srinivas Surabhi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Bitmap Join Indexes

-- by Puneet Goenka In Oracle8i performance improvements were made using materialized views to store the resulting rows of queries. The benefits of this mechanism are still relevant, but a certain subset of the queries used in a data warehouse and some other DSS may benefit from the use of Bitmap Join Indexes. How It Works In a Bitmap Index, each distinct value for the specified column is associated with a bitmap where each bit represents a row in the table. A '1' means that row contains that value, a '0' means it doesn't. Bitmap Join Indexes extend this concept such that the index contains the data to support the join query, allowing the query to retrieve the data from the index rather than referencing the join tables. Since the information is compressed into a bitmap, the size of the resulting structure is significantly smaller than the corresponding materialized view. Creation The index is created with reference to the columns in the joined tables that will be used to support the query. In the following example an index is created where the SALES table is joined to the CUSTOMERS table:
CREATE BITMAP INDEX cust_sales_bji ON sales(customers.state) FROM sales, customers WHERE sales.cust_id = customers.cust_id;

Since the CUSTOMERS.STATE column is referenced in the ON clause of the index, queries on the SALES table that join to the CUSTOMERS table to retrieve the STATE column can do so without referencing the CUSTOMERS table. Instead the data is read from the bitmap join index:
SELECT SUM(sales.dollar_amount) FROM sales, customer WHERE sales.cust_id = customer.cust_id AND customer.state = 'California';

When dealing with large datasets, this reduction in processing can be substantial. Restrictions Bitmap Join Indexes have the following restrictions:

Parallel DML is currently only supported on the fact table. Parallel DML on one of the participating dimension tables will mark the index as unusable. Only one table can be updated concurrently by different transactions when using the bitmap join index. No table can appear twice in the join. You cannot create a bitmap join index on an index-organized table or a temporary table. The columns in the index must all be columns of the dimension tables. The dimension table join columns must be either primary key columns or have unique constraints. If a dimension table has composite primary key, each column in the primary key must be part of the join.

You might also like