Crystal report can be the culprit, if the report has complex sql, no filters, etc.,
To make db memory not to choke.
you can either tune the sql/ report, add extra filters if possible
(or) you may check sql server odbc/ jdbc properties to timeout after certain time.
(or) if you using business objects you can set connection timeout in CMC