I note that your query includes:
WHERE BI_UPDATE_DATE_MSD__c = 2014-09-01
which may be selective enough to allow your query to work. As Working with Very Large SOQL Queries describes, that term would have to result in less than 10% of the rows being referenced.
If your data has that pattern i.e. the rows are distributed across many BI_UPDATE_DATE_MSD__c
values, then adding an index to that field should allow the query to complete. (Adding an index allowallows the database to jump to just reference the specific rows rather than having to scan all the rows for matching values.)
You can get the field indexed via a support request. (The other technique that results in an index of marking the field to be an External ID isn't available for Date fields.)