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

Откуда:
Сообщений: 6
Уважаемые знатоки.
Нужна ваша помощь.
Как можно выяснить какую процедуру запустил пользователь на сервере?
14 май 15, 08:56    [17637798]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Glory
Member

Откуда:
Сообщений: 104760
Evgeniy_Ch
Как можно выяснить какую процедуру запустил пользователь на сервере?

Сейчас заглянуть в прошлое нельзя.
Можно сейчас настроить трассировку или аудит, чтобы в будущем видеть команды, переданные пользователем серверу
14 май 15, 09:00    [17637812]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Evgeniy_Ch
Member

Откуда:
Сообщений: 6
я запустил трассировку в тексте запрос я вижу чтот-то типа 'SELECT @@SPID' но меня интересует, именно какая процедура выполняется не вижу
14 май 15, 09:24    [17637925]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Glory
Member

Откуда:
Сообщений: 104760
Evgeniy_Ch
я запустил трассировку в тексте запрос я вижу чтот-то типа 'SELECT @@SPID' но меня интересует, именно какая процедура выполняется не вижу

Еще раз. Узнать о том, что произошло в прошлом, нельзя.
Можно узнать, что будет происходить только с того момента, когда вы запустили трассировку
14 май 15, 09:27    [17637938]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Evgeniy_Ch
Member

Откуда:
Сообщений: 6
Это я понял хорошо а в реальном времени как?
Или как по ID процесса выловить процедуры...
14 май 15, 09:37    [17637987]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Glory
Member

Откуда:
Сообщений: 104760
Evgeniy_Ch
Это я понял хорошо а в реальном времени как?

В смысле ? Сервер может выполнять множество команд за секунду.


Evgeniy_Ch
Или как по ID процесса выловить процедуры...

Что вы пытаетесь "построить" ?
14 май 15, 09:39    [17637998]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
o-o
Guest
можно в таком духе посмотреть, что сейчас выполняется,
фильтровать по его сессии.
только не у всего есть планы и текст необязательно увидите,
но в случае процедуры прокатит:
select r.session_id, r.status, r.command, a.text
from sys.dm_exec_requests r outer apply (select *
                                         from sys.dm_exec_sql_text(r.plan_handle)) a
14 май 15, 09:47    [17638021]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
o-o
можно в таком духе посмотреть, что сейчас выполняется,
фильтровать по его сессии.
только не у всего есть планы и текст необязательно увидите,
но в случае процедуры прокатит:
select r.session_id, r.status, r.command, a.text
from sys.dm_exec_requests r outer apply (select *
                                         from sys.dm_exec_sql_text(r.plan_handle)) a


лучше уж пусть профайлером тренируется.
14 май 15, 09:50    [17638028]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
o-o
Guest
Winnipuh,

лучше кому?
сейчас как загрузит себе все что можно
14 май 15, 09:55    [17638051]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Evgeniy_Ch
Member

Откуда:
Сообщений: 6
Задача такова есть процессы которые выполняются с другого сервера (часто продолжительное время) нужно выяснить какие процедуры эти процессы запускаю на сервере....
14 май 15, 10:25    [17638203]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Glory
Member

Откуда:
Сообщений: 104760
Evgeniy_Ch
Задача такова есть процессы которые выполняются с другого сервера (часто продолжительное время) нужно выяснить какие процедуры эти процессы запускаю на сервере....

И в очередной раз - включаете трассировку и получаете все команды, которые выполняются во всех коннектах. Можеет фильтровать только нужные вам
14 май 15, 11:00    [17638367]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1873
select 
s.session_id,
r.blocking_session_id,
s.nt_user_name,
substring(txt.text,
                       (r.statement_start_offset/2)+1, 
                       ((case r.statement_end_offset when -1 then datalength(txt.text) else r.statement_end_offset end - r.statement_start_offset)/2)+1),
s.host_name ,
s.program_name,
s.status,
s.last_request_start_time, 
s.last_request_end_time,
db_name(r.database_id) as dbname,
user_name(r.user_id) as uname,
r.wait_type,
r.wait_time
from sys.dm_exec_sessions s 
join sys.dm_exec_requests r on s.session_id = r.session_id
cross apply sys.dm_exec_sql_text(r.sql_handle) AS txt
where s.session_id >50 ----не системные процессы 
14 май 15, 11:05    [17638413]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Evgeniy_Ch
Member

Откуда:
Сообщений: 6
Огромное спасибо.
14 май 15, 11:41    [17638620]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
o-o
Guest
LexusR
...
where s.session_id >50 ----не системные процессы 

не стОит так фильтровать.
мне однажды назначили spid типа 27, у меня тоже в тот момент глаза на лоб,
но на самом деле никто и не гарантирует, что < 50 системные.
ситуация трудновоспроизводимая, но где-то у меня была картинка сохранена
14 май 15, 12:35    [17638980]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Evgeniy_Ch
Member

Откуда:
Сообщений: 6
Я не знаю насколько правильно я фильтрую по заросу:

