Oracle 索引性能选项

标签 oracle performance indexing

我将为一个包含 50 亿条记录的表构建一个索引。将使用无日志记录和并行,但是我可以使用其他选项或技巧来加速索引构建的创建吗?

最佳答案

除了并行性和无日志记录之外,这些功能也许能够缩短索引创建时间:

  1. 压缩 - 压缩需要额外的 CPU 时间,但使用较少的 I/O。在某些情况下,此选项可能可以节省时间,例如如果您有高度可压缩的多列索引。
  2. NOSORT - 如果行恰好按顺序插入,例如您刚刚加载预排序的数据,则 NOSORT 选项可以节省大量时间。<
  3. 不重新收集统计信息 - 构建索引时会自动收集统计信息,因此之后不要手动收集索引统计信息。如果您要收集表统计信息,请使用参数 cascade => false 来防止重新收集索引统计信息。

我同意 Paul W 的观点,即获得正确的并行度可能是最重要的因素。如果您想优化此语句,并且不关心同时运行的其他任何内容的性能,crank the DOP as high as possible .

但我对使用分区来加速索引创建持怀疑态度。由于排序时间复杂度为 O(n*log(n)),因此对一个大集合进行排序通常比对多个较小集合进行排序更快。

关于Oracle 索引性能选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76393631/

相关文章:

c# - 将数据从 SQLite 数据库输入 ListView

ruby-on-rails - Rails 4, order in has_many :through. 它什么都不做

python - 在循环期间为数组赋值 - Python

sql - 从 Oracle 迁移到 MySQL 的工具

sql - 如何在Oracle SQL中获取最接近的日期

performance - 您如何衡量IE6中的网站加载时间?

matlab - 使用向量作为矩阵的索引

python - 在python中使用enumerate()访问列表中的 "Actions"对象

sql - 定期更新与 DBMS 并行执行

sql - 如何使用自连接来查找组内的相等值?