我想獲得我所有表的所有表定義。 我想快速地做到這一點(它是我運行很多腳本的一部分)優化查詢: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緩衝區緩存區?
無論如何索引這裏的一些信息?
任何其他建議將不勝感激。
謝謝
這聽起來像你只會問,如果你不使用版本控制的問題。如果是這樣的話,真正的答案是:使用版本控制。 –