Salesforce provides a library of Aggregate functions like COUNT() which efficiently process the data records in the database and return the count of records which meet the SOQL Query criteria. Using size() function instead of COUNT() involves more processing and is less efficient.


This rule raises an issue when the result of an SOQL query is only used to call ``++size()++`` on it.


== Noncompliant Code Example

[source,apex]
----
public class fooClass{
    public static fooMethod {  
        integer i = [SELECT Id FROM Case].size();  // Noncompliant
    }
}
----


== Compliant Solution

[source,apex]
----
public class fooClass{
    public static fooMethod {  
        integer i = [SELECT COUNT() FROM Case];
    }
}
----


== See

* https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_select_count.htm[COUNT() and COUNT(fieldName)]

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::message.adoc[]

endif::env-github,rspecator-view[]
