• If you could post the execution plan, that would be a big help.

    You do realize that NOLOCK could lead to missing or duplicate rows.

    Nothing jumps out of the query as you have it written here that is glaringly an issue. My only concern is the BETWEEN statement. 100 possible values is quite a lot and could lead to scans if the statistics suggest that the this leads to less than highly selective sets of data. But that's just a vague guess. I can tell you a lot more with an execution plan. Preferably the actual execution plan, but estimated is OK.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning