我正在使用Oracle數據庫,我需要能夠將表中的數據分區。我知道Rracle有一個ora_hash函數可以將數據分成桶。 ora_hash函數是確定性的嗎?ora_hash是確定性的嗎?
在我的程序中,我將進行幾個不同的數據庫查詢,每個查詢要求不同的存儲桶編號。
例如,在一個查詢我可能會問前兩個桶:
SELECT * FROM sales WHERE ORA_HASH(cust_id, 9) in (0,1);
在隨後的查詢中我可能會問的第二和第三桶:
SELECT * FROM sales WHERE ORA_HASH(cust_id, 9) in (1,2);
在上面例如,ora_hash總是將表格分成完全相同的10個桶?假設表中的數據沒有改變。第二個存儲桶(存儲桶1)是否在兩個查詢中都相同?
有是表明種子值使Oracle爲同一數據集返回不同的結果文檔。所以我假設如果我不使用種子值,那麼ora_hash將是確定性的。請參閱the documentation。
我只能找到一個[「非確定性哈希」的引用](http://thedailywtf.com/Articles/The-Nondeterministic-Hash.aspx)... – 2012-02-26 03:53:31