Visual Studio alm rangers


Figura 117 Na janela Properties altere o valor da expressão para gerar somente “M” ou “S”



Baixar 7.59 Mb.
Página60/62
Encontro30.10.2016
Tamanho7.59 Mb.
1   ...   54   55   56   57   58   59   60   61   62


Figura 117 Na janela Properties altere o valor da expressão para gerar somente “M” ou “S”

  1. Selecione a coluna Gender e altere o item na coluna Generator para Regular Expression. Informe M|F para o valor da expressão, de forma que sejam gerados somente os valores “M”ou “F”.



  1. Selecione a coluna HireDate. Na janela Properties, altere Max value para 12/30/2009 12:00:00 AM e Min value para 7/1/1996 12:00:00 AM.



  1. Selecione a tabela Person.Person. A geração dos dados para diversas colunas irá falhar para esta tabela devido ao fato de que os dados não estão em conformidade com as constraints de algumas colunas. Nós iremos ignorar a maioria destas colunas e corrigir os dados para uma delas.



  1. Selecione a coluna PersonType e altere o gerador da coluna para Regular Expression. Para a expressão digite o valor GC|SP|EM|IN|VC|SC que restringirá a geração dos valores ao conjunto GC, SP, EM, IN, VC ou SC.



  1. Execute o plano de geração de dados clicando no menu Data do Visual Studio. Selecione a opção Data Generator e então clique em Generate Data. Escolha o banco de dados AdventureWorksExample na lista de bancos de dados no diálogo Connect to Database e clique em OK. Caso queira excluir qualquer dado pré-exisitente clique em Yes ao ser solicitado.


Passo 4: Testes de Performance Simples


Agora que geramos dados para o banco de dados, iremos executar alguns testes de performance.

  1. Abra o teste unitário que você criou no cenário anterior e dê um duplo-clique no arquivo DatabaseUnitTest1.cs no projeto de teste.



  1. Para adicionar um tempo máximo de execução para o teste, sob Test Conditions, selecione Execution Time e clique no ícone com o sinal de + verde.

Note que o valor estipula que o teste deve ser executado no tempo máximo de 00:00:30.

  1. Na janela Properties, digite o valor 00:00:00.500. Isso indica que o teste somente será considerado bem sucedido se for executado em no máximo meio segundo. Ao adicionar esse tipo de condição aos testes é possível monitorar de forma contínua a performance de execução. Ao associar a execução destes testes a geração de dados é possível simular bancos de dados de diversos tamanhos e avaliar a performance sob estas condições.



  1. Agora você pode executar o teste utilizando o Test Explorer. Vá até o novo teste abrindo a janela Test view. Para abrir esta janela, clique no menu Test, clique em Windows e então clique em Test view. Selecione o teste desejado clicando com o botão direito e selecione a opção Run selection.


Cenário – Encontrando Alterações de Modelo



Resumo


Após o banco de dados ter sido publicado em produção ocorrem situações específicas quando o ciclo de desenvolvimento é quebrado. Pode haver casos em que seja necessário alterar diretamente o schema do banco de dados de produção, como procedures, índices, etc., no intuito de aplicar correções emergenciais para um bug severo descoberto durante o ciclo de desenvolvimento. Embora estes casos devam ser exceções, a realidade nos mostra que isso ocorre a todo tempo e, pior ainda, as correções não são propagadas adequadamente para o desenvolvimento, testes futuros, controle de código-fonte e novas funcionalidades. Este tipo de situação traz diversos problemas a qualquer ciclo de desenvolvimento após a alteração. Pense nas situações a seguir que são muito comuns se você lida com clientes que não possuem um ciclo de desenvolvimento com processos claros e bem definidos:

  • Após o deployment da versão 1 do banco de dados, o administrador de banco de dados percebeu que as queries estão sendo executadas com muita lentidão, causando gargalos de memória, IO e ciclos de CPU. Ele investigou os planos das queries e descobriu que falta um índice para uma tabela em particular, forçando o SQL Server a realizar operações custosas de table scan. Para resolver o problema o nosso eficiente DBA criou um índice na tabela para satisfazer as queries lentas, tornando os processos de consulta mais rápidos. Infelizmente ele não informou os desenvolvedores sobre a adição deste índice, tampouco fez o check-in de suas alterações no Team Foundation Server. Com o desenvolvimento da versão 2 do banco de dados o VSDBCMD reconhece que o índice não faz parte do arquivo .dbschema utilizado no deployment, removendo o índice “desnecessário” que causa a falta de sincronia para a tabela específica. Obviamente isso fará com que o problema de lentidão do início dessa história volte a ocorrer. Pense na mesma situação ocorrendo para uma stored procedure que causa deadlocks no banco de dados, ou em outros problemas severos sendo corrigidos temporariamente pelo DBA e que serão continuamente desfeitos a cada publicação de nova versão do banco de dados.



  • Em alguns casos o processo de deployment do banco de dados não inclui o uso do comando VSDBCMD diretamente antes do deployment porque os DBA’s tem medo de executá-lo contra um banco de dados rodando em produção. Neste caso você constrói o script de deployment em outra máquina, leva-o para a máquina de produção e então executa o script. Neste caso você assume que o schema esperado é exatamente o mesmo publicado na versão 1 (ou na última versão publicada). Contudo, o arquivo .dbschema foi construído e testado partindo da premissa de que o schema em produção é o mesmo publicado no último deployment. Considerando as alterações feitas diretamente em produção, das quais o time de desenvolvimento não tem notícia, o atual script de deployment poderá falhar.

