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

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

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


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