Dengan asumsi Anda telah memeriksa hal-hal jaringan dasar seperti antarmuka, firewall, proxy, serta elemen perangkat keras server DB.
Opsi 1 :
Alih-alih :
Class.forName("oracle.jdbc.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@//xxx.xxx.xxx.xxx:1521/orcl", "user", "pass");
coba gunakan :
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");
Detail selengkapnya di sini
Opsi 2 :Ukuran Ambil
Seperti yang ditunjukkan dengan kuat oleh Stephen, ukuran pengambilan tampaknya terlalu besar.
Dan, untuk ukuran pengambilan 500.000, berapa -Xms dan -Xmx Anda. Juga, di profiler, berapa ukuran tumpukan tertinggi?
Opsi 3 :DB
-
Periksa indeks dan rencana kueri untuk
src_schema.big_table_view
-
Apakah ini alat atau sistem aplikasi. Jika hanya alat, Anda dapat menambahkan derajat paralel, petunjuk indeks, partisi dll berdasarkan kemampuan sistem DB
Opsi 4 :Utas
Ucapkan
Anda dapat memulai
Yang mengatakan, semua ini tidak boleh menjadi kode yang telah ditentukan sebelumnya seperti sekarang.
Opsi 5 :
Alih-alih
Anda dapat menggunakan
Ini menghindari pembuatan 500000
Opsi 6:
Sementara itu, Anda juga dapat memeriksa masalah sistem DB dengan DBA dan mengajukan SR dengan dukungan Oracle
.n
n
Utas penulis, masing-masing dikonfigurasi untuk memproses ember tertentu mis. thread1 memproses 0 hingga 10000, menulis ke n
file yang berbeda, dan setelah semua iklan selesai, posting gabung, gabungkan file bersama-sama sebaiknya menggunakan perintah OS tingkat rendah.'n'
dan ember harus dihitung pada saat runtime. Dan membuat jumlah utas lebih banyak dari yang didukung sistem Anda hanya akan mengacaukan.select * from src_schema.big_table_view
SELECT column1||CHR(9)||column2||CHR(9).....||columnN FROM src_schema.big_table_view
StringBuilders
dan Strings
. (Dengan asumsi tidak ada pemformatan kompleks lain yang terlibat). CHR(9) adalah karakter tab.