Localizando tabelas não usadas

Este script irá retornar uma lista de tabelas do banco que, desde o último restart do SQL, não tiveram um SELECT executado contra elas. Isto pode ser usado para determinar se a tabela é usada ou não.
ATENÇÃO: As estatísticas do SQL são apagadas toda a vez que o serviço do SQL é reiniciado. Então, não é porque o script esta informando que a tabela não teve uso que ela não é importante, ela apenas não teve uso desde o último restart. Então não saia apagando tabelas ao seu bel prazer, vai que uma delas é usada pelo sistema fiscal apenas a vez por mês e você reinicia o SQL a cada Windows Update, você sempre vai ver essa tabela com esse script.

WITH LastActivity (ObjectID, LastAction) AS
(
SELECT object_id AS TableName,
             last_user_seek as LastAction
     FROM sys.dm_db_index_usage_stats u
WHERE database_id = db_id(db_name())
UNION
SELECT object_id AS TableName,
             last_user_scan as LastAction Continue reading

Por que habilidades de DBA são necessárias?

Este post é de referencia ao T-SQL Tuesday organizado por Paul Randal (Blog | Twitter).

Quando você administra um ambiente com mais de 40 servidores de SQL, 300 bases, de uns 50 clientes diferentes e um monte de aplicação estranha, algum tipo de conhecimento é necessário para manter tudo isso no ar sem um causar problema no outro.

A maior parte dos  nossos clientes não possui nenhum tipo de DBA, muitas vezes nem mesmo um estagiário que faça algum serviço de TI. Muitas dessas empresas apenas tem o consultor da aplicação que foi alguma vez para a empresa fazer a implantação do sistema, passou o telefone do suporte da aplicação e o nosso telefone e disse para o cliente: “Olha, se alguma coisa errada acontecer liga pra esses dois telefones.”

Quando temos algum “consultor” que saiba alguma coisa da parte de banco é incrivel, mas na maior parte desses casos ele não tem como fazer nenhuma modificação pois o código é fechado, basicamente ele aponta pra qual servidor de Continue reading

Erro no Exchange 2010 EMC após despromover um DC

Já faz um tempo que despromovemos uma maquina Windows 2003 que estava com o nosso antigo Exchange Server 2003 e era o DC primário. Fizemos isso depois que migramos todo mundo para o Exchange 2010.

O interessante é que depois da despromoção do DC começamos a receber 2 erros ao abrir o EMC (Exchange Management Console):

  • An error caused a change in the current set of domain controllers. It was running the command ‘Get-OrganizationConfig’.
  • An error caused a change in the current set of domain controllers. It was running the command ‘Get-Recipient -PropertySet ConsoleLargeSet  -ResultSize ’1000′ -SortBy DisplayName -RecipientType ‘UserMailbox”.

Para corrigir esse problema é simples, feche o EMC e abra o Windows Explorer, vá até o diretório C:\Users\<usuário>\AppData\Roaming\Microsoft\MMC e apague o arquivo “Exchange Management Console”. Abra o EMC e o erro foi corrigido.

Alterando o Collation do servidor

Todo mundo já percebeu que quando você está instalando o SQL Server, em algum ponto da instalação você tem que escolher qual o collation que será usado para aquela instância,,, Até ai sem problemas,,,

Mas depois você percebe que alguém do time de DEV te manda um print screen com alguma mensagem de erro do tipo:

Cannot resolve collation conflict for equal operation

Ai essa mesma pessoa lhe informa que quando aponta a aplicação X para o banco de DEV e faz a mesma coisa não tem erro. Você acessa a instância Continue reading

Dicas para otimizar suas funções SQL

Existe uma grande diferença entre escrever uma instrução SQL que funciona e uma que funciona bem e é performática.

Algumas vezes os desenvolvedores estão muito focados em escrever suas queries que apenas resolvam uma tarefa específica sem levar em consideração performance ou o impacto na instancia do SQL server, como por exemplo quantidade de CPU, IO e memória que eles estão consumindo.  Assim, eles comem outros processos do SQL Server durante a execução derrubando toda a instância. Este artigo tentará prover ao desenvolvedor alguns pequenos detalhes que podem ajudar a otimizar as instruções.

Um grande número de livros e “white papers” foram escritos falando sobre performance no SQL server e este artigo não ira de forma alguma substituir o conhecimento que pode ser adiquirido com esses livros e “white papers”. A intenção é prover uma lista rápida para ajudar o desenvolvedor a identificar possíveis gargalos que podem existir no código SQL.

Continue reading

Uma pequena coleção de comandos DBCC

Existe um número bem legal de comandos DBCC que não fazem nada de mais a não ser checar consistencia no banco de dados. Eu coloque alguns no script abaixo. O primeiro comando é o único considerado mais “perigoso”, isso causará um grande stress no sistema de I/O enquanto efetua a limpesa do cache. Dependendo do workload, isso pode levar alguns minutos, e durante o processo ele pode impactar a performance.

-- A Small Collection of Useful DBCC Commands
-- Glenn Berry
-- August 2010
-- http://glennberrysqlperformance.spaces.live.com/
-- Twitter: GlennAlanBerry

-- Clears out contents of buffer cache
-- Use caution before doing this on a production system!
DBCC DROPCLEANBUFFERS;

-- Clears procedure cache on entire Continue reading 

MCM SQL Server 2008 – Retake 3º prova

Bom,,,
acabei de refazer o 3º teste,,,, sabe quando você tem aquela impressão de que não era uma boa ideia ter saido da cama hoje?
Então,,,, a prova foi basicamente a mesma,,, trouxe o meu notebook, pq é o único que tem câmera, detalhe: você tem que ter uma câmera externa se você só tem a interna do notebook pode trata de pedi emprestado pra alguém,,,
Usando o livemeeting o pessoal pede pra você compartilhar o desktop e liberar a câmera,,, abrir o microfone e começar a fazer a prova…
Tenho que esperar até a tarde para descobrir se passei ou não…

O lado ruim do MCM

Como muitas coisas na vida o MCM também tem seu lado ruim…
Não posso dizer que eh um curso ruim mas, existem alguns dias que você não irá querer sair do apartamento, ou pior, vai querer ir embora.
Dependendo do instrutor mesmo que o tópico seja ruim ele ainda consegue extrair alguma coisa, mas tem outros que não fazem a minima questão.
Não vou citar quais pois seria muita falta de educação, eh muito pouco provável que eles leiam meu blog e ainda por cima saibam alguma coisa de português pra tentar responder…
Meu concelho eh, 70% ta no material de pre-leitura, 10% no material dos instrutores e 20% na sua boa vontade de aprender.

Dicas para a viagem

ATENÇÃO !!!! post muuuuuito longo

A ideia desse post é, basicamente, descrever algumas coisas que passamos por lá.
Onde comprar, onde não comprar, como funciona a lavanderia,,, coisas assim,,,,
Vamos começar pelo início de tudo:

  • Preparando para a Viajem

–VTM
Acho que uma das melhores dicas para a viagem é FAÇA um VTM (Visa Travel Money) ele é um cartão de débito, parece com poupança, mas em dólares, você compra em uma casa de câmbio perto de um lugar movimentado (pq? simples, como você vai estar viajando, caso alguma coisa aconteça, algum amigo seu pode transferir dinheiro para a casa de câmbio e assinar o papel para a transferência).
Você transfere o valor em reais para acasa de câmbio, eles convertem em dólares, e colocam na conta do cartão. Qual o seu limite? o valor que você colocar no cartão.
Então qual a vantagem? Você não precisa

Continue reading