Esta lista de cenários é interminável e sempre há situações de altíssimo estresse no time, onde o único objetivo a ser alcançado é concluir as tarefas e corrigir os bugs. Não é muito difícil perder o controle das mudanças feitas durante esse período.

Em grandes projetos, o time de Build é responsável por prover os bits para o procedimento de deployment. Eles criam os artefatos relevantes a partir dos projetos e os coletam do BuildDrop (local onde o resultado do build é copiado) para entregar aos DBA’s. O time de build não se envolve com o deployment do banco de dados em produção e raramente os DBA’s se importam com o que acontece em desenvolvimento, controle de código-fonte e testes.





Figura 118 Ilustração do caminho comum dos arquivos para deployment

A situação é sempre a mesma. Você já realizou o deployment da versão 1 do banco de dados e agora quer atualizar o banco de dados para a versão 2 (upgrade). Nós iremos apresentar abordagens diferentes para encontrar desvios de modelo, bem como quando utilizar cada uma delas. Você irá notar que estas abordagens tratam diferentes níveis de paranóia e até de confiança entre as pessoas e a deployment engine. A escolha final é uma questão de experiência e depende de diversos fatores como o determinismo das mudanças, como as pessoas conduzem o ciclo de vida do banco de dados, o quão severo é a auditoria dos processos de mudança e deployment, etc. Há ainda fatores como o tamanho do banco de dados, disponibilidade de backups, tempos de restauração e janelas de manutenção, que influenciam nas decisões sobre como reagir no caso de um erro de deployment e no tempo necessário para se reestabelecer o estado anterior do banco de dados.



Confiança é bom, controle é melhor. Embora você possa perguntar ao DBA se algo mudou desde o último deployment da versão 1 do banco de dados, você deveria verificar novamente para ter certeza de que nada ficou de fora, mesmo as mudanças menores que podem não ser relevantes para o DBA, mas que para você podem causar grandes problemas. Adicionalmente, o DBA pode ter confiança nos produtos, mas não deseja que o desenvolvedor execute o VSDBCMD no banco de dados de produção. Consequentemente, ele irá extrair o atual schema de produção e enviar para os desenvolvedores para que eles possam comparar ao schema que ficou registrado na última versão, imediatamente antes do deployment da versão 1. Co isso, podemos ter certeza de que nenhum comportamento inesperado ocorra.

RECOMENDAÇÃO

Descobrir desvios de modelo antes da execução do deployment pode ser sua garantia contra estes problemas durante o deployment. Sugerimos que sempre sejam executados procedimentos de verificação em busca de desvios de modelo antes da execução de um deployment em produção.

Para um ciclo de desenvolvimento de banco de dados perfeito, seria ótimo se fosse possível congelar o schema em produção de forma que pudéssemos nos apoiar sob um schema estável em execução. Caso isso não seja possível em virtude de mudanças inesperadas para correção de problemas, no mínimo precisamos garantir a comparação dos schemas ANTES da execução de qualquer deployment.

Se você puder organizar esta tarefa, é interessante até realizar comparações regulares, independentes de deployment, com o intuito de verificar se não há alterações em produção que precisam ser portadas para o desenvolvimento.



Catálogo: 2012
2012 -> Fapesp e inpe promovem workshop para discutir relatório do ipcc sobre Riscos de Extremos Climáticos e Desastres nas Américas do Sul e Central
2012 -> Anima Mea Concerto no Convento Corpus Christi, 14junho2015
2012 -> Branches e merge com Visual Studio Team Foundation Server 2012
2012 -> Perfil: Time de Qualidade, Testadores
2012 -> Lista de Biologia Vanessa / Frente a volume 2
2012 -> CÂmara municipal de sapopema estado do paraná cnpj: 77. 774. 487/0001-94 Av. Manoel Ribas, 520, cep – 84. 294-000 Fone/Fax (43) 3548-1258
2012 -> Instituto nacional de estudos e
2012 -> Gabinete do ministro
2012 -> Indice de leis complementar 2012 lei 114 À 154 lei complementar 114 de 19 de janeiro de 2012
2012 -> Agenda do presidente do Ibram, Angelo Oswaldo de Araújo Santos 30 de dezembro de 2014

Baixar 7.59 Mb.

Compartilhe com seus amigos:
1   ...   54   55   56   57   58   59   60   61   62




©bemvin.org 2020
enviar mensagem

    Página principal
Prefeitura municipal
santa catarina
Universidade federal
prefeitura municipal
pregão presencial
universidade federal
outras providências
processo seletivo
catarina prefeitura
minas gerais
secretaria municipal
CÂmara municipal
ensino fundamental
ensino médio
concurso público
catarina município
Dispõe sobre
reunião ordinária
Serviço público
câmara municipal
público federal
Processo seletivo
processo licitatório
educaçÃo universidade
seletivo simplificado
Secretaria municipal
sessão ordinária
ensino superior
Relatório técnico
Universidade estadual
Conselho municipal
técnico científico
direitos humanos
científico período
espírito santo
pregão eletrônico
Curriculum vitae
Sequência didática
Quarta feira
prefeito municipal
distrito federal
conselho municipal
língua portuguesa
nossa senhora
educaçÃo secretaria
segunda feira
Pregão presencial
recursos humanos
Terça feira
educaçÃO ciência
agricultura familiar