我拥有(相对) 11G数据仓库的基本访问权限。我做的一些处理包括通过一些计算将大表连接到大表,或者向基本数据集添加额外的列。我通常将数据放入我自己的模式中进行计算,但是仓库处理能力有限,一些查询需要很长时间,因为大多数工作涉及影响或将数据连接到表的所有行( explain计划上的大量全表扫描!)。
我的问题是,如果我有一个引用编号作为两个表的主键,如果我也使用这个引用编号的散列版本,我会看到任何性能提高吗?
如果没有,有没有其他方法可以在这些情况下提高性能?
发布于 2013-09-21 22:34:13
如果您是等联接,那么您可能无论如何都会得到一个散列联接,并且将联接键转换为散列值在其中是隐含的。
在大型表之间获得更好的等联接性能的最好方法是在联接键上对它们进行散列分区。
分区连接可以避免哈希表超出特定大小而溢出到磁盘,从而提高性能,因此您可以选择分区的数量,以尽量将哈希连接上的内存分配保持在较低水平。
https://stackoverflow.com/questions/17033872
复制相似问题