Managing limits

Normally, the total number of records retrieved within a single controller execution context is 50,000 records (in total across all SOQL queries executed). In addition, Visualforce components such as apex:dataTable and apex:repeat can only iterate over 1000 items before a runtime exception is thrown.

At the time of writing this, the readOnly attribute (specified on the apex:page component) changes this to 1 million records and 10,000 iterations within Visualforce components on the page (refer to the Salesforce documentation for the latest update). As the name suggests, no updates to the database can occur, which basically means no DML at all. Note that queries are still governed by timeouts.

Tip

If you require a more granular elevation of the SOQL query rows governor, you can apply the @ReadOnly Apex attribute to a JavaScript Remoting method in your controller, and not at the page level as described previously. Again, this method will not be able to use DML operations to update the database, but you will gain access to querying a higher number of query rows. Note that the iterator limit increase is not applicable in this context, as JavaScript Remoting and Visualforce iterator components cannot be used together.

Note

At the time of writing this, Lightning Components do not provide access to this functionality. Apex Controller methods exposed via the @AuraEnabled method are subject to the standard Apex query limits.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.141.4.179