From: SmartbizAustralia on
Tricky one.

Have a database getting alot of locks...Darn sql server and those
silly page locks.
Anyway had to change the application to use a disconnected methodology
and check for changes before doing an update. Love the asp.net
alternative. It just clobbers data (unless you write code to
check)...record locks have their uses but...right now need to reduce
any locking possible and one article on the web mentioned even tables
where you just add data too could do with a fill factor.

One table just keeps a track of changes by the record id.
There is a clustered index on the record id but it is not unique.
(E.g. there is a new record for each field changed for that record)
Will locks be reduced if a fill factor of say 70 is added, and is it
even relevant for a clustered index?
There's also the pad factor....can see that is more relevant for non-
clustered indexes but what about clustered?

Regards,
Tom
From: Gert-Jan Strik on
SmartbizAustralia wrote:
>
> Tricky one.
>
> Have a database getting alot of locks...Darn sql server and those
> silly page locks.
> Anyway had to change the application to use a disconnected methodology
> and check for changes before doing an update. Love the asp.net
> alternative. It just clobbers data (unless you write code to
> check)...record locks have their uses but...right now need to reduce
> any locking possible and one article on the web mentioned even tables
> where you just add data too could do with a fill factor.
>
> One table just keeps a track of changes by the record id.
> There is a clustered index on the record id but it is not unique.
> (E.g. there is a new record for each field changed for that record)
> Will locks be reduced if a fill factor of say 70 is added, and is it
> even relevant for a clustered index?
> There's also the pad factor....can see that is more relevant for non-
> clustered indexes but what about clustered?
>
> Regards,
> Tom

Unless you explicitely specify page locks (which you are probably not
doing), then changing the fillfactor to such a large number will
probably only waste space (with its potential negative effect on
performance). The same is true for the pad factor. If you disregard
explicit page locks, then these "factors" have no relation to blocking.

You will probably have to investigate when you lock rows, and whether
the used locking strategy is the best for your purpose. You could
investigate which indexes are causing the most blocking. You might come
to all kinds of conclusions, including the following:
- no blocking, just long lasting locks because of an I/O bottleneck
- too many long lasting transactions covering too many rows
- unintended lock escalation
- too many indexes
- unintended exclusive locks instead of shared locks
- inappropriate data model

Good luck,
Gert-Jan