Usuário com melhor resposta
Quando se cria indice no SQLSERVER as transações se perdem ?

Pergunta
-
Bom dia Senhores tenho uma dúvida .
Suponhamos que exista um sistema onde há várias consultas , inserções e alterações na base dados em tempo real ou seja um sistema web que usa o SQL SERVER . Se nesse momento eu for até o banco e criar indice para a tabela que mais é consumida o que acontace com as transações e consultas que estavam acontecendo nessa tabela no momento que estou criando o indice para ela ?
Obrigado desde já .
Davi Murilo Referência Principal : Jesus que ilumina minha mente.
Referência Profissonal : http://www.tidm.com.br
Respostas
-
Deleted
- Marcado como Resposta Davi Murilo sexta-feira, 6 de dezembro de 2013 12:20
Todas as Respostas
-
-
Desculpe-me mas ainda não entendi , simplesmente quando a inserção está rolando usando o campo que está no indice , nesse momento de haver um a Inserção e ao mesmo tempo a criação do Indice o que acontecerá ? O Transação Aguarda a criação do indice e depois retoma a execução ou não simplesmente se perde ?
Mesmo assim muito obrigado pelo sua resposta , se puder me responder essa agradeço novamente.
Davi Murilo Referência Principal : Jesus que ilumina minha mente.
Referência Profissonal : http://www.tidm.com.br -
-
É José eu li entendi que haverá sim um bloqueio na tabela para atualizações , mas ainda não fala o que acontece depois da criação se de fato existirá um desbloqueio e daí haverá a inserção por exemplo , ou se simplesmente essa transação de insert se perdeu ? ainda fico com a minha pergunta em aberto , mas obrigado por enquanto.
Davi Murilo Referência Principal : Jesus que ilumina minha mente.
Referência Profissonal : http://www.tidm.com.br -
Deleted
- Marcado como Resposta Davi Murilo sexta-feira, 6 de dezembro de 2013 12:20
-
Obrigado agora ficou claro e entendido valeu.
Davi Murilo Referência Principal : Jesus que ilumina minha mente.
Referência Profissonal : http://www.tidm.com.br -
Davi,
Um índice pode ser criado utilizando a option ONLINE = ON ou OFF. Isso muda o comportamento no momento exato da criação do índice, mas isso depende da versão do SQL que estiver sendo utilizado.
Se o seu SQL Server for Enterprise ou Developer, é possível criar um índice online (ONLINE = ON). Isso fará com que o SQL mantenha poucos locks na tabela, permitindo que o usuário possa seguir trabalhando com suas consultas e inserções normalmente. Ele provavelmente nem notará que um índice está sendo criado.
Se o SQL for Standard ou Express, a criação do índice é OFFLINE. Isso significa que o usuário não terá acesso aos dados durante o período em que o índice estiver sendo criado. Se você estiver criando um índice nonclustered o SQL ainda permite que selects sejam feitos, mas nenhum tipo de update é permitido.
Agora, respondendo sua pergunta. As transações que existiam no momento da criação do índice continuarão existindo normalmente até que o SQL consiga efetuar os locks necessários para a criação do índice. Nenhuma transação é perdida. O máximo que acontecerá é que não serão concedidos novos locks para novas transações.
Espero ter ajudado!
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Editado Roberto F FonsecaModerator sexta-feira, 6 de dezembro de 2013 12:24
-