segunda-feira, 4 de janeiro de 2010

Certificação Microsoft 5 Estrelas

olá a todos, feliz 2010 !

Que seja um ano de muitas conquistas e realizações a todos nós !

Abro este ano com um post sobre certificação Microsoft, mais especificamente sobre:

- certificação Microsoft 5 Estrelas
http://www.technetbrasil.com.br/cincoestrelas/

- prova 70-441 (2005 Designer).
http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-441&locale=en-us

O programa profissional 5 Estrelas (SQL) é uma iniciativa da Microsoft para preparar os usuários para a prova 70-431 e levar conhecimento a todos que gostam do assunto.

Obtive a 5a. estrela neste programa há alguns dias, porém... nem tudo são flores, como explico abaixo.

Recentemente, me preparei para a prova 70-441 (Designing Database Solutions with SQL 2005) e não obtive a pontuação necessária (score = 634, needed = 700), o que me frustrou muito, de certa forma, neste final de ano.

Porém, eu prefiro ser reprovado por falta de capacidade do que aprovado por sorte.

Digo isso, porque às vezes a experiência, que nos dá uma certa dose de confiança, que aliada a um estudo autodidata, garante um bom conhecimento, porém não é credencial para sucesso na prova.

Percebo que preciso estudar (muito) e aprender mais sobre: Service Broker, Integration Services e Reporting Services. Aliás, deixo como dica para aquele que decide fazer a 70-441.

Já vi em alguns fóruns que a 70-441 é a mais difícil, em comparação a 70-442. De qualquer forma, acredito que isto depende do perfil do profissional.

Enfim... meu planejamento para este ano é obter o MCITP Developer e Administrator, e para isto são 4 provas... extremamente difíceis... mas, vamos lá!

abraços,

Péricles.

domingo, 8 de novembro de 2009

Blogs de SQL Server

Compartilho aqui com vocês, a lista de alguns blogs sobre SQL Server e IT que costumo visitar e apreciar:

- Blog do Luti:
http://luticm.blogspot.com/

- Fabiano Neves Amorim:
http://fabianosqlserver.spaces.live.com/

- Blog do Miranda:
http://www.rmiranda.com.br/wordpress/

- Alexandre Lopes:
http://arodrigueslopes.spaces.live.com/

- DBA - keep learning:
http://keep-learning.com/blog/

- $hell Your Experience - Laerte Junior:
http://laertejuniordba.spaces.live.com/blog/

- Thiago Zavaschi:
http://www.zavaschi.com/

- PFE Brasil - SQL Server:
http://blogs.msdn.com/pfebrasilsql/default.aspx

- Conor vs. SQL:
http://blogs.msdn.com/conor_cunningham_msft/default.aspx

- Felipe Ferreira:
http://weblogs.asp.net/felipeferreira/

- Robson Brandão:
http://rbtech.spaces.live.com/

- Diego Nogare:
http://www.diegonogare.net/

- Gustavo Maia:
http://gustavomaiaaguiar.spaces.live.com/

- Roberto Fonseca:
http://rffonseca.spaces.live.com/

- SQL Blog Ninja - Fabricio Catae:
http://blogs.msdn.com/fcatae/

- Tulio Rosa:
http://tuliorosa.blogspot.com/

- Dani Monteiro - a DBA:
http://simplesmentedan.spaces.live.com/

- Lucas Souza:
http://souzalucas.spaces.live.com/

- Herleson Pontes:
http://herleson.spaces.live.com/

- Sql From Hell.com:
http://sqlfromhell.wordpress.com/

- Blog 50 minutos:
http://www.50minutos.com.br/blog/

- Crespi:
http://www.blog.crespidb.com.br/

- Diário de um DBA:
http://silasmendes.com/dba/

- T-SQL Master:
http://www.tsqlmaster.net/

abraços e até a próxima!
Péricles.

terça-feira, 22 de setembro de 2009

Removendo Braviax (cru629)

Esta semana me deparei com o insistente Braviax.

Seu ícone é uma bolinha vermelha no canto direito, ao lado do relógio do Windows XP.

