Forudsat at du allerede har tjekket de grundlæggende netværksting som grænseflader, firewalls, proxyer, samt DB-serverens hardwareelementer.
Mulighed 1:
I stedet for :
Class.forName("oracle.jdbc.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@//xxx.xxx.xxx.xxx:1521/orcl", "user", "pass");
prøv at bruge :
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");
Flere detaljer her
Mulighed 2:Hentstørrelse
Som stærkt påpeget af Stephen, virker apporteringsstørrelsen for stor.
Og for en hentestørrelse på 500.000, hvad er din -Xms og -Xmx. Hvad er den højeste bunkestørrelse i profiler?
Mulighed 3:DB
-
Tjek indekser og forespørgselsplan for
src_schema.big_table_view
-
Er dette et værktøj eller et applikationssystem. Hvis det kun er et værktøj, kan du tilføje parallelle grader, indekstip, partitionering osv. baseret på DB-systemkapaciteter
Mulighed 4:Tråde
Sig
Du kan starte
Når det er sagt, bør alt dette aldrig være foruddefineret kode som det er nu.
Mulighed 5:
I stedet for
Du kunne bruge
Dette undgår at oprette 500000
Mulighed 6:
I mellemtiden kan du også tjekke med din DBA for eventuelle problemer med DB-system og rejse en SR med Oracle-support
.n
n
Tråde af forfattere, hver konfigureret til at behandle en bestemt bøtte, f.eks. tråd1 behandler 0 til 10000, skriver til n
forskellige filer, og når alle de ads er færdige, post join, flet filerne sammen, helst ved at bruge en OS-kommando på lavt niveau.'n'
og spandene skal beregnes ved kørsel. Og oprettelse af flere tråde, end hvad dit system understøtter, skruer kun sammen.select * from src_schema.big_table_view
SELECT column1||CHR(9)||column2||CHR(9).....||columnN FROM src_schema.big_table_view
StringBuilders
og Strings
. (Forudsat ingen anden kompleks formatering involveret). CHR(9) er tabulatortegn.