Назад | Перейти на главную страницу

Просмотр результатов предыдущего запроса из SQL Server Management Studio

Вчера вечером я оставил свой компьютер, выполнив пакетное удаление в редакторе запросов Sql Server Management Studio. Я запускал это, чтобы проверить скорость удаления в большой базе данных, прежде чем мы использовали скрипт в нашей действующей базе данных. Ночью мой компьютер перезагрузился для обновления. Мне интересно, есть ли способ просмотреть журнал предыдущих выполненных операторов и узнать время, которое потребовалось для выполнения. Он удалялся из SQL Server 2000. Спасибо!

Может быть, простые смертные не могут просматривать файлы журналов, но администратор баз данных может собрать все виды информации. Вот пара вопросов, с которых можно начать.

-- Run this query to get the transaction ID
USE YourDatabase
GO
SELECT 
    [Transaction ID],
    Operation,
    Context,
    AllocUnitName    
FROM 
    fn_dblog(NULL, NULL) 
WHERE 
    Operation = 'LOP_DELETE_ROWS'
    and AllocUnitName like '%YourTableName%'
ORDER by [transaction ID] desc

-- Run this query to find the transaction SID
SELECT
    Operation,
    [Transaction ID],
    [Begin Time],
    [End Time],
    [Transaction Name],
    [Transaction SID]
FROM
    fn_dblog(NULL, NULL)
WHERE
    [Transaction ID] = 'TransactionID from above'

-- or use below to search using time instead of transaction ID

    [Begin Time] between 'starttime' and 'endtime'
AND
    [Operation] = 'LOP_BEGIN_XACT'

-- Run this to determine who ran the delete
USE MASTER
GO   
SELECT SUSER_SNAME([Transaction SID from above])

Единственный способ сделать это - настроить некоторую форму процесса мониторинга до (и во время) операции. Например. инструмент Profiler позволяет вам регистрировать продолжительность (и любые утверждения, но не результаты) любого пакета, или вы можете выдать SELECT или PRINT показывая результаты getdate() до и после заявления.

С операциями модификации, такими как DELETE, в журнале транзакций будет запись (при условии, что с тех пор она не была усечена, с резервной копией журнала или контрольной точкой в ​​простом режиме восстановления), но простые смертные не могут проверить журнал транзакций с помощью встроенных инструментов. Хотя доступны сторонние инспекторы журналов, но журнал транзакций показывает время, когда произошла операция, но не содержит информации о ее продолжительности :)

Я понимаю, что это закрывает ворота после того, как лошадь заперта, но нет встроенной записи таких вещей, которые переживут перезагрузку, извините!