Delen via


Grootte van rijenset

Welke rijsetgrootte moet worden gebruikt, is afhankelijk van de toepassing. Op schermen gebaseerde toepassingen volgen meestal een van de twee strategieën. De eerste is het instellen van de rijsetgrootte op het aantal rijen dat op het scherm wordt weergegeven; als de gebruiker de grootte van het scherm wijzigt, verandert de toepassing de grootte van de rijenset dienovereenkomstig. De tweede is het instellen van de rijsetgrootte op een groter getal, zoals 100, waardoor het aantal aanroepen naar de gegevensbron wordt verminderd. De toepassing schuift zo mogelijk lokaal in de rijenset en haalt alleen nieuwe rijen op wanneer deze buiten de rijenset schuift.

Andere toepassingen, zoals rapporten, hebben de neiging om de rijsetgrootte in te stellen op het grootste aantal rijen dat de toepassing redelijk kan verwerken. Met een grotere rijenset wordt de netwerkoverhead per rij soms verminderd. Precies hoe groot een rijenset kan zijn, is afhankelijk van de grootte van elke rij en de hoeveelheid geheugen die beschikbaar is.

De rijsetgrootte wordt ingesteld door een aanroep naar SQLSetStmtAttr met een kenmerkargument van SQL_ATTR_ROW_ARRAY_SIZE. De toepassing kan de grootte van de rijenset wijzigen, nieuwe rijensetbuffers binden (door SQLBindCol aan te roepen of een bindingsverschil op te geven), zelfs nadat rijen zijn opgehaald, of beide. De gevolgen van het wijzigen van de grootte van de rijenset zijn afhankelijk van de functie:

  • SQLFetch en SQLFetchScroll gebruiken de rijsetgrootte op het moment van de aanroep om te bepalen hoeveel rijen moeten worden opgehaald. SQLFetchScroll met een FetchOrientation van SQL_FETCH_NEXT incrementeert de cursor echter op basis van de rijenset van de vorige ophaalfunctie en haalt vervolgens een rijset op op basis van de huidige grootte van de rijenset.

  • SQLSetPos maakt gebruik van de rijsetgrootte die van kracht is vanaf de voorgaande aanroep naar SQLFetch of SQLFetchScroll, omdat SQLSetPos werkt op een rijset die al is ingesteld. SQLSetPos haalt ook de nieuwe rijsetgrootte op als SQLBulkOperations is aangeroepen nadat de grootte van de rijenset is gewijzigd.

  • SQLBulkOperations gebruikt de rijsetgrootte die van kracht is op het moment van de aanroep, omdat er bewerkingen worden uitgevoerd op een tabel onafhankelijk van een opgehaalde rijenset.