Irrespective of the where clause;
When table is heap (no clustered indexes) then does a select query make sql server to lock all rows until it has finished reading all the rows?
Where as in case of table with clustered index, sql server will lock the rows one by one and release them immediately after that row is read?
Any reference links on this topic will be really helpful.