Como usuário do SQL Server, é importante ter um bom entendimento dos seus bancos de dados e suas propriedades. Em um artigo anterior, discutimos como encontrar o horário do último backup para todos os bancos de dados. Hoje, vamos explorar um script compartilhado pelo especialista em SQL Server, Matteo, que fornece uma riqueza de informações sobre seus bancos de dados.
Vamos dar uma olhada no script:
SELECT database_id , CONVERT ( VARCHAR ( 25 ), DB.name ) AS dbName , CONVERT ( VARCHAR ( 10 ), DATABASEPROPERTYEX ( name , 'status' )) AS [Status] , state_desc , ( SELECT COUNT ( 1 ) FROM sys.master_files WHERE DB_NAME ( database_id ) = DB.name AND type_desc = 'rows' ) AS DataFiles , ( SELECT SUM (( size * 8 )/ 1024 ) FROM sys.master_files WHERE DB_NAME ( database_id ) = DB.name AND type_desc = 'rows' ) AS [Data MB] , ( SELECT COUNT ( 1 ) FROM sys.master_files WHERE DB_NAME ( database_id ) = DB.name AND type_desc = 'log' ) AS LogFiles , ( SELECT SUM (( size * 8 )/ 1024 ) FROM sys.master_files WHERE DB_NAME ( database_id ) = DB.name AND type_desc = 'log' ) AS [Log MB] , user_access_desc AS [User access] , recovery_model_desc AS [Recovery model] , CASE compatibility_level WHEN 60 THEN '60 (SQL Server 6.0)' WHEN 65 THEN '65 (SQL Server 6.5)' WHEN 70 THEN '70 (SQL Server 7.0)' WHEN 80 THEN '80 (SQL Server 2000)' WHEN 90 THEN '90 (SQL Server 2005)' WHEN 100 THEN '100 (SQL Server 2008)' END AS [compatibility level] , CONVERT ( VARCHAR ( 20 ), create_date , 103 ) + ' ' + CONVERT ( VARCHAR ( 20 ), create_date , 108 ) AS [Creation date] , -- last backup ISNULL (( SELECT TOP 1 CASE TYPE WHEN 'D' THEN 'Full' WHEN 'I' THEN 'Differential' WHEN 'L' THEN 'Transaction log' END + ' – ' + LTRIM ( ISNULL ( STR ( ABS ( DATEDIFF ( DAY , GETDATE (), Backup_finish_date ))) + ' dias atrás' , 'NUNCA' )) + ' – ' + CONVERT ( VARCHAR ( 20 ), backup_start_date , 103 ) + ' ' + CONVERT ( VARCHAR ( 20 ), backup_start_date , 108 ) + ' – ' + CONVERT ( VARCHAR ( 20 ), backup_finish_date , 103 ) + ' ' + CONVERT ( VARCHAR ( 20 ), backup_finish_date , 108 ) + ' (' + CAST ( DATEDIFF ( second , BK.backup_start_date , BK.backup_finish_date ) AS VARCHAR ( 4 )) + ' ' + 'segundos)' FROM msdb..backupset BK WHERE BK.database_name = DB.name ORDER BY backup_set_id DESC ), '-' ) AS [Last backup] , CASE WHEN is_fulltext_enabled = 1 THEN 'Habilitado' ELSE '' END AS [fulltext] , CASE WHEN is_auto_close_on = 1 THEN 'autofechar' ELSE '' END AS [autoclose] , page_verify_option_desc AS [page verify option] , CASE WHEN is_read_only = 1 THEN 'somente leitura' ELSE '' END AS [somente leitura] , CASE WHEN is_auto_shrink_on = 1 THEN 'autoencolher' ELSE '' END AS [autoencolher] , CASE WHEN is_auto_create_stats_on = 1 THEN 'auto criar estatísticas' ELSE '' END AS [auto criar estatísticas] , CASE WHEN is_auto_update_stats_on = 1 THEN 'auto atualizar estatísticas' ELSE '' END AS [auto atualizar estatísticas] , CASE WHEN is_in_standby = 1 THEN 'em espera' ELSE '' END AS [em espera] , CASE WHEN is_cleanly_shutdown = 1 THEN 'encerrado corretamente' ELSE '' END AS [encerrado corretamente] FROM sys.databases DB ORDER BY dbName , [Last backup] DESC , NAME
Este script utiliza a visualização do sistema sys.databases
para recuperar várias informações sobre cada banco de dados em sua instância do SQL Server. Ele fornece detalhes como o nome do banco de dados, status, estado, número e tamanho dos arquivos de dados e log, acesso do usuário, modelo de recuperação, nível de compatibilidade, data de criação, informações do último backup e várias opções de banco de dados.
Ao executar este script em seu banco de dados, você pode obter insights sobre as características e propriedades dos seus bancos de dados. Ele pode ser especialmente útil para administradores de banco de dados e desenvolvedores que precisam monitorar e gerenciar vários bancos de dados.
Por exemplo, você pode usar este script para identificar bancos de dados que não foram recentemente backupados, verificar o tamanho dos arquivos de dados e log e revisar várias opções de banco de dados que podem impactar o desempenho e a segurança.
Lembre-se de substituir a visualização sys.databases
pelo nome do banco de dados apropriado se você quiser recuperar informações para um banco de dados específico.
No geral, este script fornece uma visão abrangente dos seus bancos de dados do SQL Server, permitindo que você os compreenda e gerencie melhor.
Espero que você encontre essas informações úteis em sua jornada com o SQL Server. Fique ligado para mais artigos sobre conceitos e melhores práticas do SQL Server!