Бывают моменты когда вам необходимо начать работать с БД, о которой вы или ничего не знаете или знаете очень мало. Обычно у вас есть 2 варианта: или вы работаете очень давно и чётко понимаете что вам нужно и где это искать или начинаются поисики по интернету. Первый случай скорее всего является проверенным на множестве серверов и его можно считать более менее надёжным, а вот со вторым часто возникают вопросы. Кроме больших затратов времени, ваши поиски могут не дать полную картину и чтобы вы не тратили время в пустую, я решил помочь вам.
Олег написал интересную статью с названием «Исследуем базы данных с помощью T-SQL» (ссылка на статью). В статье вы узнаете как легко получить следующую информацию:
- Когда был последний backup всех БД
- Список всех Linked Servers
- Активные пользовательские соединения
- Где лежат файлы БД
- Количество записей в таблицах
- Активность таблиц
- Есть ли синонимы
- Какие check-ограничения, значения по-умолчанию и вычисляемые столбцы присутствуют
- Рекомендумые индексы для вашей системы
- Зависимости
- и т.д.
Статья очень объёмная, каждый сможет найти что-то полезное. Так как я сам являюсь Администраторам Баз Данных, то считаю, что при первом осмотре системы будет интересно узнать дату последнего backup, иногда результаты очень удивляют. Вот небольшая вырезка из статьи по этому вопросу:
Каждый хороший dba должен узнать есть ли у него свежий бэкап.
SELECT @@Servername AS ServerName , d.Name AS DBName , MAX(b.backup_finish_date) AS LastBackupCompleted FROM sys.databases d LEFT OUTER JOIN msdb..backupset b ON b.database_name = d.name AND b.[type] = 'D' GROUP BY d.Name ORDER BY d.Name;Будет лучше, если вы сразу узнаете путь к файлу с последним бэкапом.
SELECT @@Servername AS ServerName , d.Name AS DBName , b.Backup_finish_date , bmf.Physical_Device_name FROM sys.databases d INNER JOIN msdb..backupset b ON b.database_name = d.name AND b.[type] = 'D' INNER JOIN msdb.dbo.backupmediafamily bmf ON b.media_set_id = bmf.media_set_id ORDER BY d.NAME , b.Backup_finish_date DESC; GO