Question: I have a stored procedure that does a lot more reads when the NOLOCK hint is added to the query. I'm baffled - does anyone know why, please?

Details:
The query is: 

```
SELECT * FROM dbo.<table-name> WITH (NOLOCK).

```

It was doing 40,000 reads and there are less than 2,000 rows. I established that most of these reads are caused by 3 TEXT columns. (If I omit those it goes down to 59 reads!) But when I delete the WITH (NOLOCK) it goes from 40,000 reads to 13,000. I repeated this a few times because I thought I must have screwed up but it's really consistent both ways.

Answer: 
NOLOCK reads data from transactions that have not been committed. 

**EDIT**

Demo of NOLOCK read of uncommitted data. 

```
create table table1 (id int, val int)
go

select * from table1 with ( NoLock)
begin tran
insert into table1 values (1,1)

--Switch to new query window
select * from table1 with ( NoLock)
--switch back
rollback tran
select * from table1 with ( NoLock)

```
Maybe the read count includes page reads to read the locks?