In einigen Salesforce Instanzen kommt es regelmäßig vor, dass gigantische Datenmengen durchsucht werden müssen. Meistens übernehmen Trigger diese Arbeit, und in den meisten Fällen brechen sie die Arbeit mit der folgenden Fehlermeldung ab: System.QueryException: Non-selective query against large object type (more than 100000 rows) Die Ursache liegt in der Limitierung vom Heap Speicher, der bei über 100.000 zu durchsuchenden Datensätzen überläuft. Um dieses Problem zu lösen, muss der WHERE- Block mindestens ein indiziertes Feld enthalten, z.B. customIndexedField__c = 'abc' Zusätzlich soll auf die Abfrage von NULL Werten verzichtet werden, z.B customIndexedField__c != null Auszug aus der Salesforce Hilfe: The following fields are indexed by default: primary keys (Id, Name and Owner fields), foreign keys (lookup or master-detail relationship fields), audit dates (such as LastModifiedDate), and custom fields marked as External ID or Unique....
Auszüge aus Projekten, Beispielcode, Tipps und Tricks aus dem Bereich Salesforce.