![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Имеется длинный SQL код. Один и тот же код работает в квери аналайзере в несколько раз быстрее, чем в SP. С компиляцией вроде не связано - так как повторное выполнение столь же длительное
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
SergKO |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 14.3.2005 Репутация: 17 Всего: 20 |
1. Vit, посмотрите какие SET посылаются при установлении коннекта из Q&A и из Вашего приложения.
2. В отдельных случаях рекомпиляция может производиться и при повторных вызовах. Один из вариантов - в процедуре создается временная таблица, а операции с этой таблицей производятся в другой процедуре, вызываемой из первой. В следующем примере при любом вызове процедуры spTst будет рекомпиляция процедуры spSubTst
3. Посмотрите какой конкретно стейтмент "тормозит". 4. Приложение и Q&A запускаются на одном и том-же компьютере? Это сообщение отредактировал(а) SergKO - 11.7.2007, 11:52 |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
1. и хранимка и код вызывал из одного и того же окна QA
2. хранимок не вызывается 3. вот етот, причем при запуске просто в QA выполняется 1 сек, в хранимке - пол часа
4. О приложении речь не идет - все в QA с одного и того же окна -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
SergKO |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 14.3.2005 Репутация: 17 Всего: 20 |
1. Первое, что приходит в голову - используются разные планы. Если не затруднит, то покажите оба в текстовом виде. Я всречал несколько раз сообщения о том, что такие вещи происходили после перехода с 7 на 2000 (у Вас не было такого перехода совсем недавно?). Оптимизаторы разные.
2. Попробуйте реиндекс и обновите статистику. 3. Если объем данных большой, то при выборе неудачного плана скорее всего начинается spool во время INSERTA (посмотрите Profiler'ом). 4. Попробуйте разложить запрос на подзапросы и выполняйте постепенно усложняя. Для начала попробуйте SELECT без INSERTA. PS мелкая придирка DateAdd(yy, -2, @RD) лучше вычислить заранее и подставить вместо p.RunDate >= DateAdd(yy, -2, @RD) переменную. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Примерно так и поступил, решило проблему разбиение на несколько запросов
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS SQL" | |
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS SQL Server | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |