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

Откуда:
Сообщений: 297
Здравствуйте, есть одна храницмая процедура с MERGE, суть в том что если убрать
OUTPUT $action, INSERTED.ID, DELETED.ID;
, то хранимая процедура выполняется бесконечно долго. Как только я комментирую эту строчку ХП выполняется за 30 сек. MERGE в качестве источника содержит запрос с линкед сервером во FROM. Раньше эта ХП нормльно выполнялась. WITH RECOMPILE пробовал. В чем может быть проблема? Заранее спасибо.
26 сен 12, 17:12    [13227311]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
kalimba
Member

Откуда:
Сообщений: 297
Пардон, имелось в виду "есть одна храницмая процедура с MERGE, суть в том что если написать
OUTPUT $action, INSERTED.ID, DELETED.ID;
, то хранимая процедура выполняется бесконечно долго."
26 сен 12, 17:18    [13227367]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
Гость189
Guest
kalimba,
насколько высока необходимость этого стейтмента? Вы эти данные потом чем то перехыватываете?
26 сен 12, 17:19    [13227379]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
kalimba
Member

Откуда:
Сообщений: 297
Гость189
kalimba,
насколько высока необходимость этого стейтмента? Вы эти данные потом чем то перехыватываете?
Как ни странно, но нужно банально знать количество новых записей и количество обновленных :) . Тут больше непонятка для меня почему это раньше прекрасно работало...
26 сен 12, 17:21    [13227400]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
Glory
Member

Откуда:
Сообщений: 104760
kalimba
, то хранимая процедура выполняется бесконечно долго."

И вы анализировали состояние коннекта, в котором выполняется процедура ?
26 сен 12, 17:21    [13227401]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
kalimba
Member

Откуда:
Сообщений: 297
Glory
kalimba
, то хранимая процедура выполняется бесконечно долго."

И вы анализировали состояние коннекта, в котором выполняется процедура ?
Что именно имеете в виду? В активити мониторе и профайлере вижу что выполняется команда MERGE, но окончания я так и не смог дождаться.
26 сен 12, 17:23    [13227417]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
Glory
Member

Откуда:
Сообщений: 104760
kalimba
Что именно имеете в виду? В активити мониторе и профайлере вижу что выполняется команда MERGE, но окончания я так и не смог дождаться.

Блокировки, например. Активность диска. И сети.
26 сен 12, 17:27    [13227450]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
kalimba
Member

Откуда:
Сообщений: 297
Glory
kalimba
Что именно имеете в виду? В активити мониторе и профайлере вижу что выполняется команда MERGE, но окончания я так и не смог дождаться.

Блокировки, например. Активность диска. И сети.
Блокировки нет, насчет диска и интернета тоже думал, но это не объясняет причину почему без OUTPUT ХП прекрасно выполняется... Оба инстанса (и целевой и которой линкед сервер) перезапускал - тоже самое.
26 сен 12, 17:29    [13227473]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
Glory
Member

Откуда:
Сообщений: 104760
kalimba
но это не объясняет причину почему без OUTPUT ХП прекрасно выполняется...

А вы думаете, что для формирования OUTPUT серверу не нужно никаких ресурсов ?
Что выходной набор сам собой получится ?
26 сен 12, 17:32    [13227480]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
kalimba
Member

Откуда:
Сообщений: 297
Glory
kalimba
но это не объясняет причину почему без OUTPUT ХП прекрасно выполняется...

А вы думаете, что для формирования OUTPUT серверу не нужно никаких ресурсов ?
Что выходной набор сам собой получится ?
Я правильно понимаю что мне нужно смотреть диск в Мониторе ресурсов?
26 сен 12, 17:36    [13227506]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
Посмотрите профайлером что происходит на прилинкованном сервере в обоих случаях, с OUTPUT и без. Увидите разницу.
До этого вы смотрели профайлером на том сервере, где исполняете запрос MERGE, но не на прилинкованном.
26 сен 12, 17:57    [13227631]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
Vaja
Member

Откуда:
Сообщений: 49
DECLARE @table (column1 int,column2 money......)
INSERT INTO @table (column1,column2......)
SELEC column1,column2...... FROM linkedserver..linkedtable
-- Провер время испольнеия (1)

MERGE <mergedtable> AS target
USING (SELECT column1,column2...... FROM @table) AS source (column1,column2......)
ON (target.column1= source.column1)
WHEN MATCHED ....
THEN UPDATE...
WHEN ....
DELETE
OUTPUT $action, Inserted.column1, Deleted.column1
-- Провер время испольнеия (2)
26 сен 12, 18:44    [13227865]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
Glory
Member

Откуда:
Сообщений: 104760
kalimba
Я правильно понимаю что мне нужно смотреть диск в Мониторе ресурсов?

Нужно смотреть все, что возможно. Для установления каких то причинно-следственных связей
Загрузку процессора, кэша, дисковой ситемы в целом, по базам(tempdb, например), что происходит на линкед сервере и тп.
А начать можно с проверки, установлены ли последние патчи на сервер и плана выполнения.
27 сен 12, 09:19    [13229667]     Ответить | Цитировать Сообщить модератору
 Re: MERGE и OUTPUT  [new]
kalimba
Member

Откуда:
Сообщений: 297
Сегодня в джобе таки всплыло:
Transaction (Process ID n) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. [SQLSTATE 42000] (Ошибка 50000)
. Где можно почитать про блокировки? Заранее благодарен)
28 сен 12, 11:01    [13237169]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить