Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 全局分区索引是否比非分区索引更好(更快)?_Oracle_Indexing_Oracle10g_Performance_Partitioning - Fatal编程技术网

Oracle 全局分区索引是否比非分区索引更好(更快)?

Oracle 全局分区索引是否比非分区索引更好(更快)?,oracle,indexing,oracle10g,performance,partitioning,Oracle,Indexing,Oracle10g,Performance,Partitioning,我感兴趣的是找出对通常是查询目标的数字列进行分区是否有性能优势。目前,我有一个物化视图,其中包含约5000万条记录。当使用常规b树索引并按此数字列进行搜索时,我将在大约0.8秒内获得7的开销和查询结果(使用非素数缓存)。在为该列添加了一个全局哈希分区(64个分区)之后,我在大约0.2秒内得到了6个开销和查询结果(同样使用非素数缓存) 我的第一反应是分区索引提高了查询的性能。然而,我意识到这可能只是一个巧合,可能完全依赖于正在搜索的值,或者其他我不知道的值。因此,我的问题是:在一个大表的数字列中添

我感兴趣的是找出对通常是查询目标的数字列进行分区是否有性能优势。目前,我有一个物化视图,其中包含约5000万条记录。当使用常规b树索引并按此数字列进行搜索时,我将在大约0.8秒内获得7的开销和查询结果(使用非素数缓存)。在为该列添加了一个全局哈希分区(64个分区)之后,我在大约0.2秒内得到了6个开销和查询结果(同样使用非素数缓存)

我的第一反应是分区索引提高了查询的性能。然而,我意识到这可能只是一个巧合,可能完全依赖于正在搜索的值,或者其他我不知道的值。因此,我的问题是:在一个大表的数字列中添加一个全局哈希分区是否有性能优势,或者确定要扫描哪些索引分区的成本是否与只在一个非索引分区上执行全范围扫描的成本相权衡

我确信这与许多甲骨文问题一样,可以用“它取决于”来回答:)我感兴趣的是学习我应该考虑哪些因素来确定每种方法的益处。< /P>
谢谢

我很肯定你在研究中找到了这个参考-。不过,如果有人感兴趣,我会提供一个链接,这是一个关于分区的非常好的材料

直截了当地说,分区索引只是将索引分解为多个部分(在您的情况下为16个),并根据散列分区键分散数据。当您想要使用它时,Oracle会“计算”密钥的哈希值,并确定在哪个部分继续搜索

了解索引搜索是如何工作的,对于真正庞大的数据,我认为最好选择分区索引,以减少遍历的索引树(常规索引)。它实际上取决于表中的数据(常规索引树是如何组成的),并且散列和直接跳转到较低节点的速度比从起始节点开始的常规树遍历要快

最后,您必须对测试结果更有信心。如果一种技术比其他技术在精确数据上提供更好的结果,不要担心实现它