Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Долгая выборка из INSERTED\DELETED во временную таблицу / 25 сообщений из 138, страница 1 из 6
21.10.2014, 10:47
    #38782550
Долгая выборка из INSERTED\DELETED во временную таблицу
Добрый день, товарищи!
Столкнулся с проблемой долгой выборки из дрянотаблиц INSERTED\DELETED в [таблицу\временную_таблицу\табличную_переменную].

Конкретнее. Имеем два стейтмента.

SELECT "ПОЛЕ" INTO #T_INSERTED FROM INSERTED
и
SELECT "ПОЛЕ" INTO #T_INSERTED FROM "Таблица_на_которой_стоит_триггер"

В таблице 350000 записей. Проводится апдейт всех записей по некому полю, думаю не важно по какому.
Результат: 45сек и 0,5 сек. Притом результат один и тотже что выбирать ВСЕ столбцы, что один какой либо. Даже если написать
SELECT 1 INTO #T_INSERTED FROM INSERTED
, то всеравно будет тарабанить 45 сек.

Кто сталкивался? Есть вообще идеи почему к обращению к INSERTED\DELETED идет так долго?
з.ы. SELECT 1 FROM INSERTED тоже тарабанит 45 сек. Вообще без разницы что пытаешься сделать- время всегда одно и тоже. Ну за исключением попытки фильтрации и сортировки оных псевдотейблов.
...
Рейтинг: 0 / 0
21.10.2014, 10:56
    #38782568
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
АцкийСкотона,

это для выполнения DSQL в триггере?
Или для выполнения процедуры, обрабатывающей inserted/deleted?

В других случаях не могу представить, зачем копировать эти псевдотаблицы во временные
...
Рейтинг: 0 / 0
21.10.2014, 11:01
    #38782574
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
И какие ожидания у сессии во время этих 45 секунд?
...
Рейтинг: 0 / 0
21.10.2014, 11:01
    #38782575
Долгая выборка из INSERTED\DELETED во временную таблицу
Да, мне надо их потом, асинхронно обработать. Для логирования вобщем надо. :)
...
Рейтинг: 0 / 0
21.10.2014, 11:02
    #38782577
Долгая выборка из INSERTED\DELETED во временную таблицу
pkarklin,

Никаких. Нулл в типе ожидания.
...
Рейтинг: 0 / 0
21.10.2014, 11:04
    #38782580
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
АцкийСкотонаpkarklin,

Никаких. Нулл в типе ожидания.

Запускайте UPDATE с включенным SET STATISTICS TIME и IO. Посмотрим, на что тратится время.
...
Рейтинг: 0 / 0
21.10.2014, 11:05
    #38782582
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
АцкийСкотонаpkarklin,

Никаких. Нулл в типе ожидания.
а в ресурсе?
...
Рейтинг: 0 / 0
21.10.2014, 11:07
    #38782584
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
АцкийСкотонаПритом результат один и тотже что выбирать ВСЕ столбцы, что один какой либо.Точно? А то, может, на таблице есть индекс с искомым полем, а таблица широкая...

Да, с таким не сталкивался...
...
Рейтинг: 0 / 0
21.10.2014, 11:11
    #38782588
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
Предлагаете угадать, что Вы написали в триггере?
...
Рейтинг: 0 / 0
21.10.2014, 11:13
    #38782589
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
Владислав КолосовПредлагаете угадать, что Вы написали в триггере?А как от этого может зависеть операция "SELECT "ПОЛЕ" INTO #T_INSERTED FROM INSERTED"? Зачем эта информация нужна?
...
Рейтинг: 0 / 0
21.10.2014, 11:19
    #38782595
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
alexeyvgВладислав КолосовПредлагаете угадать, что Вы написали в триггере?А как от этого может зависеть операция "SELECT "ПОЛЕ" INTO #T_INSERTED FROM INSERTED"? Зачем эта информация нужна?А я подозреваю, что копирование deleted/inserted вообще не нужно.
...
Рейтинг: 0 / 0
21.10.2014, 11:38
    #38782615
Долгая выборка из INSERTED\DELETED во временную таблицу
2pkarklin, для инсертеда статистика ИО не доступна. По крайней мере мне не выдает. Только по физической табличке.

2Владислав Колосов, так я написал же что там. там сейчас два запроса. Вам прямо конкретные названия моих таблиц надо? Бесполезны они вам будут. :)

