Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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_Partitioning - Fatal编程技术网

在同一个硬盘上对Oracle进行分区有什么好处吗?

在同一个硬盘上对Oracle进行分区有什么好处吗?,oracle,partitioning,Oracle,Partitioning,我正在寻找解决方案,以提高并发插入的插入时间。如果Oracle分区不为每个分区提供专用硬件,我会从中受益吗 当前插入过程中的瓶颈是什么?我从你问题中的“高并发性”猜测,你所说的是一个OLTP应用程序,其中有大量的单行插入,而不是数据仓库中常见的少量多行插入 在OLTP场景中,分区不太可能减少执行单行插入所需的时间。假设您已经消除了表上的触发器等明显的时间浪费,那么大部分插入开销可能是索引维护,其中有一点I/O用于对重做日志的写入。分区可能不会减少其中任何一项,因为在OLTP环境中,您通常无法加载

我正在寻找解决方案,以提高并发插入的插入时间。如果Oracle分区不为每个分区提供专用硬件,我会从中受益吗

当前插入过程中的瓶颈是什么?我从你问题中的“高并发性”猜测,你所说的是一个OLTP应用程序,其中有大量的单行插入,而不是数据仓库中常见的少量多行插入


在OLTP场景中,分区不太可能减少执行单行插入所需的时间。假设您已经消除了表上的触发器等明显的时间浪费,那么大部分插入开销可能是索引维护,其中有一点I/O用于对重做日志的写入。分区可能不会减少其中任何一项,因为在OLTP环境中,您通常无法加载到临时表中并进行分区交换,从而降低索引维护成本

嗯,就像其他事情一样,这要看情况而定

分区可以减少争用并消除热块。例如,想象一下,如果您愿意,一个事务系统。如果通过散列在某个代理客户ID值上进行分区,则每个索引都会显著更小,并且可能更少受到争用和索引根拆分的影响

如果您有并发问题,另一个解决方案是对“单腿”索引使用反向键索引,其中索引序列填充的列强制继续块拆分。但是,使用反向键索引会阻止范围扫描使用索引,因此请小心

这实际上取决于Oracle等待事件是关键事务路径的一部分。你所等待的通常会决定什么样的解决方案是合适的


所以这可能会有帮助。这也可能使情况变得更糟。如果没有更多关于什么增加了等待时间的信息(如果有的话),互联网无法帮助解决问题。

我完全同意,首先要确定瓶颈是什么。但是假设情况是并发插入在表或索引中竞争热块,分区难道不能成为处理新行定向到不同分区的可能方法吗?@Dave-如果问题是热块上的争用,假设将不同的会话插入到具有不同本地索引的不同分区中,对表进行分区将是有益的。对索引进行哈希分区也可能有所帮助。另一方面,反向键索引可能也足以解决争用问题。我想通过在1-100范围内均匀分布的值来实现列表分区。在这种情况下,我希望通过消除段级资源争用来降低并发性。表上没有索引和触发器。谢谢你的回答。嗨,亚当。所以从理论上讲,这可能会有所帮助。那很好。不幸的是,我对Oracle内部结构了解不够,无法分析insert并检查瓶颈是什么。我只知道插入时间度量。如果你能指出一些有用的东西,我将不胜感激。非常感谢。嗯,使用StatsPack在宏调优级别上应该会有所帮助,这在《Oracle性能和调优指南》中有介绍。