Passei CCleaner (http://www.ccleaner.com), meu preferido, porém sem sucesso.

Tentei passar o HijackThis (http://www.hijackthis.de/), mas ele não deixava nem executar o utilitário.

Consegui executar o HijackThis renomeando o arquivo executável, tipo 123.exe. Ele executou mas não conseguiu remover o Bravia.

Pesquisei na net e encontrei algumas dicas, tipo entrar em modo de segurança e apagar os seus arquivos principais, que são (c:\windows\braviax.exe, c:\windows\cru629.dat, c:\windows\system32\braviax.exe, c:\windows\system32\cru629.dat), pois eles não se deixam excluir normalmente.

O Braviax também não aparece no Task Manager (Gerenciador de Tarefas).

Resumo da ópera: entrar em modo de segurança e apagar os arquivos não resolveu.

O que resolveu mesmo, foi o Malware Bytes (http://www.malwarebytes.org/), rodou uma vez, reiniciei e... assunto resolvido. Fica a dica.

Até a próxima!

Migrando logins entre servidores SQL 2005

Há um certo tempo, postei o link para script de migração de logins de SQL 2000 para 2005.

Segue agora link para script de migração de logins entre servidores SQL 2005, bastante útil quando você quer dar uma melhorada no seu servidor...

http://support.microsoft.com/kb/918992/

Dica: não acho interessante migrar aquelas contas estranhas, tipo "authority", "autoridade", "nt service", "builtin", "##ms_...".

Abraços.

quarta-feira, 19 de novembro de 2008

Teste de Perfomance em Inserts via Aplicação x Stored Procedures

Olá!

Gostaria de compartilhar com os amigos um pequeno, porém significante teste feito com inserções de registros.

Meu objetivo é provar por A+B que o insert via Stored Procedure é mais rápido que o insert via aplicação.

Foram utilizados nestes testes os componentes da paleta dbGo/ADO do Delphi 7.

O banco de dados utilizado foi SQL 2005 Express SP3, rodando num laptop.

Abaixo, segue os links para você baixar a aplicação teste, bem como o script utilizado para criação de um database, uma tabela, e uma stored procedure, a serem utilizadas no seu teste.

Fiz um laço no Delphi, inserindo 10.000 registros na tabela de testes.

No primeiro teste, utilizando componente TADOQuery para fazer a inserção, levou 28 segundos.

No segundo teste, utilizando componente TADOStoredProc, levou 20 segundos.

Uma redução aí na faixa dos 30%.

Baixe a aplicação, faça o teste, e chegue as suas próprias conclusões.

Aplicação
Script

Por isso, recomendo veementemente o uso de Stored Procedures para Inserir, Excluir, Consultar, enfim, para fazer qualquer tipo de processamento que requer algum requinte de performance.

Além disto, Stored Procedures possuem as seguintes vantagens em relação a T-SQL via aplicação:

- elas permitem programação modular, ou seja, a lógica de negócio fica centralizada em um ponto, ao invés de vários pontos nas aplicações;

- elas permitem execuções mais rápidas, porque o "engine" do SQL Server otimiza sua execução e guarda no seu "cache" para futura utilização;

- elas reduzem tráfego de rede, justamente porque sua execução fica a nível de servidor, e somente o retorno é devolvido à aplicação "client";

- elas podem ser usadas como mecanismo de segurança;

- elas evitam "lock" de tabela, uma vez que o "engine" enfileira todas as chamadas que são feitas às SPs e controla sua execução.

Abraços e até a próxima.

Pericles.

sexta-feira, 8 de agosto de 2008

Problemas e Soluções para SQL 2005 no Vista

Estou instalando meus sistemas em alguns clientes com o Windows Vista, e minha intenção aqui é compartilhar algumas dicas sobre as dificuldades encontradas.

O caso que serviu de inspiração para este post foi com a versão Home Basic.

O serviço do SQL foi instalado nesta máquina e ela é utilizada como "servidor", onde outra estação com Windows XP a acessava.

Após instalação e liberação das devidas portas no firewall, ativação do serviço "Navegador/Browser" do SQL, o sistema entrava, localmente e remotamente.

Porém, localmente, algumas telas do sistema apresentavam uma lentidão inaceitável. Remotamente estava a 100%.

Puxei minha "cartilha" e comecei:

- atualizei o SQL Server, com o SP2:
- não resolveu.

- atualizei o Service Pack do Vista para SP1, pois era original:
não resolveu.

- revisei as configurações do Firewall, liberando a 1433 TCP e 1434 UDP e compartilhamento de impressoras (por teimosia, pois na estação remota não havia problema de acesso):
não resolveu.

- desliguei o Serviço de Indexação do Vista:
nada.

Fui embora, levei o backup da base e fui revisar minha aplicação (Delphi), na tentativa de pegar algum problema, porém... sem sucesso.

Contatei meu "brother", Microsoft MCSE, e ele deu uma dica: RSS (receive-side scaling), que é uma nova função do sistema operacional (Vista e Server 2003), que tem gerado alguns problemas.

Voltei ao cliente, decidido a desligar o tal "autotuning", aí vai o comando:

netsh interface tcp set global autotuning=disabled

Legal, mas... reiniciei e... nada, o problema continua.

Já quase desistindo, resolvi brincar com os protocolos de rede do SQL.
Fui desligando um-a-um, até chegar num denominador comum... e bingo... achei.

A única combinação que funcionou, e resolveu o problema, foi o protocolo "Named Pipes/Pipes Nomeados".

Deixei somente este protocolo ativo, e funcionou 100%, localmente e remotamente.

Fiquem à vontade para comentar o assunto, e abraços, até a próxima !

domingo, 29 de junho de 2008

Certificação Microsoft

É com muita alegria que compartilho mais esta conquista pessoal: aprovação na prova 70-431, que dá a certificação MCTS em SQL Server 2005.

Não foi fácil... eu já estava há alguns anos postergando a realização da prova, mas este mês fui inspirado pela minha esposa, e decidi fazê-la. Marquei a prova num ato de impulso, com menos de 15 dias pra estudar. Era agora ou nunca.

Para os que quiserem se aventurar nesta, a prova é em inglês. A minha teve 47 questões, 35 de múltipla escolha e 12 simulados.

Experiência é imprescindível, uma vez que caíram algumas questões que você não encontra resposta em livro algum, só quem já escreveu um SELECT pra "sacar" a pergunta.

Obrigado a todos que me apoiaram.

Até a próxima!

quarta-feira, 28 de maio de 2008

Migrando logins entre instâncias SQL 2000

Algumas vezes precisamos migrar um ambiente para um novo servidor.

Após os procedimentos padrão:
- instalação do SQL Server no novo servidor;
- restauração do backup ou "attach" do database.

Surge então o problema: os logins e suas respectivas senhas.

A Microsoft disponibiliza no link abaixo, "receita de bolo" para a solução do problema.

Basicamente, trata-se de rodar o script mencionado no Servidor1, capturar o "result", e rodar no Servidor2.

Vale lembrar que esta solução funciona somente entre servidores 7.0 e 2000.

Link: http://support.microsoft.com/kb/246133/en-us

Abraços e até a próxima!

segunda-feira, 12 de novembro de 2007

Trabalhando com Datas no SQL Server

Um assunto muito recorrente nos fóruns de discussão, é o tratamento de campos de data/hora no SQL Server.

O problema basicamente se resume a dois pontos:
- passagem de parâmetros para um comando SQL;
- exibição de data/hora em algum formato específico.

Sobre a passagem de parâmetros, o formato padrão do SQL Server é o americano (USA): mm/dd/yyyy. Desta forma, 10/04/2007 seria dia 04 de Outubro de 2007.

Ainda sobre a passagem de parâmetros, ela se dá em 2 momentos:
- através da aplicação (Delphi, VB, etc.);
- via T-SQL, em stored procedures, triggers, por exemplo.

Eu diria que na passagem de parâmetros via aplicação - utilizando os recursos normais dos componentes de acesso a dados - não há com o que se preocupar, uma vez que o componente de acesso a dados vai se encarregar de fazê-lo, e informar o parâmetro no formato devido.

E por último, quando houver necessidade de informar uma data manualmente, "na unha", eu sugeriria fazê-lo da seguinte forma, utilizando o exemplo acima: "dd-mes-yyyy".

Ex.:

SELECT *
FROM Pedidos
WHERE DataPedido BETWEEN '01-oct-2007' AND '31-dec-2007'

Percebam que eu coloquei o nome do mês, de forma abreviada (em inglês). É isto mesmo !
Faz 10 anos que esta fórmula tem dado certo para mim... por isso a recomendo.

Não preciso me preocupar com barras ou se a primeira parte é o mês ou dia... passo desta forma e está resolvido.

Ok, uma vez que a passagem de parâmetros está esclarecida, vamos a segunda parte: a exibição.

Em primeiro lugar, gostaria de colocar que se tem alguém que deve se preocupar com exibição de datas, o responsável é a aplicação front-end.

Banco de dados não foi feito pra formatar datas e/ou números. Banco de dados foi feito pra armazenar dados, e retornar, da forma mais rápida possível e confiável.

Porém, às vezes, desejamos efetuar um SELECT e imprimir o resultado, precisamos formatar as datas.

Aí vai a dica: converta o campo data/hora para texto.

Ex.:

SELECT CONVERT(VARCHAR(20), GETDATE(), 101) AS Data

Notem o 3o. parâmetro - código 101.

No BOL (Books OnLine) existe uma tabela de códigos para este parâmetro, que vai de 101 até 130.

O padrão britânico/francês, por exemplo, que possui o formato mais próximo do nosso (dd/mm/yy), é o código 103.

Teste os formatos e encontre o mais apropriado para sua necessidade.

Abraços e até a próxima!

quinta-feira, 1 de novembro de 2007

SQL 2005 Cumulative Update Package #4

A Microsoft liberou em 17 de outubro de 2007, um novo pacote de atualizações acumuladas para o banco de dados SQL 2005 (após o Service Pack 2).

A maioria dos bugs corrigidos estão relacionados a ferramentas auxiliares do SQL, tais como Integration Services, Analysis Services, ou ainda, recursos menos utilizados, como replicação e database mirroring.

Porém, um bug em particular chamou a atenção, foi o de 50001716, que foi identificado por deixar as queries mais lentas do que na versão 2000, quando utilizado o operador LIKE. Segundo a Microsoft, o engine escolhe a versão sub-otimizada do plano de execução quando encontra este operador.

Segue link para mais detalhes.

http://support.microsoft.com/kb/941450/LN/