![]() |
![]() |
![]() |
|
Реиндексация базы SQL Server 2005 в автоматическом режиме | ☑ | ||
---|---|---|---|---|
0
Молодой 1Снег
18.09.08
✎
10:10
|
Есть здоровенная база SQL.
Каждый вечер стараюсь реиндексировать таким запросом: sp_msforeachtable N'DBCC DBREINDEX (''?'')' Запускать вручную надоело. Пытаюсь сделать запуск по расписанию, но не получается. Создал файлик SQLQuery1.sql, с таким содержанием: USE [1c81] GO sp_msforeachtable N'DBCC DBREINDEX (''?'')' GO Но при его запуске происходит остановка на окне подключения к базе. Подскажите, что добавить? |
|||
1
shachneff
18.09.08
✎
10:11
|
(0) Job тебе нужен
|
|||
2
d_Fedor
18.09.08
✎
10:14
|
Не проще ли в Maintenance Plan автоматом все настроить?
|
|||
3
ДенисЧ
18.09.08
✎
10:16
|
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
Молодой 1Снег
18.09.08
✎
10:27
|
(3) А вот это зачем?
> cmd.exe: > at \\SQLSERVER /every:mo,su,we,th,fr,su,st reindex.cmd |
|||
5
ДенисЧ
18.09.08
✎
10:28
|
(4) чтобы каждый день запускалось автоматически
|
|||
6
ДенисЧ
18.09.08
✎
10:28
|
+5 там ещё время нужно проставить, но тут уж сам разберёшься
|
|||
7
Молодой 1Снег
18.09.08
✎
11:07
|
А если нужно использовать идентификацию Windows, а не -U
|
|||
8
Молодой 1Снег
19.09.08
✎
11:08
|
Сделал как в (3), но не показывается сам процесс. Т.е. висит черное окно и мигает курсорчик, а идет индексация или нет не понятно.
Эксперементировать над серваком никак нельзя! А как Maintenance Plan запустить? Чето не найду. |
|||
9
ДенисЧ
19.09.08
✎
11:10
|
(8) пишем вместо msforeachtable свой цикл с курсором по всем таблицам и PRINT'им имя таблицы.
|
|||
10
Serg_1960
19.09.08
✎
11:41
|
Сорри, может быть я не в теме
Сайт 1С, выдержка из статьи "Эффективность использования индексов Microsoft SQL Server" Эту процедуру можно автоматизировать, написав скрипт на Transact-SQL, который будет исполнятся с требуемой периодичностью с помощью Microsoft SQL Server Agent. Пример подобного скрипта оформленный в виде хранимой процедуры: CREATE PROCEDURE DBReindex AS SET NOCOUNT ON DECLARE @TableName char(32) 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
Молодой 1Снег
19.09.08
✎
12:17
|
(10) ща покурю...
|
|||
12
Мелкий бес
19.09.08
✎
12:25
|
а я глупый, планы обслуживания из Management Studio пользую ...
|
|||
13
Serg_1960
19.09.08
✎
13:00
|
(12) Я совсем глюпий :) в очередной версии SQL - буду еще чего-нибудь "пользовать" :(
|
|||
14
Молодой 1Снег
19.09.08
✎
15:47
|
(12) я тоже в этом деле не особо шарю, но Планы обслуживания у меня не запускаются почемуто. ):
Ошибку выдает: ЗАГОЛОВОК: Microsoft SQL Server Management Studio ------------------------------ Адресат вызова создал исключение. (mscorlib) ------------------------------ ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ: Ошибка OLE DB 0x80004005 (Клиенту не удается установить связь) произошла при перечислении пакетов. Была вызвана инструкция SQL, завершившаяся ошибкой. ------------------------------ Ошибка OLE DB 0x80004005 (Клиенту не удается установить связь) произошла при перечислении пакетов. Была вызвана инструкция SQL, завершившаяся ошибкой. |
|||
15
Мелкий бес
19.09.08
✎
15:56
|
агента запусти
|
|||
16
Serg_1960
19.09.08
✎
16:02
|
Сержант! Ты 1Снег или где? Смирно, ровняйсь на http://www.infostart.ru/profile/19413/projects/1463/
|
|||
17
Молодой 1Снег
19.09.08
✎
16:10
|
(16) Я всего лишь мл. сержант. До сержанта не дослужился. ;)
|
|||
18
Александр_
Тверь 19.09.08
✎
16:19
|
(14) такая ошибка возникает, когда в SQL 2005 не хватает одного из пакетов. Одно время сталкивался с такой проблемой.
Решил простым путем, поставил все :) |
|||
19
Serg_1960
19.09.08
✎
16:20
|
(17) У меня давно уже по ночам "мелкий бес" по базам "шастает" - служебный пользователь запускается :) Почему не регламенты? Потому что у меня РИБ SQL-файловые версии. С недавнего времени этот "чертенок" стал и SQL-базу "обслуживать"...
|
|||
20
Молодой 1Снег
19.09.08
✎
16:28
|
У меня тоже ночью "демон" доки проводит. Вот хочу еще одного чтобы базу реиндексировал. А то после первого, поутру работать не возможно!
|
|||
21
bVana
19.09.08
✎
16:29
|
(0) а если не секрет - "здоровенная" это сколько?
|
|||
22
Молодой 1Снег
19.09.08
✎
16:30
|
(21) на данный момент 36 Гб
|
|||
23
Serg_1960
19.09.08
✎
16:32
|
(20) Ну так демону и карты в руки. Наследил - убери :о)
|
|||
24
Молодой 1Снег
19.09.08
✎
16:35
|
(23) попытаюсь присандалить к нему обработку (16). Тока пока не совсем понял, чего она делает.
|
|||
25
Serg_1960
19.09.08
✎
16:46
|
(24) Обработка делает переиндексацию... Это я для примера привел. Посмотрите алгоритм - на его основе можно и другие "вещи" делать...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |