我想這個查詢:頂點查詢優化
List<Account> onlyRRCustomer = [SELECT
ac.rr_First_Name__c,
ac.rr_Last_Name__c,
ac.rr_National_Insurance_Number__c,
ac.id,
ac.rr_Date_of_Birth__c
FROM
Account ac
WHERE
ac.rr_National_Insurance_Number__c IN :uniqueNiInputSet
AND RecordTypeId = :recordTypeId];
它給了我一個錯誤:
SELECT ac.rr_First_Name__c, ac.rr_Last_Name__c, ac.rr_National_Insurance_Number__c, ac.id, ac.rr_Date_of_Birth__c FROM Account ac WHERE (ac.rr_National_Insurance_Number__c = :tmpVar1 AND RecordTypeId = :tmpVar2) 10:12:05.0 (11489528)|EXCEPTION_THROWN|[49]|System.QueryException: Non-selective query against large object type (more than 200000 rows). Consider an indexed filter or contact salesforce.com about custom indexing.
我明白uniqueNiInputSet.size()〜50,所以,這不是一個問題,但對於該記錄類型,它可能包含更多的記錄。
那麼,如果我改變了職位將工作?首先是記錄類型,然後是where子句中的NIset。是否有順序如何在SF中選擇where子句。那麼,它只會查找50個成員,然後在50個以內,它將查找特定的記錄類型?