sql >> Databáze >  >> RDS >> Oracle

Načítání řádků extrémně vysokou rychlostí

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 .



  1. PHP XML:Neplatný offset, ale je v poli?

  2. SQL Server:Zjistěte výchozí hodnotu sloupce pomocí dotazu

  3. Auto Increment varchar v MySQL

  4. 3 otázky týkající se monitorování SQL serveru, které je třeba položit při přebírání pozice DBA