Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как обновить все stored процедуры? / 11 сообщений из 11, страница 1 из 1
09.10.2002, 00:30:07
    #32056572
Стрелок
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить все stored процедуры?
Добавил несколько индексов к таблицам, нужно обновить все stored процедуры чтобы они эти индексы использовали. Вручную по одной обновлять долго.
MSSQL 6.5
...
Рейтинг: 0 / 0
09.10.2002, 09:14:25
    #32056601
Trong
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить все stored процедуры?
Сделать скрипт со всех процедур и в фалике по F4 или кто там ближе заменить.
...
Рейтинг: 0 / 0
09.10.2002, 09:29:52
    #32056606
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить все stored процедуры?
Я пользуюсь такой штукой. Очччень полезная весчь.
Код: 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
09.10.2002, 09:38:01
    #32056609
Предводитель команчей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить все stored процедуры?
Всем привет.
2 Garya.
Фрагмент вашего скрипта :

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

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

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

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

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


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