今天客户反映查询慢,由于是生产环境,不能随便测试,因此参考下面的blog,把统计信息导出到测试服务器进行sql语句调优。
1.创建存放统计信息表
EXECUTE DBMS_STATS.CREATE_STAT_TABLE ('SCOTT', 'STATTAB','SYSAUX');
在 SYSAUX 表空间上创建 STATTAB 用以存储统计信息, 所有者是 SCOTT 用户。
2.导出schema的统计信息
EXEC dbms_stats.EXPORT_SCHEMA_STATS
(ownname=>'scott',stattab=>'stattab',STATID=>'foo_20120427');
这里建议手动设定一下 STATID. STATID 命名规则建议用 对象名(SCHEMA名)+ 时间(注意粒度).
导出table表的统计信息
EXEC dbms_stats.export_table_stats
(OWNNAME=>'scott',TABNAME=>'foo',STATTAB=>'stattab',STATID=>'foo_20120427');
3.用expdp导出统计信息表
expdp system/Oracle DIRECTORY=expdimp DUMPFILE=scottexp20110426.dmp SCHEMAS='scott'logfile=scottexp20120427.log EXCLUDE=TABLE:\"IN \(\''stattab'\'\)\"
4.把expdp导出的文件scottexp20110426.dmp 上传到测试服务器,方法很多比如scp
5.导入schema的统计信息
恢复该表的统计信息(之前要导出当前的统计信息):
exec DBMS_STATS.IMPORT_SCHEMA_STATS(ownname=>'scott',stattab=>'stattab',STATID=>'foo_20120427');
导入table表的统计信息
EXEC dbms_stats.import_table_stats
(OWNNAME=>'scott',TABNAME=>'foo',STATTAB=>'stattab',STATID=>'foo_20120427');
ownname可以指定新的
6.删除统计信息表
exec DBMS_STATS.DROP_STAT_TABLE('scott','stattab');

- 大小: 50.8 KB
分享到:
相关推荐
- `dbms_stats.export_table_stats`: 导出表的统计信息。 - `dbms_stats.set_table_stats`: 设置表的统计信息。 - `dbms_stats.auto_sample_size`: 自动调整采样大小。 - **权限需求**:为了使用`DBMS_STATS`包...
在目标系统上,使用`impdp`导入数据,再调用`DBMS_STATS.IMPORT_SCHEMA_STATS`导入统计信息。 2. **Database级别统计信息的导出导入**:涉及整个数据库的统计信息。与Schema级别的操作类似,使用`DBMS_STATS.EXPORT...
- 使用`DBMS_STATS`定期收集统计信息,保持统计信息最新。 - 使用`DBMS_SPACE`管理空间,避免表空间填满。 - **2.1.20 如何分析发生在过去的数据库性能问题** - 本书介绍了如何利用历史数据来诊断已经发生的性能...
使用`DBMS_STATS.EXPORT_SCHEMA_STATS`将'CITICTEST'模式下的统计信息导出到'STATISTICS'实体表中。这一步骤将生产环境的统计信息保存下来,方便后续导入到测试环境。 4. **将实体表导出为DMP文件**: 使用`exp`...
8.9.3 使用 DBMS_STATS 收集性能统计 数据 8.10 优化环境 8.10.1 怎样优化 Net8/SQL*Net 8.10.2 监控并优化系统资源 8.11 回顾 第9章 Oracle8i 的新特性 9.1 新的性能优化特性 9.1.1 设计的稳定性和存储概要...
### Oracle 数据导入导出详解 #### 一、Oracle EXPDP 和 IMPDP 概述 **Oracle EXPDP**(Export Data Pump)与 **IMPDP**(Import Data Pump)是Oracle提供的两种用于数据导入导出的强大工具。这两种工具可以高效地...
当使用`exp`或`expdp`命令导出Oracle数据库中的表或整个模式时,如果表的统计信息(例如行数)超过了一定阈值,就会触发ORA-01455错误。这是因为默认情况下,导出工具会尝试将这些统计信息存储为32位整数。 **错误...
- **导出/导入统计信息**: 统计信息可以通过`export_table_stats`和`import_table_stats`函数导出到统计信息表中,也可以重新导入这些信息以恢复之前的统计设置。 - **删除统计信息**: `delete_table_stats`函数可以...
导入后,统计信息会被锁住,无法更新统计信息,可以使用包 `dbms_stats.unlock_schema_stats` 来解锁。 通过以上步骤,可以有效地解决PL/SQL Developer中出现的乱码问题以及在导入导出过程中遇到的相关问题。
`DBMS_STATS`提供更高级的功能,如并行执行、按分区收集统计信息、导出统计信息等。 总的来说,Oracle性能优化涉及多方面的技巧和工具,包括但不限于查询优化、跟踪分析、统计信息收集等。通过对这些工具和方法的...
DBMS_STATS是用于收集统计信息的PL/SQL包,对于优化SQL执行计划至关重要。 #### 8. GoldenGate GoldenGate是Oracle的数据复制解决方案,支持异构数据库之间的实时数据复制。 #### 9. Streams Streams是Oracle提供...
8. **数据库维护**:定期检查数据库健康状况,执行DBMS_STATS收集统计信息,进行数据库的重新组织和重组,以保持数据库高效运行。 9. **故障排查**:通过日志文件、告警日志和跟踪文件定位并解决数据库问题。了解...
- `DBMS_STATS.GATHER_SCHEMA_STATS` 收集表或模式的统计信息,优化查询计划: ```sql EXEC DBMS_STATS.GATHER_SCHEMA_STATS('schema_name', cascade => TRUE); ``` - `ALTER SYSTEM FLUSH SHARED_POOL` 清空...
- **DBMS_STATS**:这是Oracle提供的一种更强大的表统计信息收集包。可以通过调用其中的不同函数来收集整个数据库、某个模式或者特定表的统计信息,以满足不同的需求。例如: - `gather_database_stats`:收集整个...
Oracle提供了多种工具和方法来收集和更新统计信息,包括DBMS_STATS包,可以手动或自动执行统计信息的收集。保持统计信息的时效性可以确保优化器做出的决策是最接近实际情况的。 **发现链接行** 在数据库中,如果一...
Oracle的DBMS_STATS包可以自动或手动收集表和索引的统计信息,用于优化器选择最佳执行路径。 总结来说,“简易的Oracle作业”涵盖了Oracle数据库的日常管理操作,包括数据的导入导出、查询优化、表空间管理、备份...