Любая база данных нуждается в регулярном обслуживании. Особенно если она достигает достаточно большого объема или содержит транзакции за большой период.
Т.к. Рестарт в качестве СУБД использует Microsoft SQL Server, то и обслуживание баз может производиться его же средствами.
Если же у вас стоит бесплатная версия (SQL Express, по умолчанию входящий в дистрибутив), то придется запускать процедуру обслуживания вручную. Физически это выражается в запуске 4-х скриптов. Что вам для этого понадобится:
1. Установить средство управления SQL сервером. Найдите в дистрибутиве программу SQLManagementStudioExpress и установите ее. 2. Скачать архив со скриптами:
ВНИМАНИЕ: текст третьего скрипта имеет вид: sp_msforeachtable N'DBCC INDEXDEFRAG (RestartMain, ''?'')', где RestartMain это название базы данных. Если у вас другое название, то укажите его в скрипте.
Время выполнения скриптов зависит только от размеров БД и может достигать нескольких десятков минут. Будьте терпеливы и не прерывайте процесс принудительно.
В обязательном порядке перед запуском скриптов сделайте бэкап базы данных.
Автоматическое обслуживание бд. Создаем 4 текстовых файла: первый допустим назовем "statAndcache.sql" тоесть обновление статистик и процедурного кеша с текстом внутри exec sp_updatestats DBCC FREEPROCCACHE Второй reindex.sql реиндексация индексов с текстом: sp_msforeachtable N'DBCC DBREINDEX (''?'')' Третий назовем backupANDtrans.sql где делается бекап и дефрагментация индексов с текстом ALT ER DATABASE [restartmain] SET RECOVERY SIMPLE DBCC SHRINKFILE (N'restartmain_log' , 128, TRUNCATEONLY ) ALT ER DATABASE [restartmain] SET RECOVERY FULL -- BACKUP DATABASE [restartmain] TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\pos.bak' WITH NOFORMAT, NOINIT, NAME = N'restartmain_full_backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 где restartmain — это название БД, а TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\pos.bak это путь куда будут сохранятся бекапы (можете указать свой путь) И наконец четвертый файл где у нас будут запускаться предыдущие три файла, назовем его optimpiz.bat с текстом внутри sqlcmd -S term1\restart -U sa -P rarus -d restartmain -i "C:\backupANDtrans.sql" sqlcmd -S term1\restart -U sa -P rarus -d restartmain -i "C:\statANDcashe.sql" sqlcmd -S term1\restart -U sa -P rarus -d restartmain -i "C:\reindex.sql" где term1 название компьютера где БД, restartmain название БД — (если у вас отличное от этого, меняйте на свое) Потом в стандартном Виндовс планировщике создаем задание на выполнение файла optimiz.bat с указанием времени и дней когда оно у нас будет выполняться. P.S Все файлы "кидаем" в одно место, допустим на диск С:\
Виталий продемонстрировал один из способов замены стандартных "планов обслуживания", отсутствующих в бесплатной поставке MS SQL Server. Спасибо за подробную инструкцию! Попробую использовать в работе.