Za předpokladu, že jste již zkontrolovali základní síťové prvky, jako jsou rozhraní, firewally, proxy a také hardwarové prvky DB serveru.
Možnost 1:
Místo :
Class.forName("oracle.jdbc.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@//xxx.xxx.xxx.xxx:1521/orcl", "user", "pass");
zkuste použít :
OracleDataSource ods = new OracleDataSource();
java.util.Properties prop = new java.util.Properties();
prop.setProperty("MinLimit", "2");
prop.setProperty("MaxLimit", "10");
String url = "jdbc:oracle:oci8:@//xxx.xxx.xxx.xxx:1521/orcl";
ods.setURL(url);
ods.setUser("USER");
ods.setPassword("PWD");
ods.setConnectionCachingEnabled(true);
ods.setConnectionCacheProperties (prop);
ods.setConnectionCacheName("ImplicitCache01");
Další podrobnosti zde
Možnost 2:Fetchsize
Jak důrazně poukázal Stephen, velikost načítání se zdá příliš velká.
A pro velikost načtení 500 000, jaké jsou vaše -Xms a -Xmx. Jaká je také nejvyšší velikost haldy v nástroji Profiler?
Možnost 3:DB
-
Zkontrolujte indexy a plán dotazů pro
src_schema.big_table_view
-
Jedná se o nástroj nebo aplikační systém. Pokud je to jen nástroj, můžete přidat paralelní stupně, indexové tipy, rozdělení atd. na základě schopností systémů DB
Možnost 4:Vlákna
Řekněte n
Můžete začít n
Vlákna zapisovače, z nichž každé je konfigurováno pro zpracování určitého segmentu, např. vlákno1 zpracovává 0 až 10000 a zapisuje do n
různé soubory, a jakmile jsou všechny reklamy hotové, po připojení, sloučení souborů dohromady nejlépe pomocí příkazu operačního systému nízké úrovně.
To znamená, že toto vše by nikdy nemělo být předdefinovaným kódem jako nyní. 'n'
a segmenty by se měly vypočítat za běhu. A vytváření většího počtu vláken, než kolik váš systém podporuje, se jen zvrtne.
Možnost 5:
Místo
select * from src_schema.big_table_view
Můžete použít
SELECT column1||CHR(9)||column2||CHR(9).....||columnN FROM src_schema.big_table_view
Vyhnete se tak vytvoření 500 000 StringBuilders
a Strings
. (Za předpokladu, že se nejedná o žádné další složité formátování). CHR(9) je znak tabulátoru.
Možnost 6:
Mezitím můžete také zkontrolovat u svého správce dat nějaké problémy se systémem DB a vznést SR s podporou Oracle .