locked
LOG de transações RRS feed

  • Pergunta

  • Ola, na empresa em que eu trabalho o Recovery dos bancos estão setados como "Simple" e durante o dia temos alguns problemas com o log cheio, e conforme o modo de recovery utilizado após o termina das transações "pesadas" as operações voltam a o normal, gostaria de saber se há algum script para que eu possa ver a(s) transações que estão consumindo o LOG no momento do enchimento do LOG? Uma alternativa para esse problema seria aumentar o tamanho do LOG, mas antes disso gostaríamos de saber exatamente quais transações são realizadas durante o dia que estão enchendo o LOG.

    Banco SQL Server 2008.

    Desde já, obrigado.

    terça-feira, 22 de outubro de 2013 14:39

Respostas

  • Olá,

    Para identificar a query existem algumas soluções que vocês usar, certamente que aumentar o tamanho do arquivo de log ou a criação de um arquivo de log adicional irão solucionar o problema para vocês.

    Para buscar a query você pode utilizar o SQL Server profiler e utilizar o template padrão para T-SQL que vai exibir todas as queryes executadas no momento do inicio do trace. Como o SQL Profiler afeta diretamente o desempenho do servidor você pode utilizar o script a seguir

    SELECT sqltext.TEXT,

    req.session_id,
    req.status,
    req.command,
    req.cpu_time,
    req.total_elapsed_time
    FROM sys.dm_exec_requests req
    CROSS APPLY sys.dm_exec_sql_text(sql_handleAS sqltext

    Para Verificar a utilização do log use:

     DBCC SQLPERF (LOGSPACE).

    Pesquisando a respeito encontrei dois artigos muito bons para a sua pergunta estou adicionando a seguir:

    Manage the Size of the Transaction Log File - http://technet.microsoft.com/en-us/library/ms365418.aspx

    SQL SERVER – Find Currently Running Query – T-SQL- http://blog.sqlauthority.com/2009/01/07/sql-server-find-currently-running-query-t-sql/

    terça-feira, 22 de outubro de 2013 16:08