Реиндексация базы SQL Server 2005 в автоматическом режиме #362319


#0 by Молодой 1Снег
Есть здоровенная база SQL. Каждый вечер стараюсь реиндексировать таким запросом: sp_msforeachtable N'DBCC DBREINDEX (''?'')' Запускать вручную надоело. Пытаюсь сделать запуск по расписанию, но не получается. Создал файлик SQLQuery1.sql, с таким содержанием: USE [1c81] GO sp_msforeachtable N'DBCC DBREINDEX (''?'')' GO Но при его запуске происходит остановка на окне подключения к базе. Подскажите, что добавить?
#1 by shachneff
Job тебе нужен
#2 by d_Fedor
Не проще ли в Maintenance Plan автоматом все настроить?
#3 by ДенисЧ
reindex.bat: sqlcmd -S MyServer -U MyUser -P MyPass -i reindex.sql reindex.sql USE [1c81] GO sp_msforeachtable N'DBCC DBREINDEX (''?'')' GO cmd.exe: at \SQLSERVER /every:mo,su,we,th,fr,su,st reindex.cmd
#4 by Молодой 1Снег
А вот это зачем? > cmd.exe: > at \SQLSERVER /every:mo,su,we,th,fr,su,st reindex.cmd
#5 by ДенисЧ
чтобы каждый день запускалось автоматически
#6 by ДенисЧ
+5 там ещё время нужно проставить, но тут уж сам разберёшься
#7 by Молодой 1Снег
А если нужно использовать идентификацию Windows, а не -U
#8 by Молодой 1Снег
Сделал как в , но не показывается сам процесс. Т.е. висит черное окно и мигает курсорчик, а идет индексация или нет не понятно. Эксперементировать над серваком никак нельзя! А как Maintenance Plan запустить? Чето не найду.
#9 by ДенисЧ
пишем вместо msforeachtable свой цикл с курсором по всем таблицам и PRINT'им имя таблицы.
#10 by Serg_1960
Сорри, может быть я не в теме Сайт 1С, выдержка из статьи "Эффективность использования индексов Microsoft SQL Server" Эту процедуру можно автоматизировать, написав скрипт на Transact-SQL, который будет исполнятся с требуемой периодичностью с помощью Microsoft SQL Server Agent. Пример подобного скрипта оформленный в виде хранимой процедуры: CREATE PROCEDURE DBReindex AS  SET NOCOUNT ON  DECLARE @TableName char  DECLARE SysCur CURSOR FOR SELECT name FROM sysobjects WHERE type='U'  OPEN SysCur  FETCH NEXT FROM SysCur INTO @TableName  WHILE @@FETCH_STATUS=0 BEGIN      DBCC DBREINDEX(@TableName)      FETCH NEXT FROM SysCur INTO @TableName  END  CLOSE SysCur  DEALLOCATE SysCur Аналогичный результат можно получит с помощью Database Maintenance Plan Wizard из SQL Server Enterprise Manager.
#11 by Молодой 1Снег
ща покурю...
#12 by Мелкий бес
а я глупый, планы обслуживания из Management Studio пользую ...
#13 by Serg_1960
Я совсем глюпий :) в очередной версии SQL - буду еще чего-нибудь "пользовать" :(
#14 by Молодой 1Снег
я тоже в этом деле не особо шарю, но Планы обслуживания у меня не запускаются почемуто. ): Ошибку выдает: ЗАГОЛОВОК: Microsoft SQL Server Management Studio ------------------------------ Адресат вызова создал исключение. (mscorlib) ------------------------------ ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ: Ошибка OLE DB 0x80004005 (Клиенту не удается установить связь) произошла при перечислении пакетов. Была вызвана инструкция SQL, завершившаяся ошибкой. ------------------------------ Ошибка OLE DB 0x80004005 (Клиенту не удается установить связь) произошла при перечислении пакетов. Была вызвана инструкция SQL, завершившаяся ошибкой.
#15 by Мелкий бес
агента запусти
#16 by Serg_1960
Сержант! Ты 1Снег или где? Смирно, ровняйсь на
#17 by Молодой 1Снег
Я всего лишь мл. сержант. До сержанта не дослужился. ;)
#18 by Александр_Тверь
такая ошибка возникает, когда в SQL 2005 не хватает одного из пакетов. Одно время сталкивался с такой проблемой. Решил простым путем, поставил все :)
#19 by Serg_1960
У меня давно уже по ночам "мелкий бес" по базам "шастает" - служебный пользователь запускается :) Почему не регламенты? Потому что у меня РИБ SQL-файловые версии. С недавнего времени этот "чертенок" стал и SQL-базу "обслуживать"...
#20 by Молодой 1Снег
У меня тоже ночью "демон" доки проводит. Вот хочу еще одного чтобы базу реиндексировал. А то после первого, поутру работать не возможно!
#21 by bVana
а если не секрет  - "здоровенная" это сколько?
#22 by Молодой 1Снег
на данный момент 36 Гб
#23 by Serg_1960
Ну так демону и карты в руки. Наследил - убери :о)
#24 by Молодой 1Снег
попытаюсь присандалить к нему обработку . Тока пока не совсем понял, чего она делает.
#25 by Serg_1960
Обработка делает переиндексацию... Это я для примера привел. Посмотрите алгоритм - на его основе можно и другие "вещи" делать...
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С