Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Mengambil baris dengan kecepatan sangat tinggi

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 n

Anda dapat memulai 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.

Yang mengatakan, semua ini tidak boleh menjadi kode yang telah ditentukan sebelumnya seperti sekarang. 'n' dan ember harus dihitung pada saat runtime. Dan membuat jumlah utas lebih banyak dari yang didukung sistem Anda hanya akan mengacaukan.

Opsi 5 :

Alih-alih

select * from src_schema.big_table_view

Anda dapat menggunakan

SELECT column1||CHR(9)||column2||CHR(9).....||columnN FROM src_schema.big_table_view

Ini menghindari pembuatan 500000 StringBuilders dan Strings . (Dengan asumsi tidak ada pemformatan kompleks lain yang terlibat). CHR(9) adalah karakter tab.

Opsi 6:

Sementara itu, Anda juga dapat memeriksa masalah sistem DB dengan DBA dan mengajukan SR dengan dukungan Oracle .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Prosedur PL/SQL - terlalu banyak nilai

  2. Kolom Pengisi Otomatis 12c dengan Nilai Urutan

  3. Cara efisien untuk memperbarui semua baris dalam tabel

  4. Sql query untuk memeriksa apakah substring kolom 1 berisi nilai kolom lain

  5. Yii2 menyimpan file ke Oracle BLOB