A single report can have multiple queries; splitting up a query up can often speed up a report. If a report contains multiple queries and is running slow, you can add a "Query status" report to see which ones are taking a long time to refresh:
Right click on the report tab and select Add Report
Click on the new tab.
Go to the Report Elements Tab > Cell sub-tab
Select Query Summary
Drag the "Query Summary" object onto the new report tab
This will show a list of each query, how many rows of data are being retrieved, and how long (in seconds) the query is taking to run.
If a query is returning a lot of records, it may need to be narrowed. Returning a lot of records however, does not always mean the report will run slowly. If a query is taking a long time to run (60+ seconds) but still not retrieving much data (under 5,000 records), the data types may need to be split up into separate queries to improve the efficiency of the report.
Mixing any two to three of the following types of data in a single query can slow it down:
Points Of Service