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

Откуда: Жатай->Подольск
Сообщений: 137
MS SQL 2008/2008 R2 желательно для обеих, если есть отличия.

MSDN копал, не нашел, помогите!
6 апр 12, 11:20    [12374708]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Просмотр метаданных компонента Service Broker и уведомлений о запросах
6 апр 12, 12:54    [12375484]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Отпишитесь о результатах.
6 апр 12, 12:56    [12375498]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Matroskin
Member

Откуда: Жатай->Подольск
Сообщений: 137
Mnior,

нет, это не то
меня интересует сам запрос, который отслеживается на изменение
например, применительно к .NET указанный в SqlDependency
6 апр 12, 16:35    [12377498]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Matroskin
меня интересует сам запрос, который отслеживается на изменение
Ну дык разве в тех таблах не записано?
Я привёл предположительное направление, из каких таблиц составить запрос, чтобы получить "запрос отслеживания".

Вам нужна явно та строка, которую послал клиент (со всеми знаками препинания и комментариями)? А с чего вы решили, что сервер это барахло хранит?
Он распарсил запрос, составл фильтр в нужном структурном формате. И решает задачу в оптимальном виде.
Ему лишь надо знать приложение (сетевой порт) кого пизнуть.

А зачем вам строка? Если вы (возможно) увидите к каким объектам базы был запрос.
6 апр 12, 19:14    [12378308]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
кого пизнуть


"Пихнуть"
6 апр 12, 19:16    [12378314]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Matroskin
Member

Откуда: Жатай->Подольск
Сообщений: 137
Mnior
Matroskin
меня интересует сам запрос, который отслеживается на изменение
Ну дык разве в тех таблах не записано?
Я привёл предположительное направление, из каких таблиц составить запрос, чтобы получить "запрос отслеживания".

Вам нужна явно та строка, которую послал клиент (со всеми знаками препинания и комментариями)? А с чего вы решили, что сервер это барахло хранит?
Он распарсил запрос, составл фильтр в нужном структурном формате. И решает задачу в оптимальном виде.
Ему лишь надо знать приложение (сетевой порт) кого пизнуть.

А зачем вам строка? Если вы (возможно) увидите к каким объектам базы был запрос.


Если было бы записано, я бы не спрашивал.

Да, хочу знать, чего такого клиент решил кешировать. Может там 1000 запросов вида "select * from Table where id=value".

Я спрашивал - "Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions"
6 апр 12, 19:38    [12378396]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Б&@$ь, я понял, нужно мне самому написать связку таблиц:
sys.dm_qn_subscriptions JOIN tempdb.sys.internal_tables JOIN sys.columns
И поковырять руками, что бы потом внятно написать, что "да, это невозможно вытянуть никак" или "вот код [...], thick", и разжевать все как 3х летнему.
7 апр 12, 21:10    [12381400]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Matroskin
Member

Откуда: Жатай->Подольск
Сообщений: 137
Mnior
Б&@$ь, я понял, нужно мне самому написать связку таблиц:
sys.dm_qn_subscriptions JOIN tempdb.sys.internal_tables JOIN sys.columns
И поковырять руками, что бы потом внятно написать, что "да, это невозможно вытянуть никак" или "вот код [...], thick", и разжевать все как 3х летнему.


Какой интересный, познавательный и главное полный ответ на поставленный вопрос ...
9 апр 12, 08:34    [12385602]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Matroskin
Какой интересный, познавательный и главное полный ответ на поставленный вопрос ...

Да вы не пробиваемы.

PS: R&S
- А у тебя есть совесть?
- Мяса!
-------------------------------------
Забыл что Internal Tables только для внутреннего использования, обращаться можно тока через "интерфейсные объекты", напрямик никак.

Порыл в нете. Ответ один - никак. Вообще.
1. Это внутренняя особенность ядра. Прикольно смотрится в планах.
2. Работает до перезагрузки, основано на tempdb. Чистая динамика.
3. Функционал появился уже в 2005, поэтому не блещет законченностью и глубиной
4. Сделано одно Client-Side решение на .Net.
5. Очень слабо распространнено, если бы давили или была заинтересованность со стороны MS. А так нуль в развитии. Хорошо что не урезали, как HTTP.
6. Из-за этого даже подцепится, поставить прослойку али ещё как - нельзя. Т.к. обращения как такогового нет. Подписка делается обыкновенно самим запросом (со спец параметрами указания сервиса получения).
7. Т.к. это всё может конкретно напряч сервак и тяжело контролируется, то технологию особо не втюхивают

Link

Вот как выглядят планы для подписки и запроса, изменяюшего данные.
SELECT ID, Name FROM dbo.Test WHERE Name LIKE 'Test1%' -- Подписка на изменения, да, вот так просто
INSERT dbo.Test(Name) VALUES ('Test2') -- Изменения в таблице, никак в итоге не отразится

При подписке делается поиск диалога, со свойствами [user_sid(); QNGetSSBService(); QNGetSSBInstance(); QNGetCookie()] (функции получающие указанные клиентом настройки описанные здесь, а вот все свойства подающиеся в основную API функцию SQLPrepare)

К сообщению приложен файл. Размер - 46Kb
10 апр 12, 13:12    [12392956]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Matroskin
Member

Откуда: Жатай->Подольск
Сообщений: 137
Mnior,

Благодарю, думал что ошибаюсь, посему и спрашивал.

P.S. Все знать к сожалению невозможно, зато всегда есть возможность спросить...
11 апр 12, 09:12    [12397118]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Matroskin
зато всегда есть возможность спросить...
Почему вы не верите в свои силы?
Каждый из нас может самостоятельно учится, ковырять, копать, находить информацию и делится ею.
11 апр 12, 09:19    [12397140]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Matroskin
Member

Откуда: Жатай->Подольск
Сообщений: 137
Mnior,

Мне просто было нужно подтверждение.
Поскольку этот вопрос был не критичен по времени и не сказывался на текущем принятии решения, я решил спросить.
11 апр 12, 12:52    [12398648]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли узнать на какой запрос подписка sys.dm_qn_subscriptions ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
+ Matroskin
Matroskin
Мне просто было нужно подтверждение.
Ok.
Тока надо это сразу описывать в первом посте, а то после это только отмазки.

Не боитесь написать пару лишних предложений (что какбэ намекает об отсутствии неуважения).
Это к тому что реалии вынуждают делать много телодвижений. Они не лишни.
11 апр 12, 13:06    [12398763]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить