1

我正在编写一些新的 SQL 查询,并想检查 Oracle 查询优化器在生产中提出的查询计划。

我的开发数据库没有生产数据库的数据量。

如何从生产数据库导出数据库统计信息并将其重新导入开发数据库?我无权访问生产数据库,因此我无法在不通过第三方托管组织的情况下简单地生成生产解释计划。这很痛苦。所以我想要一个本地数据库,它在某种程度上代表生产,我可以在上面尝试不同的东西。

此外,这适用于遗留应用程序。我想通过添加适当的索引来“改进”架构。约束等

在推出测试和生产之前,我需要先在我的开发数据库中执行此操作。

如果我在开发中添加索引并重新生成统计信息,那么统计信息将围绕开发数据量生成,这使得很难评估我的更改对生产的影响。

有没有人有关于如何处理这个问题的任何提示?或者它只是我们在生产中发现意外行为后修复它的一个案例?我确实有一个生产量的暂存数据库,但是我必须再次通过第三方来运行查询,这很痛苦。所以我正在寻找尽可能多地削减中间人的方法。

所有这些都使用 Oracle 9i。

谢谢。

4

1 回答 1

3

请参阅 DBMS_STATS.EXPORT_SCHEMA_STATS 和 DBMS_STATS.IMPORT_SCHEMA_STATS 包的文档。如果您无权访问,则必须让具有必要权限的人为您在生产数据库中进行导出。如果您的开发硬件与生产硬件明显不同,您还应该使用 EXPORT/IMPORT_SYSTEM_STATS 过程导出/导入系统统计信息。

请记住在执行此操作后关闭开发数据库中重新计算统计信息的所有作业。

于 2010-03-23T12:21:51.883 回答