Oracle Database JDBC-stuurprogramma, versies ouder dan 12:
Het stuurprogramma wijst de maximale grootte toe aan elke kolom maal het aantal rijen in de fetchSize
voordat u de query uitvoert.
Bijvoorbeeld voor een VARCHAR(4000)
kolom zal het 8k bytes toewijzen keer de fetchSize
.
versies 12 (en later):
Het wijst ongeveer 15 bytes per kolom per rij toe in de fetchSize
voordat u de query uitvoert. Na uitvoering wijst het stuurprogramma in versie 12 slechts zoveel toe als nodig is om de daadwerkelijke rijgegevens op te slaan.
Als gevolg hiervan gebruiken stuurprogramma's van versie 12 doorgaans aanzienlijk minder geheugen dan de stuurprogramma's van de eerdere versies.
Uw voorbeeld :
In uw voorbeeld een VARCHAR(20)
kan zo groot zijn als 40 bytes, een NUMBER
kan zo groot zijn als 22 bytes en een VARCHAR(100)
zo groot als 100 bytes. Met de fetchSize
ingesteld op 100 zouden de oudere stuurprogramma's (40 + 22 + 100) * 100 = 16k
toewijzen . Het stuurprogramma van versie 12 zou 3 * 15 * 100 = 4.5k
toewijzen . Er is extra overhead in beide stuurprogramma's die ik negeer.