TRUNCATE TABLE GERA LOG #FicaDica :)


Desculpem ter deixado o titulo em maiúsculo, se desse ainda faria em NEGRITO. Na empresa que trabalho sou responsável por entrevistar os candidatos.  E 9 a cada 10 DBAs me falam que TRUNCATE TABLE não gera log, que não dá para fazer ROLLBACK Mas é CLARO que o SQL salva log, e se der algum problema […]

Time dimension tunning


Hoje fiz um tunning legal e gostaria de compartilhar com vocês. Para preencher uma dimensão data, acredito que não existe muito segredo, basta fazer um loop pelas datas e inserir na tabela, mas e se você precise inserir em nível de minuto ou até segundo, pode acabar ficando lento pela inserção linha a linha Segue […]

Problemas aritméticos com datas


Segue abaixo um problema que não tinha passado no SQL 2008 mais que muitos podem vir a passar: Em muitos sistemas que já vi as somas ou subtrações são feitas como este exemplo abaixo: DECLARE @DATE as DATETIME = GETDATE() SELECT @DATE – 1 ———————– 2011-09-21 14:28:33.910   Porém no SQL2008 com os novos tipos […]

GROUP BY ALL


Mais uma que não conhecia, sempre temos algo para aprender 🙂 O GROUP BY ALL mostra a soma dos valores “ZERADOS” desconsiderando o filtro do WHERE SELECT collation_name as COLLATION, COUNT(*) as [COUNT] FROM sys.databases WHERE collation_name = ‘SQL_Latin1_General_CP1_CI_AS’ GROUP BY ALL collation_name COLLATION COUNT —————————- ———– Latin1_General_CI_AS 0 Latin1_General_CI_AS_KS_WS 0 SQL_Latin1_General_CP1_CI_AS 5 (3 row(s) […]

OVER Clause + Aggregate


Hoje estava estudando para certificação 70-433 descobri algo que desconhecia até então, é possivel fazer uma soma “SUM”, média “AVG”, etc sobre um conjunto ou subconjunto de registros… Melhor ver na pratica… SELECT [database_id] ,[name] ,[compatibility_level] ,COUNT(*) OVER() as [QTD_TOTAL_DATABASES] ,COUNT(*) OVER(partition by [compatibility_level]) as [QTD_TOTAL_DATABASES_DO_MESMO_COMPLEVEL] FROM SYS.databases ORDER BY [database_id] REF: http://msdn.microsoft.com/en-us/library/ms189461.aspx