Назад | Перейти на главную страницу

Есть ли преимущество в выделении большего количества места, чем требуется в Sql 2005?

Ребята,

Я переношу 2 базы данных с загроможденного жесткого диска на новый, который я купил специально для размещения этих двух баз данных. Базы данных примерно равны по размеру и, по прогнозам, будут одинаково расти. Имеет ли смысл выделять каждому по половине жесткого диска (так что теперь в базах данных может быть 40% неиспользуемого места вместо обычных 5-10%, на которых я его держу)? Предотвратит ли это фрагментацию, поскольку файл MDF будет непрерывным блоком? Или это плохая идея? Должен ли я просто оставить свой обычный буфер и позволить файлу расти со временем (ОС может управлять дефрагментацией). мысли?

Выделение максимально доступного пространства предпочтительнее автоматического увеличения из-за нагрузки ввода-вывода, вызываемой ростом файла данных, и его непредсказуемости. Что делать, если размер файла данных автоматически увеличивается на x% в середине напряженного дня? Предварительная подготовка пространства также минимизирует фрагментацию.

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

Однажды я написал в блоге: мониторинг ключевой статистики SQL Server с помощью DMV

Код, который я предоставил в этом блоге, можно использовать или сократить, чтобы помочь вам следить за размером данных и размером файла ваших БД.

Следует помнить, что база данных, увеличивающая файл, может быть довольно интенсивной. Я бы позволил SQL автоматически расти за вас, просто установите разумный процент роста в зависимости от ваших моделей роста. Что касается фрагментации файлов, я бы порекомендовал вам Diskeeper: http://www.diskeeper.com/business/diskeeper/ чтобы держать это под контролем. Diskeeper использует то, что они называют InvisiTasking, что в основном представляет собой теневое копирование тома, и может дефрагментировать ваши живые файлы базы данных SQL (в том числе Exchange). Поместите обе БД на один и тот же диск - дайте им расти, как они хотят, и установите хороший дефрагментатор, такой как Diskeeper, и вам не придется об этом беспокоиться.

Я бы сказал, что просто устанавливать их 50/50 - плохая идея, ваши предположения о росте могут оказаться неверными, а фрагментация не будет такой уж плохой - вы всегда можете исправить это позже, если это необходимо.