Thank you Joe,
I generated the sysmon reports and there were 24 Ex-Row to Ex-Table and 2 Ex-Page to Ex-Table promotions. But i'm not sure if this is related to this process in question as a few other processes were running at that time. However, i did not see any lock promotions from the sysmon report when the threshold was set to 15000 at the server level.
I shall look at generating the report again with executing only this process.
Will partitioning the table provide better results?
Thanks,
jennifer
Main Topics
Browse All Topics





by: Joe_WoodhousePosted on 2009-10-14 at 21:09:31ID: 25577145
Your results are correct and expected - most measures to improve throughput (concurrency) reduce response time. Batching commands will be slower than doing entirely set-based operations one data set at a time. Datarows locking slows down response times as well.
I'd suggest if you're going to play with lock promotion thresholds, set those for the session in these stored procedures rather than globally with sp_configure.
Also if your tables here are all datarows locked, there is no need to change the page lock promotion thresholds - row-level locking escalates directly to table locking if there is a lock promotion.
This last point is crucial - have you actually seen lock promotions if you don't tune the promotion thresholds? They happen less often than you might think... The best way to prove they occur is to run sp_sysmon during your concurrency tests and look for lock promotions - if sp_sysmon reports none, there were none and you don't need to tune these settings at all.
Your basic approach seems sound though.