LOCK_ESCALATION
SQL server využívá eskalaci zámků na vyšší úroveň aby ulevil režii se zámky. Například, pokud server drží příliš mnoho zámků na řádcích, pak dojde k eskalaci zámků na stránku a zámky na řádcích jsou uvolněny.
Eskalace zámků může způsobit blokování zdrojů, protože takto může být zamčeno více řádků než je nutné.
Na úrovni tabulky můžeme ovlivnit, jestli server bude eskalaci zámků používat.
--vypne eskalaci zámků pro většinu případů ALTER TABLE tabule SET (LOCK_ESCALATION = DISABLE) --eskalace na úroveň partition (pokud existuje) nebo tabulky ALTER TABLE tabule SET (LOCK_ESCALATION = AUTO) --eskalace na úroveň tabulky ALTER TABLE tabule SET (LOCK_ESCALATION = TABLE)
ALLOW_PAGE_LOCKS, ALLOW_ROW_LOCKS
Na úrovni indexu (a to i clusterovaného) můžeme ovlivnit, zda server může používat zámky stránek a zámky řádků.
--povolí zámky stránek ALTER INDEX [pk_tabule] ON [dbo].[tabule] SET ( ALLOW_PAGE_LOCKS = ON ) --povolí zámky řádků ALTER INDEX [pk_tabule] ON [dbo].[tabule] SET ( ALLOW_ROW_LOCKS = ON ) --zakáže zámky stránek ALTER INDEX [pk_tabule] ON [dbo].[tabule] SET ( ALLOW_PAGE_LOCKS = OFF ) --zakáže zámky řádků ALTER INDEX [pk_tabule] ON [dbo].[tabule] SET ( ALLOW_ROW_LOCKS = OFF )