【问题标题】:What is the command for Index optimization and update statistics for Oracle 10g and 11g?Oracle 10g 和 11g 的索引优化和更新统计命令是什么?
【发布时间】:2011-02-04 10:26:47
【问题描述】:

我正在将大量行从 csv 数据文件加载到表中。对于每 10000 条记录,我想更新表上的索引以进行优化(更新统计信息)。任何人告诉我我可以使用什么命令?此外,Oracle.is 中的 SQL Server“UPDATE STATISTICS”等价物是什么更新统计意味着索引优化或门限统计。我正在使用 Oracle 10g 和 11g。提前致谢。

【问题讨论】:

    标签: oracle10g oracle11g


    【解决方案1】:

    索引优化是一个棘手的问题。您可以合并索引以消除相邻的空块,您可以重建索引以完全丢弃并重新创建它。在我看来,在数据加载期间您可能希望做的事情是使索引无法使用,然后在完成后重新构建它们。

    ALTER INDEX my_table_idx01 DISABLE;
    
    -- run loader process
    
    ALTER INDEX my_table_idx01 REBUILD;
    

    您只想在完成后收集一次统计信息,这可以通过调用 DBMS_STATS 来完成,如下所示:

    EXEC DBMS_STATS.GATHER_TABLE_STATS ('my_schema', 'my_table');
    

    【讨论】:

      【解决方案2】:

      我建议采取不同的方法。我会删除索引,加载数据,然后重新创建索引。启用它后,Oracle 将在您刚刚加载的数据上建立一个良好的索引。这里完成了两件事,记录将加载更快,索引将使用适当平衡的树重建。 (注意:这里要小心,如果表是一个非常大的表,你可能需要声明一个临时表空间让它在其中工作。)

      drop index my_index;
      
      -- uber awesome loading process
      
      create index my_index on my_table(my_col1, my_col2);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-27
        • 1970-01-01
        • 1970-01-01
        • 2011-06-03
        相关资源
        最近更新 更多