What is happening with locks in my database? I'm having some problems on my database. At any given time, I'm trying to execute an update with five records on my table, but this table is locked and I get a time out executing the query.

I realized that if I execute update in only four records, the statement run sucessfully. And when I try to update the five recods together, it doesn't work.

Example: 

--ONLY LOCKS IF THE UPDATE IS IN ALL FIVE RECORDS. (any combination works fine)

UPDATE X SET STATUS = 1 WHERE ID IN (1,2,3,4,5) -- THIS LOCKS THE UPDATE!!

UPDATE X SET STATUS = 1 WHERE ID IN (2,3,4) -- THIS  DOESN'T LOCK AND RUN SUCESSFULLY!

UPDATE X SET STATUS = 1 WHERE ID IN (1,4,5) -- THIS  DOESN'T LOCK AND RUN SUCESSFULLY!

UPDATE X SET STATUS = 1 WHERE ID IN (1,2,3,5) -- THIS DOESN'T LOCK AND RUN SUCESSFULLY!


Does anyone have an idea to how I fix this situation?

EDIT 1:
My isolation level is Read Commited.
When I run sp_lock, I realized that two locks in my table: PAG and KEY.
Searching more about KEY LOCK, I created an index for the column on the where clause, and this solve my problem. 

EDIT:
When I removed the where clause (without index) , it worked fine too.