USE [master]
GO
SELECT
name as 'База',
spid as 'Идентификатор сеанса',
cpu as 'Совокупное время ЦП для процесса',
memusage as 'Число страниц в кэше процедур',
cpu_time as 'Время ЦП выполнение запроса',
waittime as 'Время ожидания',
lastwaittype as 'Типа ожидания',
command as 'Тип команды',
hostname as 'Хост',
program_name as 'Приложение',
loginame as 'Логин',
sql as 'Текст запроса',
sqlplan as 'План запроса'
FROM (
SELECT
d.name,
p.status,
r.command,
p.spid,
p.hostname,
p.program_name,
p.cmd,
p.loginame,
p.cpu,
r.cpu_time,
p.waittime,
p.lastwaittype,
p.physical_io,
p.memusage,
(SELECT
text
FROM sys.dm_exec_sql_text (p.sql_handle)
) as sql,
(SELECT
query_plan
FROM sys.dm_exec_query_plan (r.plan_handle)
) as sqlplan
FROM
master.dbo.sysprocesses p
INNER JOIN sys.sysdatabases d ON (d.dbid = p.dbid)
left join sys.dm_exec_requests r ON (r.session_id = p.spid)
) as A
WHERE sql is not null
--ORDER BY cpu DESC
ORDER BY spid
14 май 15, 12:47    [17639062]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
o-o
не стОит так фильтровать.
мне однажды назначили spid типа 27, у меня тоже в тот момент глаза на лоб,
но на самом деле никто и не гарантирует, что < 50 системные.
ситуация трудновоспроизводимая, но где-то у меня была картинка сохранена

+1
Была та же история. Начиная с 2005-го >50 не работает.
Adam Machanic: Smashing a DMV Myth: session_id > 50 == User Process
14 май 15, 13:07    [17639219]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
o-o
Guest
Evgeniy_Ch,

я не знаю, зачем вы искорежили предложенные запросы,
но это ваше стало трудночитаемым + зачем-то показывает, например,
сессии Object Explorer-а, к-ые просто висят и ничего не делают
(потому что мы с все цепляем к выполняемым сейчас запросам: sys.dm_exec_requests, а вы -- к sysprocesses)

про спид 27 извиняюсь.
все было ровно наоборот:
мне нужны были системные процессы, и среди них оказался 74,
что меня и удивило. а почему помню 27? наверное, потому, что до 74 как раз идет 27 :)
хорошо, когда есть картинки, они все помнят как было

К сообщению приложен файл. Размер - 142Kb
14 май 15, 13:12    [17639246]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
o-o
Guest
SomewhereSomehow
+1
Была та же история. Начиная с 2005-го >50 не работает.

за ссылку спасибо, но у меня было ровно наоборот, память сегодня сбоит :)
spid 27 мне еще ни разу не давали
14 май 15, 13:14    [17639263]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
o-o
про спид 27 извиняюсь.

Можете не извиняться. >50 действительно не надежный способ фильтрации, буквально пару недель назад на работе была такая ситуация.
П.С.
Мож картинка не та? =)
14 май 15, 13:15    [17639269]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
o-o
Guest
SomewhereSomehow
Мож картинка не та? =)

не не, у меня все под контролем :)
когда вижу, могу сразу сказать, оно или не оно. именно это было, помню визуально
14 май 15, 13:17    [17639290]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Glory
Member

Откуда:
Сообщений: 104760
Мне вот просто интересно
Для "Задача такова есть процессы которые выполняются с другого сервера (часто продолжительное время) нужно выяснить какие процедуры эти процессы запускаю на сервере...." вы ТС-у предлагаете запускать предложенные скрипты с частотой 10/100/1000 раз в секунду ?
14 май 15, 13:20    [17639303]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
o-o
Guest
Glory,

у вас с хронологией событий все хорошо?
сперва появляется топик под названием "Какая поцедура выполняется"
настоящее незавершенное время.

ок, далее уточнение: "Как можно выяснить какую процедуру запустил пользователь на сервере? "
и что, где противоречие?
кто-то что-то тягомотное запустил, хотим выяснить, кто и что.
у нас это постоянно, например.

я ему и пишу, как посмотреть.

потом вылазят подробности типа "да мне вообще нужен аудит",
и тут я молчу!

а потом вылазит перекореженный скрипт (мой ли, LexusR ли), и про него же вопрос.
мне что за истину считать, если у ТС показания каждые 5 минут меняются?
он говорит, мне надо в Ленинград, сам садится в поезд на Москву, и задает вопросы о станциях
на пути в Москву, ну и? не отвечать теперь?

пусть свою кашу в голове причесывает сам, при чем тут я и LexusR?
14 май 15, 13:41    [17639442]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
у вас с хронологией событий все хорошо?
сперва появляется топик под названием "Какая поцедура выполняется"
настоящее незавершенное время.

У меня как раз с хронологией все хорошо
Вопрос про "а в реальном времени" 17637987 был задан задолго до всех скриптов
14 май 15, 13:45    [17639466]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
o-o
Guest
Glory,

вот именно. смотрим в реальном времени, что у нас выполняется.
а не что в прошлом кто-то год назад выполнял.
он только потом признался, что надо аудит того, что идет с другого сервера.

и похоже, не только я понимаю "в ральном времени" = что сейчас выполняется.
с LexusR мы не сговаривались
14 май 15, 13:52    [17639518]     Ответить | Цитировать Сообщить модератору
 Re: Какая поцедура выполняется  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
вот именно. смотрим в реальном времени, что у нас выполняется.

Ага, конечно, в реальном
14 май 15, 13:54    [17639527]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить