Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Обслуживание базы  [new]
Alexander Mamontov
Member

Откуда: НСО
Сообщений: 85
Здравствуйте! Подскажите, есть база на ms sql 2005 (9.0.3042), бывает время, когда создается много новых таблиц (до 30-40) и удаляется старых (примерно от 5 до 20) с ненужными данными в рамках бизнес логики функционирования приложений, работающих с БД. Таблиц в базе около 10 тысяч, их размер варьируется от сотен до 2-х миллионов записей (не очень большие, в основном около миллиона). Скажите, это нормально, так из создавать и удалять, или следует искать другие подходы, направленные на минимизацию числа операций create table и drop table? Не приводит ли это к фрагментациии БД, не подрывает ли надежность в целом?
Благодарю за внимание к вопросу.
19 окт 09, 17:14    [7807148]     Ответить | Цитировать Сообщить модератору
 Re: Обслуживание базы  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631

Скажите, это нормально, так из создавать и удалять

В общем случае - нет. Для конкретно вашей задачи - может быть и нормально.


Не приводит ли это к фрагментациии БД

Любаю вставка/удаление данных в БД вызывает определенную дефрагментацию.
Большое количество создание таблиц не приводит к сущетсвенному увелечению дефрагментации(по сравнению со вставкой/удалением данных).
Просто надо переодически производить физическую дефрагметацию, а за тем внутреннюю.


не подрывает ли надежность в целом

Эээ, а что вы понимате под надежностью? Производительность, безопасность, .... или что-то еще ?

З.Ы. Установили бы SP3.
20 окт 09, 09:46    [7809429]     Ответить | Цитировать Сообщить модератору
 Re: Обслуживание базы  [new]
Alexander Mamontov
Member

Откуда: НСО
Сообщений: 85
Александр, спасибо за ответ
>>В общем случае - нет. Для конкретно вашей задачи - может быть и нормально
Я имел ввиду даже не задачу, а в целом работу sql server, не будет ли это являться нарушением общих принципов работы с ним - большое количество таблиц.
>>физическую дефрагметацию, а за тем внутреннюю
Напомните, пожалуйста, команду для дефрагментации БД в ms sql его средствами)
>>что вы понимате под надежностью?
В целом да, производительность и безопасность (т. е. стабильность работы с такой БД). В таком виде исследуемая система работает довольно давно, предлагался также вариант секционирования, но было реализовано именно так. Подскажите, создание/удаление таблицы не сильно "тяжелая" операция для ms sql?
>>Установили бы SP3
сделаю
20 окт 09, 12:56    [7810919]     Ответить | Цитировать Сообщить модератору
 Re: Обслуживание базы  [new]
Alexander Mamontov
Member

Откуда: НСО
Сообщений: 85
И все же, скажите, следует искать другие подходы, направленные на минимизацию числа операций create table и drop table при таком подходе?
21 окт 09, 03:35    [7815017]     Ответить | Цитировать Сообщить модератору
 Re: Обслуживание базы  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
1) Нарушения общих принципов не будет.
2) Deskeeper + перестройка кластерного индекса на таблице.
3) Тогда если говорить в общем, без знания вашей конкретной реализации, то создание/удаление таблиц приложением - может негативно влиять и на производительность и на безопасность.
4) Не тяжелее многих других операций.
5) Я исповедую принцип - если все работает и все всех устраивает - то ничего менять не надо.
21 окт 09, 09:31    [7815339]     Ответить | Цитировать Сообщить модератору
 Re: Обслуживание базы  [new]
Alexander Mamontov
Member

Откуда: НСО
Сообщений: 85
Александр, снова спасибо за ответ!
>>все работает и все всех устраивает
в принципе, так и есть, в целом понял-следить за индексами, дефрагментировать базу и логический диск с базой и логом и все будет работать. Единственное, что доставляет ряд неудобств-зачистка устаревшей информации. Это либо дроп таблицы целиком (быстрая операция), либо зачистка делитом данных до заданной даты (для таблиц предусмотрено поле "Дата"), запускаю скриптом для диапазона таблиц, работает очень долго (серверу приходится сканировать до десятка тысяч таблиц и зачищать в них данные)
21 окт 09, 11:42    [7816379]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить