powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как обновить все stored процедуры?
11 сообщений из 11, страница 1 из 1
Как обновить все stored процедуры?
    #32056572
Стрелок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил несколько индексов к таблицам, нужно обновить все stored процедуры чтобы они эти индексы использовали. Вручную по одной обновлять долго.
MSSQL 6.5
...
Рейтинг: 0 / 0
Как обновить все stored процедуры?
    #32056601
Trong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделать скрипт со всех процедур и в фалике по F4 или кто там ближе заменить.
...
Рейтинг: 0 / 0
Как обновить все stored процедуры?
    #32056606
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пользуюсь такой штукой. Очччень полезная весчь.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE procedure AllRecompile
as
set nocount on
declare @Name varchar( 250 )
declare @XType varchar( 2 )
declare curs cursor for select [name], XType from sysobjects where not XType in ('S', 'D', 'C', 'F', 'PK', 'UQ', 'TF')
open curs
fetch next from curs into @Name, @XType
while @@fetch_status= 0 
	begin
	exec sp_recompile @Name
	if @XType='U'
		DBCC DBREINDEX (@Name)
	fetch next from curs into @Name, @XType
	end
close curs
deallocate curs
...
Рейтинг: 0 / 0
Как обновить все stored процедуры?
    #32056609
Предводитель команчей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
2 Garya.
Фрагмент вашего скрипта :

exec sp_recompile @Name
if @XType='U'
DBCC DBREINDEX (@Name)

А может лучше поменять местами строки с перекомпиляцией и дефрагментацией индекса ? Я думаю, что перекомпиливать процедуру нужно после дефрагментации индекса. Или это не принципиально ?
Удачи.
...
Рейтинг: 0 / 0
Как обновить все stored процедуры?
    #32056624
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Предводитель команчей
Это не принципиально. На самом деле sp_recompile не перекомпилирует процедуры, а ставит флаг, что при запуске процедура должна быть перекомпилирована. При компиляции этот флаг сбрасывается.
...
Рейтинг: 0 / 0
Как обновить все stored процедуры?
    #32056634
Trong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я что-то, наверное, не понял ...

ИМХО вопрос был поставлен так: были таблицы, в них небыло индексов. написали процедуры в которых индексы не учитывались по причине отсутствия. Потом их добавили и появилась необходимость процедурки подправить и указать в явном виде где какие индексы пользовать.

Как это связано с DBCC DBREINDEX (@Name)?
...
Рейтинг: 0 / 0
Как обновить все stored процедуры?
    #32056709
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А при ALTER PROCEDURE она разве не рекомпайлится?
...
Рейтинг: 0 / 0
Как обновить все stored процедуры?
    #32056728
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALTER PROCEDURE в 6.5 еще не было :)
...
Рейтинг: 0 / 0
Как обновить все stored процедуры?
    #32056752
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сори, к хорошему быстро привыкаешь.
...
Рейтинг: 0 / 0
Как обновить все stored процедуры?
    #32056871
Стрелок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо

Для Trong: под словом обновить я имел ввиду перекомпиляцию, а принудительное использование индексов может сильно навредить.
...
Рейтинг: 0 / 0
Как обновить все stored процедуры?
    #32056883
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не использование индексов, а переиндексация. обычно от нее вреда меньше, чем пользы. Если только эта перация не делается в период пиковой нагрузки на систему.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как обновить все stored процедуры?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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