前言:
眼前同学们对“oracleimp恢复”大约比较注意,大家都需要剖析一些“oracleimp恢复”的相关资讯。那么小编同时在网络上搜集了一些有关“oracleimp恢复””的相关内容,希望咱们能喜欢,朋友们快快来了解一下吧!一、背景
最近客户一个线下开发环境,同一个SQL语句,在开发环境与生产环境执行,执行时间差别很大。在生产环境执行时间很短,而在开发环境则需要很长的时间。客户让帮忙查找原因。
二、过程2.1 分析SQL的执行计划
首先我们想到的,就是分析这个SQL的执行计划,看看这个SQL的执行计划在两个环境中是否一致。结果发现SQL执行计划在两个环境不一致。在生产环境中走的是索引,而在开发环境中,走的全表扫描。查看执行计划的方法如下:
explain plan for select * from 表名;--查看执行计划明细select * from table(dbms_xplan.display);
结果发现开发环境走的是全表扫描,进一步分析可知,是由于客户在导入数据的时候,索引没有成功导入所致。
2.2 如何单独导入索引
首先我们在生产环境获取这个schema的索引的定义。我们通过DBMS程序包来获取索引的定义
1、查看程序包DBMS_METADATA.GET_DDL表结构的定义
DBMS_METADATA.GET_DDL (object_type IN VARCHAR2,name IN VARCHAR2,schema IN VARCHAR2 DEFAULT NULL,version IN VARCHAR2 DEFAULT 'COMPATIBLE',model IN VARCHAR2 DEFAULT 'ORACLE',transform IN VARCHAR2 DEFAULT 'DDL')RETURN CLOB;
2、生产环境获取HR索引的定义
set heading offset echo offset flush offset pagesize 9000set linesize 80set long 100000spool rcindscr.sqlselect dbms_metadata.get_ddl('INDEX', index_name, owner) from dba_indexes where owner in ('HR');
执行完上述SQL之后,rcindscr.sql文件包含你需要的索引定义语句。
3、执行生成的创建索引语句文件--开发环境
SQL>@rcindscr.sql三、小结
欢迎大家留言讨论,喜欢的朋友,欢迎大家点赞关注。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #oracleimp恢复