|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
Добрый день, товарищи! Столкнулся с проблемой долгой выборки из дрянотаблиц 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 сек. Вообще без разницы что пытаешься сделать- время всегда одно и тоже. Ну за исключением попытки фильтрации и сортировки оных псевдотейблов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 10:47 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
АцкийСкотона, это для выполнения DSQL в триггере? Или для выполнения процедуры, обрабатывающей inserted/deleted? В других случаях не могу представить, зачем копировать эти псевдотаблицы во временные ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 10:56 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
И какие ожидания у сессии во время этих 45 секунд? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:01 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
Да, мне надо их потом, асинхронно обработать. Для логирования вобщем надо. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:01 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
pkarklin, Никаких. Нулл в типе ожидания. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:02 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
АцкийСкотонаpkarklin, Никаких. Нулл в типе ожидания. Запускайте UPDATE с включенным SET STATISTICS TIME и IO. Посмотрим, на что тратится время. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:04 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
АцкийСкотонаpkarklin, Никаких. Нулл в типе ожидания. а в ресурсе? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:05 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
АцкийСкотонаПритом результат один и тотже что выбирать ВСЕ столбцы, что один какой либо.Точно? А то, может, на таблице есть индекс с искомым полем, а таблица широкая... Да, с таким не сталкивался... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:07 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
Предлагаете угадать, что Вы написали в триггере? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:11 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
Владислав КолосовПредлагаете угадать, что Вы написали в триггере?А как от этого может зависеть операция "SELECT "ПОЛЕ" INTO #T_INSERTED FROM INSERTED"? Зачем эта информация нужна? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:13 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
alexeyvgВладислав КолосовПредлагаете угадать, что Вы написали в триггере?А как от этого может зависеть операция "SELECT "ПОЛЕ" INTO #T_INSERTED FROM INSERTED"? Зачем эта информация нужна?А я подозреваю, что копирование deleted/inserted вообще не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:19 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
2pkarklin, для инсертеда статистика ИО не доступна. По крайней мере мне не выдает. Только по физической табличке. 2Владислав Колосов, так я написал же что там. там сейчас два запроса. Вам прямо конкретные названия моих таблиц надо? Бесполезны они вам будут. :) 2iap, я с радостью с Вам потрещу по этой теме потом. Когда Вы столкнетесь с необходимостью логирования изменений большго объема. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:38 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
iap, да, как-то подозрительно выглядит. Не факт, что всё происходит так, как описывает автор. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:38 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
msLex, в ресурсе тоже пусто. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:39 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
АцкийСкотона, только одна строчка в триггере? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:39 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
АцкийСкотона2pkarklin, для инсертеда статистика ИО не доступна. По крайней мере мне не выдает. Только по физической табличке. Ну так покажите, что Вы получили, выполняя UPDATE при установленных SETах. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:44 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
2Владислав Колосов, товарищ, давайте вы найдете где-нибудь у себя в закромах табличку с 300000+ записей и с порядка 70 полями. Запустите апдейт какого-либо поля по всем записям, в триггере напишете SELECT 1 FROM INSERTED , заключив этот запрос в SELECT GETUTCDATE() . И только потом будете утверждать что я что то тут выдумываю. Договорились? ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:45 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
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." Владислав, Остальное в тирггере не выполняется. После обозначенных запросов ретурн поставл я. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:47 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
АцкийСкотонаКогда Вы столкнетесь с необходимостью логирования изменений большго объема. :)Ой, и правда! Что же я все эти 17 лет делал-то?! Ни разу не логировал такие серьёзные таблицы! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:49 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
АцкийСкотоназаключив этот запрос в SELECT GETUTCDATE() .Это как? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:50 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
iap, таки у вас есть способ решить проблему с которой я столкнулся или нет? :) давайте по существу пожалуйста. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:50 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
iap, это вот таг. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:52 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:53 |
|
Долгая выборка из INSERTED\DELETED во временную таблицу
|
|||
---|---|---|---|
#18+
АцкийСкотона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? Если триггера нет, что будет со статистикой? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2014, 11:53 |
|
|
start [/forum/topic.php?fid=46&msg=38782619&tid=1700245]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 248ms |
total: | 391ms |
0 / 0 |