MS SQL. Значительно увеличилось время на операцию "Проверка целостности базы данных". Куда копать?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(8)
Нет. База растет линейно.
В ДТ не выгрузиться.
(7)а с тех пор когда Вы обратили внимание на увеличение времени, база сильно в размерах увеличилась?
Может есть смысл, выгрузить ее в ДТ, восстановить в файловую, опять выгрузить в ДТ и загрузить обратно?
Может есть смысл, выгрузить ее в ДТ, восстановить в файловую, опять выгрузить в ДТ и загрузить обратно?
Нет. База растет линейно.
В ДТ не выгрузиться.
(9)
Почему? Из-за размера? Мне кажется, выгрузиться и загрузить в файловую в любом случае... может не запуститься, да это и не нужно. Идея выгрузки в ДТ - это для сжатия таблиц. Так, как эта операция в серверном варианте не прокатывает.
В ДТ не выгрузиться.
Почему? Из-за размера? Мне кажется, выгрузиться и загрузить в файловую в любом случае... может не запуститься, да это и не нужно. Идея выгрузки в ДТ - это для сжатия таблиц. Так, как эта операция в серверном варианте не прокатывает.
Регламентные операции для базы выполняете и какие?
Сделайте шринк лога транзакций
и рекомендованные регламентные операции с сайта итс
этот раздел открытый так что точно сможете туда попасть.
Сделайте шринк лога транзакций
и рекомендованные регламентные операции с сайта итс
этот раздел открытый так что точно сможете туда попасть.
(10) Ежедневный регламент
Задача "Резервное копирование базы данных"
Задача "Проверка целостности базы данных"
Задача "Реорганизация индекса"
Задача "Обновление статистики"
Чистка кэша
Задача "Резервное копирование базы данных"
Задача "Очистка после обслуживания"
В еженедельном регламенте
Задача "Реорганизация индекса" заменена на "Перестроение индекса"
Задача "Резервное копирование базы данных"
Задача "Проверка целостности базы данных"
Задача "Реорганизация индекса"
Задача "Обновление статистики"
Чистка кэша
Задача "Резервное копирование базы данных"
Задача "Очистка после обслуживания"
В еженедельном регламенте
Задача "Реорганизация индекса" заменена на "Перестроение индекса"
(12)
Ежедневный регламент с 2 до 5 утра:
1) Проверка базы данных - если успешно 2
2) Перестройка индекса, после завершения 3
3) Обновление статистик (полное), после завершения 4
4) Очистка процедурного кэша, после завершения 5
5) Архивация полная в bak с сжатием в отдельное хранилище без перезаписи, если успешно 6
6) Архивация полная для логов с перезаписью без сжатия (один файл либо в одно устройство) после завершения 7,8,9
7) Удаление журнала истории за 4 недели
8) Удаление старых bak файлов за 12 месяцев (так у меня, для себя ставьте месяц - два)
9) Удаление журналов транзакций trn за 1 день
Каждые 15 минут с 07:00 по 21:00
1) Архивация лога транзакций в trn в отдельный каталог без сжатия (оттуда удаление в п.9 выше) если успешно 2
2) Архивация лога транзакций в отдельный файл либо в одно устройство добавлением без сжатия
В свойстах БД
General-Database- Status должно стоять Normal
Files - Autogrownth/Maxsize - по умолчанию для БД стоит 1MB - Unlimit - поставить 3% от размера фала, также с логом
Option-Collation: Cyrillic_General_CI_AS
Option-Recovery model: FULL
Option-Comptability lvl: максимальный из списка
Option-Auto Close - False
Option-Auto Creat Incremental Statistic - False
Option-Auto Creat Statistic - True
Option-Auto Shrink - True
Option-Auto Update Statistics -True
Option-Auto Update Statistics Asynchronouly - False
Запрос для сверки:
sel ect * FR OM sys.dm_db_index_physical_stats(DB_ID(),NULL,NULL,NULL,NULL)
Where avg_fragmentation_in_percent > 30
Должно быть малое количество записей для моей базы (БГУ ~750Гб) 7239 за день
на другом сервере с одной БД в 4 Гб с условием Where avg_fragmentation_in_percent > 0 437 за день все ниже 30
Ежедневный регламент с 2 до 5 утра:
1) Проверка базы данных - если успешно 2
2) Перестройка индекса, после завершения 3
3) Обновление статистик (полное), после завершения 4
4) Очистка процедурного кэша, после завершения 5
5) Архивация полная в bak с сжатием в отдельное хранилище без перезаписи, если успешно 6
6) Архивация полная для логов с перезаписью без сжатия (один файл либо в одно устройство) после завершения 7,8,9
7) Удаление журнала истории за 4 недели
8) Удаление старых bak файлов за 12 месяцев (так у меня, для себя ставьте месяц - два)
9) Удаление журналов транзакций trn за 1 день
Каждые 15 минут с 07:00 по 21:00
1) Архивация лога транзакций в trn в отдельный каталог без сжатия (оттуда удаление в п.9 выше) если успешно 2
2) Архивация лога транзакций в отдельный файл либо в одно устройство добавлением без сжатия
В свойстах БД
General-Database- Status должно стоять Normal
Files - Autogrownth/Maxsize - по умолчанию для БД стоит 1MB - Unlimit - поставить 3% от размера фала, также с логом
Option-Collation: Cyrillic_General_CI_AS
Option-Recovery model: FULL
Option-Comptability lvl: максимальный из списка
Option-Auto Close - False
Option-Auto Creat Incremental Statistic - False
Option-Auto Creat Statistic - True
Option-Auto Shrink - True
Option-Auto Update Statistics -True
Option-Auto Update Statistics Asynchronouly - False
Запрос для сверки:
sel ect * FR OM sys.dm_db_index_physical_stats(DB_ID(),NULL,NULL,NULL,NULL)
Where avg_fragmentation_in_percent > 30
Должно быть малое количество записей для моей базы (БГУ ~750Гб) 7239 за день
на другом сервере с одной БД в 4 Гб с условием Where avg_fragmentation_in_percent > 0 437 за день все ниже 30
И после полного бэкапа сделай DBCC SHRINKFILE (N'state_2016_log' , 0, TRUNCATEONLY)
если лог все равно огромный
DBCC SHRINKFILE (N'state_2016_log' , 0)
и обязательно измени Autogrownth/Maxsize БД на цифру в 1024МБ если БД маленькая, либо % от размера файла
Эти параметры отвечают за увеличения размера БД, если достигнут лимит свободных данных в файле
если лог все равно огромный
DBCC SHRINKFILE (N'state_2016_log' , 0)
и обязательно измени Autogrownth/Maxsize БД на цифру в 1024МБ если БД маленькая, либо % от размера файла
Эти параметры отвечают за увеличения размера БД, если достигнут лимит свободных данных в файле
И потом еще запустити в конфигураторе тестирование и исправление:
Реструктуризация таблиц
После Реструктуризации запусти проверку целостности:
DBCC CHECKDB(N'твоя база') WITH NO_INFOMSGS
И загляни в логи SQL сервера - может там алярмы постоянно летят
Реструктуризация таблиц
После Реструктуризации запусти проверку целостности:
DBCC CHECKDB(N'твоя база') WITH NO_INFOMSGS
И загляни в логи SQL сервера - может там алярмы постоянно летят
И еще как вариант - Server Properties-Memory - минимум памяти 0 - максимум 80% от возможной памяти в МБ
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
