Oracle10g Oracle 10g和11g的索引优化和更新统计信息的命令是什么?

Oracle10g Oracle 10g和11g的索引优化和更新统计信息的命令是什么?,oracle10g,oracle11g,Oracle10g,Oracle11g,我正在将大量行从csv数据文件加载到表中。对于每10000条记录,我希望更新表上的索引以进行优化(更新统计信息)。有人告诉我我能用什么命令吗?另外,SQL Server“更新统计信息”在Oracle中的等效值是什么。更新统计信息意味着索引优化或网关统计信息。我正在使用Oracle 10g和11g。提前感谢。索引优化是一个棘手的问题。可以合并索引以消除相邻的空块,也可以重建索引以完全废弃并重新创建它。在我看来,在数据加载期间,您可能希望做的是使索引不可用,然后在完成后重建它们 ALTER INDE

我正在将大量行从csv数据文件加载到表中。对于每10000条记录,我希望更新表上的索引以进行优化(更新统计信息)。有人告诉我我能用什么命令吗?另外,SQL Server“更新统计信息”在Oracle中的等效值是什么。更新统计信息意味着索引优化或网关统计信息。我正在使用Oracle 10g和11g。提前感谢。

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

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');

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

drop index my_index;

-- uber awesome loading process

create index my_index on my_table(my_col1, my_col2);