Compartilhando ideias e experiências, principalmente sobre SQL Server.

Questão sobre SQL Server…

Ontem me deparei com uma questão um tanto quanto interessante…
Qual o resultado das queries abaixo? Elas são equivalentes???

Query 1:

SELECT *
FROM (
  SELECT 1 col1 UNION
  SELECT 2 UNION
  SELECT 3
) T1
LEFT JOIN (
  SELECT 1 col1 UNION
  SELECT 3
) T2
 ON t1.col1 = t2.col1
WHERE t2.col1 IS NULL

Query 2:

SELECT *
FROM (
  SELECT 1 col1 UNION
  SELECT 2 UNION
  SELECT 3
) T1
LEFT JOIN (
  SELECT 1 col1 UNION
  SELECT 3
) T2
 ON t1.col1 = t2.col1

  AND t2.col1 IS NULL

Passando o olho rapidamente, parece ser a mesma coisa, mas reparem na última linha, a única diferença entre elas é o uso do where e o outro existe somente o join.

Bom, a resposta é: Não, elas não são equivalentes… o resultado é completamente diferente!!
Execute no SSMS e veja.
Mas agora vamos ao “Mas porque isso acontece?”
Isso ocorre pois quando o SQL Server processa um join, a engine escolhe o método mais eficiente de processá-la. Apesar da execução física de vários joins utilizar diferentes formas de otimização, a sequência (sem trema) lógica é:

1. A condição do join na cláusula FROM é aplicada.
2. A condição do join e a condição da busca da cláusula WHERE é aplicada.
3. a condição da busca da cláusula HAVING é aplicada.

Esta sequência pode às vezes influenciar no resultado de uma query se condições são movidas entre a cláusula FROM e a WHERE.

Referência do estudo: Join Fundamentals

A segunda consulta é equivalente à consulta abaixo, que mostra de form
a mais clara o resultado vazio que é T2:
SELECT *
FROM (
SELECT 1 col1 UNION
SELECT 2 UNION
SELECT 3
) T1
LEFT JOIN (
SELECT *
FROM (
SELECT 1 col1 UNION
SELECT 3
) S
WHERE S.col1 IS NULL
) T2
ON t1.col1 = t2.col1

Read More

Instalando o Ubuntu 8.10 em dual boot com o Windows Vista instalado.

Vou colocar aqui uma dica para quem já tem o windows vista instalado e não quer instalar uma máquina virtual para usar o Ubuntu, preferindo o dual boot.
No meu caso, o particionador do Vista (gerenciamento de dico -> Diminuir Volume (shrink volume)) não funcionou, acredito que tinha algum bloco fixo que impedia o particionamento de todo o espaço disponível.
Solução para esse caso: use o GParted.
Baixe, grave em um CD, dê boot por ele e faça a mágica… Simples rápido e indolor.
Ouvi algumas pessoas falarem de problemas para iniciar o vista após usar esse particionador, que ele deixava de inicializar.
Algumas pessoas falaram que precisaram rodar um chkdsk para verificação do disco e após ele iniciou normalmente.
Outras falaram em usar o disco do Vista e fazer a reparação (mantendo o particionamento realizado).
Bom, fica a dica… se tiverem alguma dúvida a respeito sobre como fazer o particionamento, tamos aí!! ;o)

Read More

MCTS SQL Server 2005!!! :-D

MCTS

Só pra dizer que acabei de passar na prova 70-431 da Microsoft: “SQL Server 2005 – Implementing and Maintenance”
Que baita alívio, estava achando que não passaria nessa prova mas para a minha surpresa, passei com 880 no simulado e 947 na teórica (valendo 1000).
Essa é a segunda prova da MS que eu faço (e passo). Há 9 anos atrás eu fiz a de Windows NT Server 4.0.
Agora é manter o ritmo, focar no TCC da faculdade e fazer as provas 70-441 e 70-442 (Database Developer), 70-443 e 70-444 (Database Administrator)!!
O negócio é não deixar a peteca cair!!! 😀

Read More

Certificações Microsoft para SQL Server 2005

Para conhecimento de todos, estou estudando (nem tanto quanto eu gostaria/deveria, mas enfim) para as provas de certificação da Microsoft em SQL Server 2005.

Como existem muitas dúvidas a respeito, vou colocar aqui as provas que você deve fazer para atingir a titulação desejada.

MCTS – MICROSOFT CERTIFIED TECHNOLOGY SPECIALIST

  • exame obrigatório
    • 70-431 – Microsoft SQL Server 2005 – Implementation and Maintenance

MCITP: DATABASE DEVELOPER – MICROSOFT CERTIFIED IT PROFESSIONAL – DATABASE DEVELOPER

  • escolha dois exames do grupo abaixo (o 70-431 TEM que ser um deles)
    • 70-431 – TS: Microsoft SQL Server 2005 – Implementation and Maintenance
    • 70-441 – PRO: Designing Database Solutions by Using Microsoft SQL Server 2005 Open License 6.0
    • 70-442 – PRO: Designing and Optimizing Data Access by Using Microsoft SQL Server 2005

MCITP: DATABASE ADMINISTRATOR – MICROSOFT CERTIFIED IT PROFESSIONAL – DATABASE ADMINISTRATOR

  • exames obrigatórios
    • 70-431 – TS: Microsoft SQL Server 2005 – Implementation and Maintenance
    • 70-443 – PRO: Designing a Database Server Infrastructure by Using Microsoft SQL Server 2005
    • 70-444 – PRO: Optimizing and Maintaining a Database Administration Solution by Using Microsoft SQL Server 2005

MCITP: DATABASE ADMINISTRATOR – MICROSOFT CERTIFIED IT PROFESSIONAL – DATABASE ADMINISTRATOR – UPGRADE PARA QUEM JÁ É MCDBA

  • exames obrigatórios
    • 70-431 – TS: Microsoft SQL Server 2005 – Implementation and Maintenance
    • 70-447 – UPGRADE: MCDBA Skills to MCITP Database Administrator by Using Microsoft SQL Server 2005

MCITP: BUSINESS INTELLIGENCE DEVELOPER – MICROSOFT CERTIFIED IT PROFESSIONAL – BUSINESS INTELLIGENCE DEVELOPER

  • exames obrigatórios
    • 70-431 – TS: Microsoft SQL Server 2005 – Implementation and Maintenance
    • 70-445 – PRO: Designing Business Intelligence Solutions by Using Microsoft SQL Server 2005 Analysis Services
    • 70-446 – PRO: Designing a Business Intelligence Infrastructure by Using Microsoft SQL Server 2005
Read More

MSDN Experience: SQL Server

Pra quem não conhece, o MSDN Brasil oferece um programa de treinamento completo sobre o SQL Server e outras tecnologias, chamado MSDN Experience (http://www.microsoft.com/brasil/msdn/experience/default.mspx).
Como estou trabalhando direamente com SQL Server, entrei para dar uma olhada nos vídeos que tem lá e reparei que já estão disponíveis os testes do primeiro e do segundo módulo.
Para quem quer se aprofundar sobre o assunto e ver o seu nível de conhecimento, recomendo entrar e dar uma olhada.
Se você ainda não conhece o programa e quer aprender sobre o SQL Server, acesse: http://www.msdnbrasil.com.br/experience/sqlserver/Home.aspx.

Read More
%d blogueiros gostam disto: