Есть мнение, что для ускорения работы SQL следует временную базу tempDB переносить на отдельный диск, а лучше на быстрый отдельный диск.
Но есть вариант быстрого отдельного диска, да ещё и бесплатного!
RAM-диск рекомендует сам Гилёв (оптимизатор от 1С).
Тему использования ram-диска надо изучать весьма глубоко. Попробовал перенести tempdb на ram-диск, предварительно его выделив из оперативной памяти на сервере 1С. Использовал Qsoft RAMDisk - он для россиян бесплатен (был во всяком случае). Тема на 4pda.ru. Сайт производителя - тут.
В общем настроил по найденным гайдам и собственной интуиции. Сервер потребовал пререзагрузку. После перезагрузки перенёс tempDB известными запросами:
USE master;
GO
ALTER DATABASE TEMPDB
MODIFY FILE (NAME='tempdb',
FILENAME='B:\TempDB_Data\tempdb.mdf');
GO
ALTER DATABASE TEMPDB
MODIFY FILE (NAME='templog',
FILENAME='B:\TempDB_Log\templog.ldf');
Всё работало несколько недель. Но косяк таки случился. Что именно быстрое чтение логов не позволило найти.
Но из них стало понятно, что есть проблемы старта sql из-за невозможности создания tempdb по новому расположению.
Самообладание не позволило поддастся эмоциям и переустановить SQL. Метод сработал бы, но он не правильный. Правильный - снова перенести tempdb в надёжное расположение.
Для этого нужно запустить сервер sql в монопольном режиме:
NET START MSSQLSERVER /f /T3608
Выполнить:
SQLCMD -s PCNAME\administrator
где PCNAME - имя сервера, administrator - пользователь имеющий права администратора sql-сервера. Утилита SQLCMD нашлась в моём случае по адресу C:\Program Files\Microsoft SQL Server\100\Tools\Binn.
И вновь выполняем запрос по переносу, но уже с иным расположением tempdb.
Решение подглядел тут (снова Гилёв Вячеслав:)).
Ну и бонусом - ответы на основные вопросы по Microsoft SQL.
Write a comment
Максим (Wednesday, 13 March 2024 14:03)
Поделитесь пожалуйста решением проблемы. Столкнулся с тем же самым. Всё перерыл уже, и не могу понять в чём проблема :(