quinta-feira, 18 de agosto de 2016

Analisando discos do servidor

Como descobrir o tamanho do disco, quanto está sendo usado e quanto temos ainda disponível? Abaixo segue uma consulta que nos entrega todas estas informações e qual a porcentagem disponível para cada uma das unidades:

SELECT DISTINCT

SUBSTRING(volume_mount_point, 1, 1) AS [Unidade]

,cast((cast(total_bytes as float)/1024/1024/1024) as numeric(20,2)) AS [Tamanho(GB)]

,cast((cast(available_bytes as float)/1024/1024/1024) as numeric(20,2)) AS [Disponível(GB)]

,ISNULL(ROUND(available_bytes / CAST(NULLIF(total_bytes, 0) AS FLOAT) * 100, 2), 0) as [Porcentagem disponível]

FROM

sys.master_files AS f

CROSS APPLY

sys.dm_os_volume_stats(f.database_id, f.file_id)

order by 1


Resultado


terça-feira, 2 de agosto de 2016

Alterando tipos de dados


Como alterar um tipo de dado definido pelo usuário(UDT):


  1. Adicionar o novo tipo

  2. Alterar as colunas para o novo tipo

  3. Excluir o tipo antigo

  4. Renomear o novo tipo criado.



/* Adiciona um novo UDT com a nova definição */

exec sp_addtype NOVO_TIPO_tmp, 'float', 'NOT NULL'


/* Execute a consulta abaixo copie, cole e execute */

select 'alter table dbo.' + TABLE_NAME +

' alter column ' + COLUMN_NAME + ' NOVO_TIPO_tmp'

from INFORMATION_SCHEMA.COLUMNS

where DOMAIN_NAME = 'MEU_TIPO'


/* Remove o UDDT antigo */

exec sp_droptype MEU_TIPO


/* Altera o nome UDT temporario para o correto */

exec sp_rename 'NOVO_TIPO_tmp', 'MEU_TIPO', 'USERDATATYPE'