Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / про компиляцию процедур вопрос / 5 сообщений из 5, страница 1 из 1
19.12.2001, 08:21
    #32019286
Alex_Open_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про компиляцию процедур вопрос
Есть здоровая процедура на 2000 сервере, 2600 строк, 80 кб скрипт. По ходу выполнения что-то там делает, готовит тексты писем к рассылке, рассчитывает и изменяет что-то в базе. Пользуется кучей таблиц. В некоторые моменты времени сервер очень долго (до 40 сек) только строит план выполнения. И ладно бы он один раз это делал, "слет" плана происходит где-то 10 раз в день (процедура используется относительно часто - каждую минуту точно). Другие процедуры, пользующиеся этими-же таблицами, свой план сохраняют. Тоесть изменяющейся статистикой таблиц это не объяснишь. Процедуру пробовал дробить на кучу мелких - тупит безбожно (теряет статистику временных таблиц при вложенных вызовах процедур) - короче, не помогло.

Хотелось бы услышать мысли и предложения.
...
Рейтинг: 0 / 0
19.12.2001, 17:03
    #32019365
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про компиляцию процедур вопрос
Как я понимаю, эта процедура не перекомпилируется, если ее план выполнения остается в процедурном кэше. Если она вытеснится из процедурного кэша, то рекомпиляция неизбежна, поскольку в процедуре задействованы временные таблицы.
...
Рейтинг: 0 / 0
20.12.2001, 16:18
    #32019468
Alex_Open_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про компиляцию процедур вопрос
Насколько я понимаю, изменение настройки сервера, касающихся "procedure cache", в 2000 невозможно.
анализ DBCC PROCCACHE дает мало инфомации.
Может я что-то не понимаю ? .....
...
Рейтинг: 0 / 0
20.12.2001, 17:41
    #32019478
про компиляцию процедур вопрос
Необходимо отметить, что в 7.0 и выше процедурный кэш вовсе не является таковым - он хранит планы для всех поступающих запросов. Отсюда естественная рекомендация - минимизировать количество различных запросов за счёт максимального использования запросов с параметрами.

Не пишите select Id, Name from Clients where Id = 6
А используйте параметры. select Id, Name from Clients where Id = ?
...
Рейтинг: 0 / 0
26.12.2001, 14:40
    #32019882
про компиляцию процедур вопрос
И ещё одно:
Использование временных таблиц в SP приводит к частой перекомпиляции SP.
Используйте вместо них переменные типа TABLE.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / про компиляцию процедур вопрос / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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