Feed Artigos Comentários

Arquivo de CategoriasSQL Server



SQL Server Logan Merazzi em 18 Jun 2009

Usando Backup / Restore para minimizar o downtime do seu BD.

Segue uma “receita de bolo” para minimizar o downtime do seu BD durante um upgrade de máquina

   1. Altere o seu banco para que ele fique em modo FULL RECOVERY (caso ainda não esteja)
   2. Faça o backup FULL do banco
   3. Crie um Plano de Manutenção para realizar um backup dos Logs de Transação periodicamente.
   4. Copie o backup full para o novo servidor.
   5. Restaure o backup full no novo servidor especificando a opção NORECOVERY.
   6. Copie todos os Backups dos Logs de Transação realizados para o novo servidor.
   7. Restaure os backups dos Logs de Transação no novo servidor, mais uma vez, especificando a opção NORECOVERY.
   8. Pare as aplicações que acessam o banco.
   9. Faça um último backup dos Logs de Transação no servidor antigo.
  10. Deixe a base Offline, ou então desligue o SQL Server.
  11. Copie o último backup do Log feito para o novo servidor
  12. Restaure o backup do Log, desta vez, especificando a opção RECOVERY.
  13. Faça as configurações devidas na aplicação.
  14. Inicie a aplicação.
 
Seguindo esses passos, mesmo uma aplicação de 500Gb, por exemplo, terá um downtime bem pequeno, que será basicamente devido às configurações da aplicação.
Aliás, essa solução faz mais sentido para bases grandes. Para bases pequenas, o downtime de um Backup/Restore ou Attach/Detach são bem parecidos.
Fica a dica!

SQL Server Logan Merazzi em 12 Mai 2009

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 forma 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

SQL Server & Certificação Logan Merazzi em 17 Mar 2009

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!!! :-D

SQL Server Logan Merazzi em 04 Fev 2009

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

SQL Server Logan Merazzi em 10 Nov 2008

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.