none
Nível de Bloqueio Default RRS feed

  • Pergunta

  • Olá a todos,

    Como faço para obter a informação de qual o nível de bloqueio padrão do Sql Server? Se é no nível de tabela ou página de dados, ou nível folha, ou nível índice?

    Eu que o padrão do nível de isolamento é o READ COMMITTED.

    Obrigado!

    quinta-feira, 22 de janeiro de 2015 11:49

Respostas

Todas as Respostas

  • Jord bom dia,

    Para saber o Isolation Level você pode rodar essa query:

    SELECT CASE transaction_isolation_level 
    WHEN 0 THEN 'Unspecified' 
    WHEN 1 THEN 'Read Uncommitted' 
    WHEN 2 THEN 'Read Committed' 
    WHEN 3 THEN 'Repeatable' 
    WHEN 4 THEN 'Serializable' 
    WHEN 5 THEN 'Snapshot' END AS TRANSACTION_ISOLATION_LEVEL 
    FROM sys.dm_exec_sessions 
    where session_id = @@SPID

    Att


    Guilherme Silva Cardoso


    quinta-feira, 22 de janeiro de 2015 11:53
  • Ok Guilherme,

    Vou guardar essa consulta aqui, muito boa. Mas, você saberia dizer qual o nível padrão de bloqueio a nível de granularidade? Tipo: O Nível de Isolamento padrão é READ COMMITTED, porém, no nível de objeto qual seria o padrão para bloqueios: Database, Tabela, Índice, Página de Dados....?

    quinta-feira, 22 de janeiro de 2015 12:08
  • Bom dia Guilherme,

    O Lock Manager do SQL Server que irá gerenciar qual tipo de bloqueio utilizar para cada situação diferente. Pode por exemplo, ocorrer um bloqueio comum de páginas de dados em uma instrução de update ou então em níveis maiores quando acontece o escalonamento. Ainda existem os tipos de bloqueios que ocorrem, sejam exclusivos, compartilhados, etc.

    Olhe esse gráfico com a granularidade e hierarquia para ajudá-lo a enteder melhor:

    Resource Description

    RID

    A row identifier used to lock a single row within a heap.

    KEY

    A row lock within an index used to protect key ranges in serializable transactions.

    PAGE

    An 8-kilobyte (KB) page in a database, such as data or index pages.

    EXTENT

    A contiguous group of eight pages, such as data or index pages.

    HOBT

    A heap or B-tree. A lock protecting an index or the heap of data pages in a table that does not have a clustered index.

    TABLE

    The entire table, including all data and indexes.

    FILE

    A database file.

    APPLICATION

    An application-specified resource.

    METADATA

    Metadata locks.

    ALLOCATION_UNIT

    An allocation unit.

    DATABASE

    The entire database.


    Espero que tenha ajudado.


    Att, Bruno Silva.

    quinta-feira, 22 de janeiro de 2015 13:05
  • Ok Guilherme,

    Vou guardar essa consulta aqui, muito boa. Mas, você saberia dizer qual o nível padrão de bloqueio a nível de granularidade? Tipo: O Nível de Isolamento padrão é READ COMMITTED, porém, no nível de objeto qual seria o padrão para bloqueios: Database, Tabela, Índice, Página de Dados....?

    Jord,

    Isto depende do controle implementado no contexto onde você está manipulando os dados e do "hint" utilizado em cada instrução executada.

    Então você poderá ter diferentes bloqueios e "leituras" das informações de suas tabelas, dependendo das configurações em seu banco de dados e também nos atributos implementados para seus objetos, em seu provedor de dados: ADO, OLE DB, ... como utilizado pelas suas aplicações.

    Recomendo que você verifique às necessidades de sua aplicação para evitar o "deadlock" por concorrência de uso ou leitura de dados "suja", em situações que podem gerar transtornos, principalmente em grandes volumes de transações.

    Para maiores informações veja:

    https://technet.microsoft.com/pt-br/library/ms187373(v=sql.105).aspx

    https://technet.microsoft.com/pt-br/library/ms177404(v=sql.105).aspx

    https://technet.microsoft.com/pt-br/library/ms189132(v=sql.105).aspx

    https://technet.microsoft.com/pt-br/library/ms177433(v=sql.105).aspx

    https://technet.microsoft.com/pt-br/library/ms190805(v=sql.105).aspx

    https://technet.microsoft.com/pt-br/library/ms184286(v=sql.105).aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    • Marcado como Resposta Jord Silva sexta-feira, 23 de janeiro de 2015 16:19
    quinta-feira, 22 de janeiro de 2015 19:03
    Moderador