sql >> Databasteknik >  >> RDS >> Oracle

Ställa in ett värde för LIMIT när du använder massinsamling

Använd en implicit markör i en markör FÖR LOOP. Det gör koden enklare och standardvärdet 100 är nästan alltid tillräckligt bra.

Jag har sett många människor slösa bort mycket tid på att oroa sig för detta. Om du tänker på varför bulk collect förbättrar prestandan du kommer att förstå varför stora antal inte hjälper.

Bulk collect förbättrar prestandan genom att minska kontextväxlingarna mellan SQL och PL/SQL. Föreställ dig det högst osannolika värsta scenariot, där kontextbyte tar upp all körtid. En gräns på 2 eliminerar 50 % av kontextväxlingarna; 10 eliminerar 90%; 100 eliminerar 99 %, etc. Rita det och du inser att det inte är värt att hitta den optimala gränsstorleken:

Använd standard. Lägg din tid på att oroa dig för viktigare saker.




  1. Användardefinierad rutin med DBMS_STATS, del II

  2. Fatalt fel:Anrop till odefinierad funktion sqlsrv_connect()

  3. Lista över SQL Server Comparison Operators

  4. Hur man väljer den första raden i varje GRUPP FÖR Grupp