Well, just looking at your SQL, it looks to me like you're creating a MUCH larger result set than you intend to.
SELECT *
from vwLstDtaLines d1,vwLStDtafiles d2
where d1.DtaLinePaymentDate='1/1/2000' or
d1.DtaLinePaymentDate='1/1/2012' or
d1.DtaLineUserCre='abc' or
d1.DtaLineUserMatch='abc' or
d2.DtaFileName='Sent'
This SQL statement has no explicit JOIN between the two views. Consequently, what you're getting is a result set that is probably something like d1r * d2r in size, where d1r is the number of rows in d1 and d2r is the number of rows in d2.
I'd start looking there. Run the following query in SQL server to find out:
SELECT COUNT(*)
from vwLstDtaLines d1,vwLStDtafiles d2
where d1.DtaLinePaymentDate='1/1/2000' or
d1.DtaLinePaymentDate='1/1/2012' or
d1.DtaLineUserCre='abc' or
d1.DtaLineUserMatch='abc' or
d2.DtaFileName='Sent'
If the number of rows is astronomical, you have a join issue.