2iap, я с радостью с Вам потрещу по этой теме потом. Когда Вы столкнетесь с необходимостью логирования изменений большго объема. :)
...
Рейтинг: 0 / 0
21.10.2014, 11:38
    #38782616
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
iap, да, как-то подозрительно выглядит.
Не факт, что всё происходит так, как описывает автор.
...
Рейтинг: 0 / 0
21.10.2014, 11:39
    #38782618
Долгая выборка из INSERTED\DELETED во временную таблицу
msLex, в ресурсе тоже пусто.
...
Рейтинг: 0 / 0
21.10.2014, 11:39
    #38782619
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
АцкийСкотона, только одна строчка в триггере?
...
Рейтинг: 0 / 0
21.10.2014, 11:44
    #38782626
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
АцкийСкотона2pkarklin, для инсертеда статистика ИО не доступна. По крайней мере мне не выдает. Только по физической табличке.

Ну так покажите, что Вы получили, выполняя UPDATE при установленных SETах.
...
Рейтинг: 0 / 0
21.10.2014, 11:45
    #38782627
Долгая выборка из INSERTED\DELETED во временную таблицу
2Владислав Колосов, товарищ, давайте вы найдете где-нибудь у себя в закромах табличку с 300000+ записей и с порядка 70 полями. Запустите апдейт какого-либо поля по всем записям, в триггере напишете SELECT 1 FROM INSERTED , заключив этот запрос в SELECT GETUTCDATE() . И только потом будете утверждать что я что то тут выдумываю. Договорились? ;)
...
Рейтинг: 0 / 0
21.10.2014, 11:47
    #38782629
Долгая выборка из INSERTED\DELETED во временную таблицу
pkarklin, "Table 'FD_Charge_Details'. Scan count 566, logical reads 8981, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0."

Владислав, Остальное в тирггере не выполняется. После обозначенных запросов ретурн поставл я.
...
Рейтинг: 0 / 0
21.10.2014, 11:49
    #38782632
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
АцкийСкотонаКогда Вы столкнетесь с необходимостью логирования изменений большго объема. :)Ой, и правда! Что же я все эти 17 лет делал-то?!
Ни разу не логировал такие серьёзные таблицы!
...
Рейтинг: 0 / 0
21.10.2014, 11:50
    #38782634
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
АцкийСкотоназаключив этот запрос в SELECT GETUTCDATE() .Это как?
...
Рейтинг: 0 / 0
21.10.2014, 11:50
    #38782635
Долгая выборка из INSERTED\DELETED во временную таблицу
iap, таки у вас есть способ решить проблему с которой я столкнулся или нет? :) давайте по существу пожалуйста. :)
...
Рейтинг: 0 / 0
21.10.2014, 11:52
    #38782638
Долгая выборка из INSERTED\DELETED во временную таблицу
iap, это вот таг. :)
...
Рейтинг: 0 / 0
21.10.2014, 11:53
    #38782640
Долгая выборка из INSERTED\DELETED во временную таблицу
iap, пардон. рука на контролэнтер дрогнула. :)

SET STATISTICS IO ON
SET STATISTICS TIME ON
SELECT GETUTCDATE(), 'START'


SELECT F_Division, LINK INTO #T_INSERTED FROM INSERTED
SELECT GETUTCDATE(), 'INSERTED'



SELECT * INTO #T_INSERTED2 FROM PE.FD_Charge_Details
SELECT GETUTCDATE(), 'FD_Charge_Details'


SET STATISTICS TIME OFF
SET STATISTICS IO OFF
...
Рейтинг: 0 / 0
21.10.2014, 11:53
    #38782641
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
АцкийСкотонаpkarklin, "Table 'FD_Charge_Details'. Scan count 566, logical reads 8981, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0."

Владислав, Остальное в тирггере не выполняется. После обозначенных запросов ретурн поставл я.

А статистика TIME? Если триггера нет, что будет со статистикой?
...
Рейтинг: 0 / 0
21.10.2014, 11:55
    #38782643
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая выборка из INSERTED\DELETED во временную таблицу
АцкийСкотона,

SET установите в баче, который запускает UPDATE, а не в триггере.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Долгая выборка из INSERTED\DELETED во временную таблицу / 25 сообщений из 138, страница 1 из 6
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]