function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion



I keep get "QUERY_TIMEOUT: Your query request was running for too long." when do query. Can anybody help....

It is what it says: your query is running too long.  You're probably selecting too much data, or you are using a query with a bunch of ORs or complex conditions across a big data set.  Try to whittle it down to exactly the data you need.

My query is "select count() from asset", total records in asset is around 210,000 records.

Well, I can see where that might cause a problem -- it is probably iterating over all your assets.  Is that what you really need then, a count of all your assets, or can you whittle it down some?
Hi werewolf,

Actually what is my program do is delete all records from Asset and reload with new data everyday.
So, I do query "select id from asset" ---> this often keep error, but sometimes it works.
Then I use list of ID for deletion.
This program has work for 6+ mths with no issue, but last few weeks this errors occured more often.

because the of the delete + reload approach, the asset table is now dominated by deleted records, this will cause the kind of perf problems you are seeing. You should update your process to use the emptyRecycleBin call after calling delete, so that the deleted data can be quickly cleaned up, see
Hi Simon,

Seems like my issue is solved. emptyrecyclebin is available from version 10 and above, while my code is written using api version 9.
Thanks buddy.

Hi Simon,

I get error "invalid record id; no recycle bin entry found" when
call emptyRecycleBin, while the ID is available when I query
"Select Id from asset where isdeleted = true".

Why is this happen?


Hi Simon,

Just saw in APEX_API.PDF.
"After records are deleted from the recycle bin using this call, they can be queried using queryAll for some time.Typically this time is 24 hours, but may be shorter or longer."
Sorry for this. So, let me check again tomorrow morning.


Hi Simon/werwolf.

even i am getting the QUERY_TIMEOUT exception when i tried to fetch the contact records from SFDC. There is not much deleted records available in recyclebin.

Select c.AccountId, c.Account.Id, c.Account.Name, 
c.Account.acc_Id__c, c.Account.tfcmCustomerMasterId__c, 
c.Account.tocCMAddressId__c, c.DoNotCall, c.Email, 
c.FirstName, c.HasOptedOutOfEmail, c.Id, c.LastName, 
c.MailingCity, c.MailingCountry, c.MailingPostalCode, 
c.MailingState, c.MailingStreet, c.MobilePhone, c.Name, 
c.OwnerId, c.Owner.Email, c.Owner.EmployeeNumber, 
c.Owner.FirstName, c.Owner.Id, c.Owner.LastName, 
c.Owner.Name, c.Phone, c.tfContactCategory__c, c.Title, 
c.tocContactStatus__c, c.tocContactId__c,c.Salutation, 
c.tocAssetFocus__c, c.tocDirectMarketing__c, 
c.tocEndUserActivity__c, c.tocFloor__c, 
c.tocFunction__c, c.Department, c.tocLanguage__c, 
c.tocLegalConsent__c, c.tocLocalCity__c, c.tocLocalCountry__c, 
c.tocLocalFirstName__c, c.tocLocalLastName__c, 
c.tocLocalPostal__c, c.tocLocalSalutation__c, c.tocLocalState__c, 
c.tocLocalStreet__c, c.CreatedById, c.CreatedDate, 
c.LastModifiedById, c.LastModifiedDate from Contact c 
where c.tocContactId__c<>null

 can we extend the time somewhere in sfdc?
please advice.

I had this same problem.  We delete all records in a custom object every day and load new records.  I tried deleting my org's recycle bin and still couldn't get it to work.


I finally figured out to apply a filter to my query:  Isdeleted=false


This has fixed the problem for me.  Just thought I'd post in case anyone else is getting this error  :)


Thought this might be useful to somebody,

Use limit keyword in your query. It will solve your problem. I solved my issue by just adding limit as 2000000 though my sf object has 900000 records.