Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
День добрый. Столкнулся с проблемой. Update запрос на котором срабатывает триггер вида: CREATE TRIGGER CART1_PF AFTER UPDATE OF CF ON CART1 REFERENCING OLD AS or NEW AS nr FOR EACH ROW MODE DB2SQL BEGIN ATOMIC внутри пара select/update/delete Так вот компиляция этого апдейта занимает секунд 20. Возможно ли создание прекопиленого тригерра? Или каким иным способом избежать такой долгой компиляции запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 20:44 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Также замечу, что непосредственно исполнение запроса исполняет потом меньше секунды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 20:47 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
set current query optimization= от 0 до 9 дают колебания в скорости компиляции в пределах 3 секунд и значительного прироста скорости не дают :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 21:44 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Dmitry Y.Так вот компиляция этого апдейта занимает секунд 20. Возможно ли создание прекопиленого тригерра? Или каким иным способом избежать такой долгой компиляции запроса? Я правильно понял, что время компиляции вы определяете, выдавая последовательные команды Код: plaintext Или еще как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 09:32 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Да именно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 13:49 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Попробуйте завенуть команды изменения в процедуру (со статическим вызовом команд) или табличную функцию. Оформите их как modifies sql data. Должно прокатить, т.к. при создании процедуры (функции) статические команды должны скомпилироваться и упасть в пакет. Сообщите о результатах, пожалуйста... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 15:47 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Да уже пошел по этому пути. Стало все работать моментом. Правда, пока не знаю как реализовать рекурсию в процедурах - возможно ли это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 16:06 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Рекурсию можно делать SQL оператором. DB2 Cookbook!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 16:09 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
А конкретно? Вызов процедуры самой из себя обламывается еще на стации ее создания: Код: plaintext 1. Нужен какой-то predefine как это делается в C++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 16:25 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 16:33 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Там про рекурсивный Call ничего нет - или укажите страницу раз я так слеп. УРЛ ссылок накидать и послать на гугл каждый может. Я просил конкретно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 16:47 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Николай хотел сказать, что не надо рекурсивно процедуру, если можно сделать в процедуре рекурсивный SQL запрос. И вызвать процедуру один раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 16:58 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 17:00 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Спасибо Mark! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 17:01 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
тогда я понял Николая неверно. О как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 17:08 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
В финале отказался от триггеров вообще - все перенесено на процедуры. То что работало минутами - сейчас исполняетчся меньше секунды. Я счастлив! :) Спасибо Mark еще раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 17:31 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
интересно, а в чем таки была проблема - что, каждый раз пере выполнением запроса он компилился? В cashe не попадал? Почему так критично время компиляции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 17:42 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
При создании триггера не создается пакет, т.е. ничего не компилируется, а используется в runtime для окончательного построения команд. Поэтому, если в триггере вставили сложную команду, которая долго компилится, то оно так и будет каждый раз при активации триггера компилиться, а потом выполняться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 17:56 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Mark - точно, факт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 20:29 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinПопробуйте завенуть команды изменения в процедуру (со статическим вызовом команд) или табличную функцию. Оформите их как modifies sql data. Должно прокатить, т.к. при создании процедуры (функции) статические команды должны скомпилироваться и упасть в пакет. Сообщите о результатах, пожалуйста... Хм. Разве табличные функции не компилируются вместе с вызвавшим их SQL-выражением, как и триггеры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 08:47 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Dmitry Y.В финале отказался от триггеров вообще - все перенесено на процедуры. Так ведь можно было просто вызвать SP из триггера. (Интересно, что можно было наворотить в запросе, чтобы даже на нулевом уровне оптимизации оно долго компилировалось?...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 08:55 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
я тут на днях читал документ, описание Информационной Системы (проектируемой) Так в нем в первом же абзаце, в определениях, что-то типа "Информационная система - база данных, в которой хранятся..." Вот так вот. С таким подходом можно и не таких дров наломать. Все глюки заложены еще на этапе проектирования... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 09:03 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Victor MetelitsaХм. Разве табличные функции не компилируются вместе с вызвавшим их SQL-выражением, как и триггеры? Да, верно. Насчет табличных функций я ошибся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 10:13 |
|
||
|
Очень долгий Compiling SQL Stmt
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinПри создании триггера не создается пакет, т.е. ничего не компилируется, а используется в runtime для окончательного построения команд. Поэтому, если в триггере вставили сложную команду, которая долго компилится, то оно так и будет каждый раз при активации триггера компилиться, а потом выполняться... Не согласен. Откомпили любую процедуру, и увидишь как триггер вставился в план процедуры... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 17:50 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=33779417&tid=1605294]: |
0ms |
get settings: |
12ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 269ms |
| total: | 443ms |

| 0 / 0 |
