Hi Experts,
I was looking Christian Antognini's web site, who is one of my favourite author for Oracle, I came across an interesting paper which is called "Bloom Filters" (http://antognini.ch/papers/BloomFilters20080620.pdf). It is such an informative paper, I learnt new things from it. After I read it, I also found an interesting article about Bloom filters by Jonathan Lewis (Bloom Filter | Oracle Scratchpad). I can say that I did learn the general concepts of Bloom filter and its usage. Also, Jonathan Lewis has written a perfect explanation that why it is used by Oracle in this (Bloom Filters | Oracle) remarkable article.
"In normal Bit Vector filtering the rows are filtered after they are transferred between the slave processes and just before the join. In the case of Bloom Filters the rows are discarded at an even earlier stage – during the scan of probe table data itself. This has the advantage of reducing the data transfer between the slave processes."
Jonathan Lewis
However, one question comes to my mind. Bloom filters can be used in parallel processing queries when merge or hash join appears. As far as I understand from Christian's paper, let's say that two tables join with parallel processing, after scanning the rows from first table, before sending data to hash table, slave process create bloom filter and populate it (Bloom filter only contain TRUE or FALSE that means intended data exist or not). And, the other slave process look up the data by using bloom filter after it scans data from second table, if the related data exists, then send it to the hash table (PX SEND HASH, PX RECEIVE). My question is, why Oracle doesn't check the joining part in hash table? In other words, does it much more costly to check it on HASH TABLE than BLOOM FILTER? Because, when bloom filters comes into play there is also a cost for them. I know insert and look up super fast in bloom filters and efficient. But, also hash tables are very efficient in these terms.
Does Bloom filter + Hash Table efficient than ONLY HASH TABLE???
I hope, I did express myself.
Regards
Charlie