Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
Konstantin_Sam
Guest
Подскажите по профайлеру.

Довольно интенсивная нагрузка, но часто (несколько раз в секунду) проходят события между которыми ничего нет.

SQLtransaction Begin
SQLtransaction Commit


Иногда даже парами и одно и тоже время с точностью до миллисекунд.
Эти TrancactionID нигде рядом не используюся, врмена начала и конца одинаковы.

Пробовал включать ВСЕ события и все spid, все равно ничего нет между строчками Begin и Commit.

Что это значит?



Клиент .Net SqlClient Data Provider.
Интенсивно используются операторы работы с XML: .... SET @XmlL.modify(' ...


Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
27 авг 13, 18:21    [14762502]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31991
Konstantin_Sam
Пробовал включать ВСЕ события и все spid, все равно ничего нет между строчками Begin и Commit.
Значит ничего нет. С клиента послали только SQLtransaction Begin и SQLtransaction Commit
27 авг 13, 18:24    [14762506]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
Konstantin_sam
Guest
Не думаю, что они способны слать пустые SQLtransaction Begin и SQLtransaction Commit.
И зачем...
Хотя конечно, за других отвечать не могу.


Думал, может это что-то системное.
27 авг 13, 18:28    [14762532]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31991
Konstantin_sam
Думал, может это что-то системное.
Системное - в смысле, от самого SQL Server?
Не слышал о таком...
27 авг 13, 19:29    [14762703]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31991
alexeyvg
Konstantin_sam
Думал, может это что-то системное.
Системное - в смысле, от самого SQL Server?
Не слышал о таком...
Мне кажется, это шлётся при создании коннекта, ADO.NET таким бразом проверяет коннект...
27 авг 13, 20:06    [14762811]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31991
Konstantin_sam
Думал, может это что-то системное.
Хотя может и так.

Можно видеть в одном коннекте несколько SQLTransaction Begin с разными TransactionId, а потом несколько SQLTransaction Commit для того же набора TransactionId :-(
27 авг 13, 20:21    [14762866]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
o-o
Guest
наверное, если очень хочется, то можно в самом логе посмотреть.
отфильтруйте по интересующей транзакции:
select *
from fn_dblog(null, null)
where [Transaction ID] = '0000:0000044c'

выдаст все записи лога для нее.
и посмотрим, есть там что между BEGIN и COMMIT или нет

(пример для [Transaction ID] = 17484 )
27 авг 13, 22:42    [14763231]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
o-o
посмотрим, есть там что между BEGIN и COMMIT или нет
Пустые и только читающие транзакции в журнал не пишутся.
27 авг 13, 23:25    [14763345]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
o-o
Guest
invm,

так еще лучше: если функция не выведет ничего, значит транзакция пустая,
а если что-то есть, то не все профайлер показывает :)
27 авг 13, 23:45    [14763369]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
o-o,

ЕМНИП, Transaction ID в профайлере и журнале не коррелирую друг с другом.
27 авг 13, 23:58    [14763382]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
o-o
Guest
да, не та колонка в fn_dblog(), сорри. правильная: [Xact ID]

К сообщению приложен файл. Размер - 43Kb
28 авг 13, 01:21    [14763511]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
Konstantin_sam
Guest
>так еще лучше: если функция не выведет ничего, значит транзакция пустая,


Спасибо за функцию, o-o!

Для этой пустой по профайлеру транзакции ничего не вывела, для других непустых выводит.

Остается грешить на разработчиков, может этот какой-то рефреш рекордсета....
29 авг 13, 21:32    [14773105]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
Konstantin_sam
Guest
А правильноя я понимаю, что если на клиенте(.net) хотят поиграть в транзакции (открыть/закрыть),
то я это увижу событиями типа Sp:StmtStarting.

Или хитрый ADO.NET не пошлет таких каманд, а сразу откроет транзакцию и я увижу только SQLtransaction Begin.
29 авг 13, 22:03    [14773211]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
События в профайлере можно настроить так, что ничего,
кроме BEGIN TRAN и COMMIT TRAN, отслеживаться не будет.
Может, внимательно проверить, как настроен профайлер?
30 авг 13, 09:43    [14774251]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
konstantin_sam
Guest
iap,

>Может, внимательно проверить, как настроен профайлер?

Нет, я внимательно все включал.

Разве что есть еще секретные события, включаемые недокументированными комбинациями кнопок :-)
30 авг 13, 15:15    [14776614]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31991
iap
События в профайлере можно настроить так, что ничего,
кроме BEGIN TRAN и COMMIT TRAN, отслеживаться не будет.
Может, внимательно проверить, как настроен профайлер?
Я вроде всё смотрел. хотя и не совсем все события...
30 авг 13, 19:11    [14777781]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Нет строчек между событиями SQLtransaction Begin и Commit  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Вы нагрузку как смотрите? Надо по конкретному спиду значение CPU из sysprocesses - оно накапливает интегральное значение. Предположим вы так и смотрите - тогда чудес не бывает. Может уже запрос выполняется полчаса(и планирует еще полчаса выполнятся). Вы кильните процесс и увидите в компитед(в профайлере разумеется) последний запрос. Может вы не настроили stms или чего нибудь подобное. Резюме- чудес не бывает.
1 сен 13, 11:02    [14780764]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить