Влияние на производительность пустого файла путем переноса данных в другие файлы в той же файловой группе - PullRequest
4 голосов
/ 26 марта 2009

У нас есть база данных, которая в настоящее время находится на дисках со скоростью 15000 об / мин. Это просто база данных журналов, и мы хотим переместить ее на диски со скоростью 10000 об / мин. Хотя мы можем легко отсоединить базу данных, переместить файлы и подключить их заново, это может привести к небольшим сбоям, которых мы пытаемся избежать.

Итак, мы рассматриваем возможность использования DBCC ShrinkFile with EMPTYFILE. Мы создадим данные и файл транзакции на диске 10000 об / мин, немного больше, чем существующие файлы на диске 15000 об / мин, а затем выполним DBCC ShrinkFile with EMPTYFILE для переноса данных.

Какое влияние это окажет?

Ответы [ 3 ]

6 голосов
/ 30 марта 2009

Я попробовал это и имел смешанную удачу. У меня были случаи, когда файл не мог быть очищен, потому что это был основной файл в основной файловой группе, но у меня также были случаи, когда он работал совершенно нормально.

Тем не менее, он удерживает огромные блокировки в базе данных, пока работает. Если вы пытаетесь сделать это в реальной производственной системе, в которой выполняются запросы конечных пользователей, забудьте об этом. У них будут проблемы, потому что это займет некоторое время.

0 голосов
/ 31 марта 2009

Это система, подключенная к SAN, или хранилище с прямым подключением? Если это SAN, выполните миграцию на стороне SAN в новую группу raid, и сервер никогда не узнает, что произошло изменение.

0 голосов
/ 26 марта 2009

Почему бы не использовать доставку журналов. Создайте новую базу данных на 10000 об / мин. Настройте доставку журналов с БД на 15 К / мин на БД на 10 К / мин. Когда обе базы данных работают в асинхронном режиме, прекратите доставку журналов и переключитесь на базу данных со скоростью 15 000 об / мин.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...