我想获得我所有表的所有表定义。 我想快速地做到这一点(它是我运行很多脚本的一部分)优化查询:DBMS_METADATA.GET_DDL(Oracle)
我正在使用oracle 11g,并且我有700个表。在普通JDBC代码它需要4分钟,并确实:
s = con.statement("select DBMS_METADATA.GET_DDL(object_type,object_name) from user_objects where object_type = 'TABLE');
s.execute();
rs = s.getResultSet();
while(rs.next()){
rs.getString(1);
}
SO我想要优化这个代码和达到约20秒。
通过创建14个线程,我已经达到了40-50秒,每个线程打开到数据库的连接并使用rownum上的mod读取部分信息。
但这还不够。
我想在这两个方向:
http://docs.oracle.com/cd/B10501_01/java.920/a96654/connpoca.htm#1063660 - 连接缓存。可以通过用连接缓存替换我的14个连接来帮助加快速度吗?
是否有可能让这个函数访问的表保存在KEEP缓冲区缓存区?
无论如何索引这里的一些信息?
任何其他建议将不胜感激。
谢谢
这听起来像你只会问,如果你不使用版本控制的问题。如果是这样的话,真正的答案是:使用版本控制。 –