• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

用DBMS_STATS导入导出Oracle统计信息

mysql 搞代码 4年前 (2022-01-09) 18次浏览 已收录 0个评论

今天客户反映查询慢,由于是生产环境,不能随便测试,因此参考下面的blog,把统计信息导出到测试服务器进行sql语句调优。1.创建存

今天客户反映查询慢,由于是生产环境,不能随便测试,因此参考下面的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’,本文来源gao.dai.ma.com搞@代*码#网STATID=>’foo_20120427′);

ownname可以指定新的

6.删除统计信息表

exec DBMS_STATS.DROP_STAT_TABLE(‘scott’,’stattab’);


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用DBMS_STATS导入导出Oracle统计信息
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址