如何为Oracle ORA_Hash函数确定最佳的Max_bucket和Seed_value?

问题描述 投票:1回答:1

我是Oracle Hash函数的新手。我知道此功能用于加密目的。它实际上是将一个很大的段落转换为一个哈希值。

Ora_hash函数具有三个不同的参数:

  • 表情
  • Max_bucket
  • 种子值

对于Max_bucket和种子值,文档说我可以在0到429496725之间指定。Max_bucket默认为429496725,Seed_Value默认为0。

但是,有人知道这些值在0和429496725之间有什么区别吗?

我实际上打算使用它来比较两个不同表中的两列,每列中的每一行都具有接近3000个字符,其中一个表将具有接近一百万个记录,而另一个表将具有近十亿个记录。当然,两个表都可以与ID列连接在一起。

因此,我认为使用散列值比仅使用A = B将是更好的选择。

但是,谁能教我如何为Oracle ORA_Hash函数确定最佳的Max_bucket和Seed_value?

提前感谢!

sql oracle hash
1个回答
0
投票

ORA_HASH不用于生成唯一的哈希值。您可能想改用ORA_HASH之类的功能。

STANDARD_HASH用于需要快速将一堆值放入一组存储桶且哈希冲突非常有用的情况。 STANDARD_HASH对于哈希分区很有用;例如,您可能希望将表分成64个段以提高可管理性。

ORA_HASH可用于使用MD5或SHA等算法生成几乎唯一的哈希。这些哈希算法可用于加密目的,而ORA_HASH则不合适。例如:

STANDARD_HASH
© www.soinside.com 2019 - 2024. All rights reserved.