---
schema_version: "1"
id: 3a7144221608d122154493a269e92542268a97933814b645ae3bc0bfe69425e3
title: Write Efficient Apex and SOQL
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/platform/salesforce-pages-developers-guide/guides/pages/best-practices/best-practices-performance/pages-best-practices-perf-apex-soql-.md
canonical_url: https://developer.salesforce.com/docs/platform/salesforce-pages-developers-guide/guide/pages-best-practices-perf-apex-soql-.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 940291040d19b0ba143ee09d3b0b4c792e047248b8736608e588a5495b7a7a4f
products:
  - Visualforce Developer Guide
  - Platform Developer Content
---

# Write Efficient Apex and SOQL

To improve the overall performance of a Visualforce page, write efficient Apex and SOQL.

When you write Apex or SOQL for use within a Visualforce page:

-   Perform calculations in SOQL instead of in Apex whenever possible.
-   Never perform Data Manipulation Language (DML) operations inside a loop.
-   Filter in SOQL first, then in Apex, and finally in Visualforce.

**See Also**  


-   [*Apex Developer Guide*: Working with Data in Apex](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_data_intro.htm)
-   [*Apex Developer Guide*: Working with Very Large SOQL Queries](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_SOQL_VLSQ.htm)
-   [*SOQL and SOSL Reference*](https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_sosl_intro.htm)

