关于传输优化器统计信息
在数据库之间传输优化器统计信息时,必须使用DBMS_STATS
复制统计信息到暂存表和从暂存表复制统计信息,并使用工具使目标数据库可以访问表内容。
1. 传输优化器统计信息的目的
导入和导出对于使用生产统计信息测试应用程序特别有用。
开发人员通常希望在部署应用程序之前在现实环境中调整查询计划。一个典型的场景是DBMS_STATS.EXPORT_SCHEMA_STATS
将模式统计信息从生产数据库导出到测试数据库。
2. 传输优化器统计信息的工作方式
典型的传输操作使用DBMS_STATS
和文件传输实用程序的组合。
下图说明了使用Oracle Data Pump和的过程ftp
。
图17-1传输优化器统计信息

基本步骤如下:
- 在生产数据库中,使用将统计信息从数据字典复制到登台表
DBMS_STATS.EXPORT_SCHEMA_STATS
。 .dmp
使用Oracle数据泵将统计信息从登台表导出到文件中。.dmp
使用诸如的传输工具将文件从生产主机传输到测试主机ftp
。- 在测试数据库中,
.dmp
使用Oracle Data Pump 将统计信息从文件导入到登台表。 - 使用将统计信息从登台表复制到数据字典
DBMS_STATS.IMPORT_SCHEMA_STATS
。
3. 用于导入和导出优化器统计信息的用户界面
DBMS_STATS
提供用于导入和导出模式和表统计信息的接口。
使用以下子程序DBMS_STATS
可以导出架构和不同类型的表。
表17-1导出方案和表统计信息的子程序
子程序 | 描述 |
---|---|
| 此过程导出数据库中所有对象的统计信息,并将它们存储在由标识的用户统计信息表中 |
| 此过程导出所有数据字典架构( |
| 此过程导出固定表的统计信息并将其存储在由标识的用户统计表中 |
| 此过程导出由标识的模式中所有对象的统计信息, 默认情况下,该 |
| 此过程导出指定表的统计信息(包括关联的索引统计信息),并将其存储在由标识的用户统计信息表中 默认情况下,该 |
使用以下子程序DBMS_STATS
可以导入架构和不同类型的表。
表17-2导入优化器统计信息的子程序
子程序 | 描述 |
---|---|
| 此过程从用户统计信息表中导入数据库中所有对象的统计信息,并将它们存储在数据字典中。 |
| 此过程从用户统计信息表中导入所有数据字典模式( |
| 此过程从用户统计信息表中导入固定表的统计信息,并将其存储在数据字典中。 |
| 此过程 默认情况下,该 |
| 此过程从由标识的用户统计表中导入指定表的统计信息, 默认情况下,该 |
也可以看看:
Oracle Database PL / SQL软件包和类型参考以了解DBMS_STATS