my senior told me that for SQL Query execution by default doesn't lock the table.
This is true. However, it doesn't mean a query can't lock a table.
does SSRS report actually will lock any tables that is being queried?
SSRS gets the data used to render the report by running a query or stored procedure against the database.
This query is defined by the developer, and it may end up locking a table (or tables), depending on the isolation level and how many rows are involved. (In fact, there may be cases where you'd want to do this on purpose.) The bottom line is that it's up to the developer how the locking works for the query. SSRS can't solve this problem for you. That's why there isn't any documentation.
Consider (for example):
- Using
READ UNCOMMITTED if dirty reads are okay
- Enabling and using a snapshot isolation level
- Log shipping in Standby mode, and running queries against the read-only copy
SET TRANSACTION ISOLATION LEVELfor example toREAD UNCOMMITTEDif you don't mind risking a few dirty reads. – Jeroen Sep 11 '12 at 10:00