Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 История запросов  [new]
sancoma
Member

Откуда:
Сообщений: 149
Подскажите плз как посмотреть историю всех запросов к таблице T которые были за вчера например? MSQSQL2008 R2 трейс лог включен.
24 май 13, 13:48    [14344929]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
gang
Member

Откуда:
Сообщений: 1394
sancoma,

Если под "трейс лог" вы имеете в виду дефолтную трассировку, то никак. В ней максимум будут DML команды для Вашей таблицы. Простые селекты по дефолту не логируются. Можно посмотреть в dm_exec_query_stats - там будет время последнего запуска запроса, но никак не история.
24 май 13, 13:54    [14344982]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
почемучка задолбалка
Guest
gang,

а в ms sql нет аналога ораклового log miner? я имею ввиду по сохранившемуся журналу транзакций нельзя выкопать список запросов?
24 май 13, 14:16    [14345178]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
%%%--)
Guest
почемучка задолбалка,

а шо, в лог уже селекты пишутся?
24 май 13, 14:20    [14345203]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
gang
Member

Откуда:
Сообщений: 1394
%%%--)
почемучка задолбалка,

а шо, в лог уже селекты пишутся?

+1. Select не транзакция.
24 май 13, 14:37    [14345343]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
почемучка задолбалка
Guest
%%%--)
почемучка задолбалка,

а шо, в лог уже селекты пишутся?


имелось ввиду

http://docs.oracle.com/cd/B19306_01/server.102/b14215/logminer.htm
24 май 13, 14:54    [14345459]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
%%%--)
Guest
я даже не особо верю, что оракл в журнал запросы зафигачивает.
надо же, все там место экономят, пишут байтики измененные, "имидж до"(если или update, delete),
"имидж после"(если insert, updaet),
если дело в tempDB, то и никакое "после" не пишется, а тут вона, ораклы запросы целые пишут.

а по теме.
audit можно настроить.
и таки да, будет текст запроса записывать.

и лог копать можно: fn_dblog().
байтики измененные покажет + transaction name(insert, update, delete, ...)
24 май 13, 14:56    [14345472]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
почемучка задолбалка
Guest
не внимательно прочитал :)

%%%---)

не пишет он селекты в лог. и запросы не пишт. просто тулза читает файлы redo и генерит dml для человека.
24 май 13, 14:59    [14345491]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
%%%--)
Guest
ну вон да, по ссылке про то и пишут.
не запрос он восстанавливает, а инструкции:

Instead, LogMiner generates nonexecutable SQL (including hexadecimal-to-raw formatting of binary values) in the SQL_REDO column of the V$LOGMNR_CONTENTS view similar to the following example:

insert into HR.EMPLOYEES(col#1, col#2) values (hextoraw('4a6f686e20446f65'),
hextoraw('c306'));"

так то и fn_dblog() покажет.
(если лог к тому времени не перезапишется)

не вижу, чтоб в примерах вместо вставляемых _значений_
показывался бы опупительный запрос из 30 соединений
24 май 13, 15:02    [14345514]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
gang
Member

Откуда:
Сообщений: 1394
sancoma,

В общем ретроспективно, если заранее кроме дефолтной трассы ничего не включали, то никак.
Если будете настраивать, то для мониторинга конкретной таблицы подходит трассировка по Audit Schema Object Access Event.
24 май 13, 15:14    [14345597]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
Hooly-Gun
Member

Откуда:
Сообщений: 16
EXEC sp_who2
DBCC INPUTBUFFER (@SPID) 
24 май 13, 16:00    [14345983]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Hooly-Gun
EXEC sp_who2
DBCC INPUTBUFFER (@SPID) 

При помощи этого можно "посмотреть историю всех запросов к таблице T которые были за вчера например"?!
24 май 13, 16:10    [14346061]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
Hooly-Gun
Member

Откуда:
Сообщений: 16
Гость333,

Можно сохранить результаты
DBCC INPUTBUFFER (@SPID)
запросов в таблицу, потом сделать Like по полью куда записан текст запроса... как то так
24 май 13, 18:12    [14346954]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Hooly-Gun,

Ок, этим вы получите некий срез запросов на момент запуска вашего скрипта. Как быть с запросами, которые выполнялись раньше или позже этого момента?
24 май 13, 18:18    [14346980]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
Hooly-Gun
Member

Откуда:
Сообщений: 16
Гость333,
а так
SELECT  d.plan_handle ,
        d.sql_handle ,
        e.text

FROM    sys.dm_exec_query_stats d
        CROSS APPLY sys.dm_exec_sql_text(d.plan_handle) AS e
24 май 13, 19:04    [14347178]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
Hooly-Gun
Member

Откуда:
Сообщений: 16
забыл
d.creation_time
24 май 13, 19:08    [14347192]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Hooly-Gun,

Так тоже получите срез на момент времени. ТСу ведь нужно получить историю запросов за определённый период -- или вы предлагаете запускать ваш скрипт в цикле каждую секунду? :-)

Ваш подход полезен для несколько других задач...
24 май 13, 23:12    [14347988]     Ответить | Цитировать Сообщить модератору
 Re: История запросов  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Hooly-Gun
забыл
d.creation_time

То есть предлагаете сделать набор срезов? В любом случае будут запросы, успевшие отработать в промежутке между снятием двух соседних срезов...
24 май 13, 23:16    [14348006]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить