You need to sign in to do that
Don't have an account?

Apex performance issue - Only happening first time 6 AM to 9 AM in EST
i am thinking following SOQL query cauisng timeout firstime.
for(Question__c quest :[SELECT id,Question_Text__c,Picklist_Options__c ,
Type__c,Order__c,recordTypeId,recordType.name,
Display_Dependant_Value__c,Display_Dependant_Question__c
FROM Question__c
WHERE Template_Question__c = null
AND((recordType.name =: System.Label.Record_Type_Standard_Template)
OR (Id in: compQuesSet AND recordType.name =:System.Label.Record_Type_Custom_Template)
OR (recordType.name =: System.Label.Record_type_Form_Question
AND
Requisition__c =: requisition.Id))
Order by Order__c
]){
Currently there are 1 million question_c objects in system.
here debug log statistics..
Number of SOQL queries: 2 out of 100
Number of query rows: 5619 out of 50000
Number of SOSL queries: 0 out of 20
Number of DML statements: 3 out of 150
Number of DML rows: 47 out of 10000
Maximum CPU time: 9433 out of 10000 ******* CLOSE TO LIMIT
Maximum heap size: 0 out of 6000000
Number of callouts: 0 out of 100
Number of Email Invocations: 0 out of 10
Number of future calls: 0 out of 50
Number of queueable jobs added to the queue: 0 out of 50
Number of Mobile Apex push calls: 0 out of 10
I am not sure why it is only fisrt time happening to users? How to solve?
for(Question__c quest :[SELECT id,Question_Text__c,Picklist_Options__c ,
Type__c,Order__c,recordTypeId,recordType.name,
Display_Dependant_Value__c,Display_Dependant_Question__c
FROM Question__c
WHERE Template_Question__c = null
AND((recordType.name =: System.Label.Record_Type_Standard_Template)
OR (Id in: compQuesSet AND recordType.name =:System.Label.Record_Type_Custom_Template)
OR (recordType.name =: System.Label.Record_type_Form_Question
AND
Requisition__c =: requisition.Id))
Order by Order__c
]){
Currently there are 1 million question_c objects in system.
here debug log statistics..
Number of SOQL queries: 2 out of 100
Number of query rows: 5619 out of 50000
Number of SOSL queries: 0 out of 20
Number of DML statements: 3 out of 150
Number of DML rows: 47 out of 10000
Maximum CPU time: 9433 out of 10000 ******* CLOSE TO LIMIT
Maximum heap size: 0 out of 6000000
Number of callouts: 0 out of 100
Number of Email Invocations: 0 out of 10
Number of future calls: 0 out of 50
Number of queueable jobs added to the queue: 0 out of 50
Number of Mobile Apex push calls: 0 out of 10
I am not sure why it is only fisrt time happening to users? How to solve?
Hi,
I higly recomend to place query before for-loop, plus avoid using for-each, to improve your code performance.
So, instead of :
try following: