Azure SQL Copilot (#05) – Retornando o tamanho do arquivo de Dados, Log e maiores tabelas
Fala Pessoal,
Nesse post vou mostrar que com apenas uma pergunta ao Copilot vamos ter uma informação muito detalhada de como está o uso do meu arquivo de Dados, Log e Maiores tabelas do ambiente.
Essa resposta eu achei excelente.
Veio muito mais completa do que achei que ele me retornaria.
Mostrou até que o log tem um tamanho máximo de 184 GB nesse meu banco que tem um tamanho máximo de 32 GB para o arquivo de dados. Essa informação do tamanho máximo do arquivo de log era algo meio obscuro pelo menos para mim.
O Copilot ainda está nos dando uma dica de carreira: Quando alguem te pedir alguma coisa, se possível, entregue algo a mais e supere as expectativas de quem te pediu.
Ele superou minha espectativa e me mostrou ainda o tamanho das minhas maiores tabelas Cliente e Client.
Também nos deu a query que ele usou para pegar essas informações.
Segue a query para utilizarem no Azure SQL DB aí de vocês:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
SELECT TOP 5 t.name AS TableName, s.name AS SchemaName, p.rows, SUM(a.total_pages) * 8 AS TotalSpaceKB, CAST( ROUND(SUM(a.total_pages) * 8 / 1024.0, 2) AS NUMERIC (36, 2)) AS TotalSpaceMB, SUM(a.used_pages) * 8 AS UsedSpaceKB, CAST( ROUND(SUM(a.used_pages) * 8 / 1024.0, 2) AS NUMERIC (36, 2)) AS UsedSpaceMB, (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB, CAST( ROUND((SUM(a.total_pages) - SUM(a.used_pages)) * 8 / 1024.0, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB FROM sys.tables AS t INNER JOIN sys.indexes AS i ON t.object_id = i.object_id INNER JOIN sys.partitions AS p ON i.object_id = p.object_id AND i.index_id = p.index_id INNER JOIN sys.allocation_units AS a ON p.partition_id = a.container_id LEFT OUTER JOIN sys.schemas AS s ON t.schema_id = s.schema_id WHERE t.name NOT LIKE 'dt%' AND t.is_ms_shipped = 0 AND i.object_id > 255 GROUP BY t.name, s.name, p.rows ORDER BY TotalSpaceMB DESC, t.name; SELECT DB_NAME() AS [database_name], type_desc, CAST( ROUND(CAST(FILEPROPERTY(name, 'SpaceUsed') AS DECIMAL(19,4)) * 8 / 1024., 2) AS NUMERIC(36,2)) AS space_used_mb, CAST( ROUND(CAST(size / 128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int) / 128.0 AS DECIMAL(19,4)),2) AS NUMERIC(36,2)) AS space_unused_mb, CAST( ROUND(CAST(size AS DECIMAL(19,4)) * 8 / 1024., 2) AS NUMERIC(36,2)) AS space_allocated_mb, CAST( ROUND(CAST(max_size AS DECIMAL(19,4)) * 8 / 1024., 2) AS NUMERIC(36,2)) AS max_size_mb FROM sys.database_files WHERE type_desc IN ('ROWS','LOG'); |
Resultado:
Muito bom!
Agora qualquer pessoa mesmo que não seja DBA consegue ter informações detalhadas do tamanho do banco sem nem abrir o SSMS. Só conversando com o seu melhor amigo SQL Copilot.
Até o próximo post pessoal.
Posts Anteriores:
- Azure SQL Copilot (#01) – Identificando Locks no BD apenas perguntando ao Copilot
- Azure SQL Copilot (#02) – Qual query o Copilot usa para validar a performance do BD?
- Azure SQL Copilot (#03) – Será que ele consegue analisar uma query e sugerir melhorias?
- Azure SQL Copilot (#04) – Qual query o Copilot usa para ver as conexões no meu BD?
Quer ficar por dentro das novidades do mundo da IA e aprender junto com nosso Head de IA Rodrigo Ribeiro?
O Rodrigo criou um instagram, blog e canal no youtube só para falar der IA, o IA Talking. Não deixem de acompanhar:
Abraços,
Fabrício Lima
CEO na Fabrício Lima Soluções em BD
Microsoft Data Platform MVP
Instagram:@fabriciofrancalima
Linkedin: https://www.linkedin.com/in/fabriciofrancalima/
Consultoria: [email protected]