Удаление нескольких таблиц из базы данных sql server 2005 - сделать новую базу данных или использовать старую? - PullRequest
0 голосов
/ 26 мая 2011

Я убиваю кучу таблиц в базе данных SQL Server, чтобы перейти в базу данных архива. Текущий БД имеет несколько файловых групп и работает нормально, увеличивая таблицы, которые все еще там. Но я удалю несколько гигабайт.

Должен ли я создать новую базу данных и переместить туда текущие таблицы? Я параноидален из-за того, что не настроен правильно.

На самом деле есть только одна таблица, в которой наблюдается большая активность - и она достигает примерно 14 000 строк за четыре месяца

1 Ответ

0 голосов
/ 26 мая 2011

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

Если вас беспокоит настройка роста, убедитесь, что вы используете правильное число, близкое к прогнозируемым значениям роста, и поищите события автоматического роста для данных и файлов журнала, используя трассировку по умолчанию. Запрос приведен ниже для вас. Никто не получает правильный размер, и вы делаете свои самые лучшие предположения на основе доступных вам данных и отслеживаете рост. Если вы видите какие-либо данные назад, то внесите соответствующие изменения, чтобы увеличить числа. А также 14000 строк за 4 месяца НЕ считаются активными вообще по сравнению с тем, что может обрабатывать SQL Server.

DECLARE @filename VARCHAR(255) 
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'  
FROM sys.traces   
WHERE is_default = 1;  

--Check if the data and log files auto-growed.
SELECT 
    gt.ServerName
    , gt.DatabaseName
    , gt.TextData
    , gt.StartTime
    , gt.Success
    , gt.HostName
    , gt.NTUserName
    , gt.NTDomainName
    , gt.ApplicationName
    , gt.LoginName
FROM [fn_trace_gettable](@filename, DEFAULT) gt 
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id 
JOIN sys.databases d ON gt.DatabaseName = d.name
WHERE EventClass in ( 92, 93 ) --'Data File Auto Grow', 'Log File Auto Grow'
ORDER BY StartTime; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...