Tenho algumas perguntas sobre escalações de bloqueio de mesa. Confirme ou refute:
O operador Index Scan em uma consulta resulta em Table Lock Escalation? sempre ou não (mesas pequenas) ?
Quando o bloqueio compartilhado é escalado para um nível de tabela, ele bloqueia pequenas atualizações e exclui ? inserções também?
É possível obter contagens de
lock_escalation
eventos de tabela, agrupados por login e depois por tabela? Por exemplo:
login1 - table1 - 11
login1 - table2 - 5
login2 - table1 - 29
etc...
Eventos estendidos pareciam permitir apenas um nível de agrupamento, se não me engano
Vou começar dizendo: um bloqueio de tabela geralmente é usado apenas quando o número de bloqueios em uma única tabela atinge 5.000, ou 40% da memória de bloqueio foi usada. Consulte a documentação para obter mais detalhes.
Com aquilo em mente:
TOP
ouEXISTS
). O tamanho total da tabela parece irrelevante, apenas o número de linhas realmente lidas.S
bloqueio no nível de Tabela não é compatível com umIX
ou umX
bloqueio, um dos quais seria tentado por DML, comoUPDATE
ouDELETE
. No entanto, umU
bloqueio ainda pode ser feito, o que significa que o DML ainda pode encontrar linhas para modificar, mas terá que esperar para realmente tentar a modificação.