sexta-feira, 13 de fevereiro de 2015

​Como saber o tamanho de uma tabela ou de um banco de dados?



​​

Usando o banco de testes AdventureWorks2012 executamos os seguintes comandos:

USE AdventureWorks2012;

EXEC sp_spaceused N'Person.Person';

Com este comando obtemos o resultado abaixo referente a tabela "Person.Person" do nosso banco de testes AdventureWorks2012.




EXEC sp_spaceused @updateusage = N'TRUE';

Com este comando obtemos o resultado abaixo referente ao nosso banco de testes AdventureWorks2012.


Fonte: MSDN


SELECT DB.NAME,( Sum(size) * 8 ) / 1024 AS Tamanho
FROM sys.databases DB
    INNER JOIN sys.master_files SM ON DB.database_id = SM.database_id
WHERE DB.NAME = 'AdventureWorks2012'
GROUP BY DB.NAME

Com esta consultas obtemos o resultado abaixo referente ao nosso banco de testes AdventureWorks2012.


quinta-feira, 12 de fevereiro de 2015

Função para transforma minutos em dias, horas e minutos.


Esta função retorna a quantidade de dias, horas e minutos a partir de uma quantidade de minutos(um valor inteiro), por exemplo se passarmos como parâmetro o valor 1500 receberemos de resultado "1d 1h 50m".

Para testarmos a função abaixo usamos a seguinte sintaxe:

SELECT [dbo].[IntToDayHourminute](1550)


Criando a função "IntToDayHourminute".

USE [meu_banco]
GO
/****** Object: UserDefinedFunction [dbo].[IntToDayHourminute] Script Date: 11/02/2015 21:00:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[IntToDayHourminute]
(
@Total int
)
RETURNS nvarchar(30)

AS
BEGIN
declare @Return nvarchar(20)
declare @Minuto int
declare @Hora int
declare @Dia int

set @Dia = case when @Total < 1440 then
0
else
(@Total / 1440)
end;

set @Total = case when @Dia = 0 then
@Total
else
@Total - (@Dia * 1440)
end;

set @Hora = case when @Total < 60 then
0
else
(@Total / 60)
end;

set @Total = case when @Hora = 0 then
@Total
else
@Total - (@hora * 60)
end;

set @Minuto = @Total

set @Return = cast(@dia as varchar(20)) + 'd ' + cast(@Hora as varchar(20)) + 'h ' + cast(@Minuto as varchar(20)) +'m'

return @Return
END

terça-feira, 3 de fevereiro de 2015

Diminuindo o tamanho de um banco MSSQL

Para diminuirmos o tamanho de um banco usamos o comando "" conforme o exemplo abaixo:


USE [meu_banco]

GO

DBCC SHRINKDATABASE(N'meu_banco', TRUNCATEONLY )

GO



Resultato:



Se executarmos mais uma vez o resultado obtido sera outro:

Este erro ocorre pois não existe mais espaço livre para ser liberado.