O que Há de Novo e Interessante no Optim Development Studio 2.2

Agilize seu desenvolvimento de aplicativos em bancos de dados heterogêneos

Optim™ Development Studio, anteriormente conhecido como Data Studio Developer, possui novos avanços na compreensão da visão do Integrated Data Management da IBM. Este artigo explica como os desenvolvedores, arquitetos e administradores de bancos de dados (DBAs) podem colaborar de maneiras novas e produtivas em ambientes de banco de dados heterogêneos com bancos de dados Oracle e IBM. Aprenda como você pode melhorar ainda mais o desempenho de seus aplicativos usando o Optim Development Studio e o pureQuery.

Sonali Surange, Trưởng nhóm Các công cụ pureQuery của Data Studio, EMC

Sonali Surange photoSonali Surange é a Arquiteta para as ferramentas do Optim Development Studio pureQuery no IBM Silicon Valley Lab. Anteriormente, Sonali conduziu o desenvolvimento de diversos componentes principais das ferramentas do Visual Studio .Net para os bancos de dados IBM.


nível de autor Contribuidor do
        developerWorks

18/Jun/2009

Introdução

Em junho de 2009, a IBM anunciou a atualização e a renomeação de diversos produtos que eram chamados Data Studio para Optim. As soluções Optim têm como objetivo a administração na visão do Integrated Data Management. O Integrated Data Management é definido como um ambiente integrado e modular para gerenciar dados de aplicativos corporativos e otimizar aplicativos acionados por dados, desde requisitos ao isolamento entre os ambientes heterogêneos. Os principais novos recursos no desenvolvimento de dados e acesso a dados heterogêneos são fornecidos com produtos anteriormente conhecidos como Data Studio Developer e Data Studio pureQuery Runtime, e que são chamados agora Optim Development Studio e Optim pureQuery Runtime, respectivamente.

Ambientes de desenvolvimento raramente compreendem bancos de dados de um único fornecedor, e aplicativos em uma organização raramente usam uma única metodologia de acesso ao banco de dados. Semelhantemente, os membros da equipe em uma organização de desenvolvimento são raramente limitados a realizar uma tarefa. A realidade é que as tarefas do desenvolvedor, do DBA e do arquiteto são sobrepostas e, dependendo do tamanho da organização, podem até mesmo ser realizadas pela mesma pessoa.

O maior objetivo do Optim Development Studio é fornecer um ambiente de desenvolvimento integrado para ajudar a facilitar a transferência de habilidades entre projetos, permitir a colaboração entre funções como arquitetos de dados, DBAs e desenvolvedores, aumentar a velocidade de desenvolvimento e melhorar o desempenho de aplicativos em vários ambientes de bancos de dados. Além disso, uma melhor colaboração certamente poderá melhorar o alinhamento geral com os objetivos de negócios. Por exemplo, poderá ajudar a garantir que requisitos importantes relacionados à privacidade de dados não sejam ignorados conforme um aplicativo e os dados passem pelo desenvolvimento e implementação.

O Optim Development Studio melhora o acesso aos seus dados e fornece ferramentas para acelerar o teste iterativo em bancos de dados Oracle e IBM (a família DB2® e o Informix® Dynamic Server). Juntamente com o recurso para identificar pontos importantes de desempenho durante o desenvolvimento, os desenvolvedores podem facilmente sintonizar o SQL no início da fase de desenvolvimento quando as correções são muito mais fáceis e menos custosas para serem implementadas, em vez de implementá-las após o aplicativo ser movido para teste ou produção.

O Optim Development Studio, Versão 2.2, fornece uma poderosa integração que conecta os dois pontos entre as tarefas e as funções que você precisa executar. Ele confere poderes de colaboração em equipe, fornece um impulso significativo na produtividade, estimula e permiti o teste iterativo e melhora o desempenho de acesso aos dados.

Aplicativo de amostra usado neste artigo

Este artigo usa um único aplicativo de cartão de crédito Oracle parcialmente escrito usando o estilo de método anotado (consulte Recursos para obter informações sobre a API do pureQuery). Algumas partes do aplicativo já estão em produção e foram escritas em JDBC. A tabela do banco de dados que contém informações de cartões de crédito possuem informações sigilosas, tais como números de cartões de crédito e data de expiração. Isso é importante observar porque alguns dos principais aprimoramentos no release determinam como os dados privados são tratados no desenvolvimento.

O artigo abrange o ciclo de vida básico de nosso aplicativo em um alto nível como uma estrutura para ilustração de novos recursos no Optim Development Studio, incluindo os seguintes tópicos:

Trabalhando com usabilidade e produtividade consistentes para bancos de dados Oracle e IBM

Se sua organização necessita de banco de dados heterogêneos e do desenvolvimento de aplicativo de banco de dados em bancos de dados IBM e Oracle, o Optim Development Studio 2.2 reduz a curva de aprendizado para adoção com interfaces com o usuário consistentes para bancos de dados Oracle e IBM.

Você pode esperar melhorias na produtividade porque a maioria dos benefícios do Optim Development Studio 2.2 e releases anteriores do Data Studio Developer agora está disponível para bancos de dados Oracle. Consulte Recursos por tabela de banco de dados para obter detalhes específicos.

Construa aplicativos Java para Oracle com métodos de acesso a dados do pureQuery

Figuras 1, 2 e 3 mostram como é fácil criar uma camada de acesso a dados do pureQuery para a tabela de cartão de crédito no Oracle.

Figura 1. Gerar código pureQuery a partir do objeto de banco de dados Oracle
Gerar código pureQuery a partir do objeto de banco de dados Oracle

Você pode facilmente realizar caixas alternantes do bean Java e nomes de campos se seus objetos de bancos de dados contiverem espaços ou sublinhados. A Figura 2 mostra como você pode gerar o código usando as preferências de caixa alternante.

Figura 2. Gerar estilo de método anotado a partir da tabela usando a caixa alternante
Gerar estilo de método anotado a partir da tabela usando a caixa alternante

Ao gerar o código a partir de instruções SQL únicas ou a partir de arquivos contendo instruções SQL, você pode especificar tipos de parâmetros. A Figura 3 mostra como você pode, opcionalmente, alterar os tipos de parâmetros ao gerar beans a partir de uma ou mais instruções SQL.

Figura 3. Ao gerar o código a partir de instruções SQL, altere os tipos de parâmetros conforme necessário ou mantenha os padrões
Ao gerar o código a partir de instruções SQL, altere os tipos de parâmetros conforme necessário ou mantenha os padrões

Melhorando a produtividade da construção de aplicativos Java (bancos de dados Oracle e IBM)

O assistente de conteúdo SQL fornece validação, destaques e outros benefícios de edição SQL com o JDBC, SQL nativo no JPA, código Hibernate ou código pureQuery para ajudar os desenvolvedores a detectarem erros mais antecipadamente. A Figura 4 mostra um exemplo de como Ctrl-espaço (ou seu pressionamento de tecla padrão preferido para assistência de conteúdo) fornece nomes de tabelas apropriados para a cláusula FROM no JDBC.

Figura 4. Assistência de conteúdo e destaques do SQL
Assistência de conteúdo e destaques do SQL

Uma nota sobre a verificação de sintaxe para Oracle

A sintaxe do SQL 99 é suportada para Oracle. Neste release, você pode optar por desativar o suporte de validação SQL ou optar por mostrar erros como avisos para seus aplicativos Oracle que usam uma sintaxe específica do Oracle.

Obtendo um insight sobre as métricas de desempenho emitidas e relacionadas ao SQL

Para qualquer aplicativo Java novo ou existente que acessa um banco de dados Oracle, mesmo aqueles criados usando uma estrutura como o Hibernate, você poderá ver as instruções SQL que são emitidas e as métricas de desempenho relacionadas, tais como frequência e tempo decorrido. Para usar os recursos do pureQuery com o código Java existente, será necessário capturar o SQL enquanto o aplicativo estiver em execução. Este recurso é chamado otimização de cliente, e é descrito no tutorial em Recursos intitulado “Otimizar Aplicativos JDBC Existentes com pureQuery.”

Métricas de desempenho para bancos de dados Oracle e IBM

Anteriormente, métricas de desempenho eram disponíveis apenas para aplicativos de estilo sequencial e para aqueles para os quais o SQL foi capturado usando a otimização de cliente. No Optim Versão 2.2, este recurso também está disponível para aplicativos do estilo de método anotado do pureQuery.

A Figura 5 abaixo mostra as métricas de desempenho para o aplicativo de cartão de crédito usando o estilo de método anotado do pureQuery, o que pode ajudar a identificar áreas que podem necessitar mais ajustes.

Figura 5. Estatísticas de desempenho para estilo de método anotado
Estatísticas de desempenho para estilo de método anotado

Novos métodos auxiliares para determinar o tempo de execução JRE e pureQuery (para bancos de dados Oracle e IBM)

Para os aplicativos Oracle e IBM pureQuery você pode descobrir qual JRE seu aplicativo está usando e também quais versões de driver JDBC e tempo de execução pureQuery são usados. Isso pode ajudar a certificar se o aplicativo está usando os níveis de pré-requisito corretos.

Um exemplo disso é fornecido na classe SampleUtil que é gerada com seu aplicativo de estilo anotado ou sequencial pureQuery, conforme mostrado na Listagem 1. Você pode executar o método auxiliar principal desta classe para ver os recursos e versões de tempo de execução que seu aplicativo usa.

Listagem 1. Classe SampleUtil
		// Obter informações sobre função e versões
		// de ambientes de tempo de execução pureQuery e Java
	publicstaticvoid main(String[] args)
	{
		System.out.println( com.ibm.pdq.tools.DataVersion.getVersion());
		System.out.println( com.ibm.pdq.tools.DataVersion.getConfiguration());
		System.out.println( com.ibm.pdq.tools.DataVersion.getFeatures());
		System.out.println( com.ibm.pdq.tools.DataVersion.validate()); 

	}

A Figura 6 mostra como essas informações são retornadas.

Figura 6. Obter informações sobre tempo de execução e versões JRE e pureQuery e sobre recursos suportados
Obter informações sobre tempo de execução e versões JRE e pureQuery e sobre recursos suportados

Substituir SQL em aplicativos Oracle existentes--sem alterar o código

Conforme anteriormente disponível para bancos de dados IBM, você pode capturar o SQL de aplicativos em execução e, em seguida, modificar o arquivo de captura resultante para substituir qualquer SQL com baixo desempenho por um que tenha sido ajustado, sem a necessidade de acesso ao código de origem do aplicativo. Isso pode ser útil em situações críticas, nas quais você precisa pelo menos corrigir temporariamente um problema SQL urgente mas não pode esperar por uma correção proveniente de um fornecedor ou desenvolvedor. O recurso de substituição SQL agora foi estendido para o Oracle com o Optim Development Studio (consulte Recursos para obter informações adicionais).

Recursos específicos do Oracle

Procure por mais conteúdo sobre os seguintes recursos específicos do Oracle:

  • Editar, executar, depurar e implementar procedimentos PL/SQL no Oracle e DB2
  • Executar comandos usando o novo CLPPlus

O Optim 2.2 oferece aos bancos de dados Oracle e IBM a capacidade de comparar duas instruções SQL como texto. Você pode fazer isso se estiver editando o arquivo de captura usando o editor XML do pureQuery ou visualizando um resumo SQL. Isso pode não apenas melhorar muito a capacidade de leitura ao trabalhar com grandes instruções SQL, mas também comparar e fazer alterações facilmente usando os recursos de comparação de texto do Eclipse.

A Figura 7 mostra como uma instrução SELECT capturada de um aplicativo Oracle pode ser substituída por uma instrução melhor. As duas instruções SQL são comparadas como texto para fácil visualização e modificação.

Figura 7. Comparar duas instruções SQL como texto
Comparar duas instruções SQL como texto

Explicar as informações disponíveis no resumo SQL (IBM e Oracle)

Para os bancos de dados Oracle (Versão 10.1 e superior) e IBM, você pode obter um insight sobre o funcionamento de seu SQL e determinar qual SQL deverá ser ajustado. Você pode obter informações sobre o custo previsto, se os índices são usados, quantas junções são usadas e assim por diante. A Figura 8 mostra como essas informações são visualizadas a partir do resumo SQL.

Figura 8. Explicar informações no resumo SQL
Explicar informações no resumo SQL

Impingindo requisitos de privacidade de dados desde a modelagem até o teste

Os bancos de dados de produção geralmente contêm informações sigilosas, tais como números de cartão de crédito ou números de seguridade social. Quando os arquitetos de dados usam o InfoSphere™ Data Architect para criar modelos de dados para esses bancos de dados, podem identificar quais atributos ou colunas contêm informações sigilosas, e os arquitetos pode especificar políticas de privacidade a serem usadas com eles.

Em seguida, associando este modelo a um banco de dados do arquiteto, os desenvolvedores podem facilmente ver quais colunas são identificadas como contentoras de informações sigilosas. Isso pode ajudá-los a manter a conformidade em como controlam esses dados em seus aplicativos. Além disso, podem ver dentro de seus aplicativos onde essas colunas privadas estão sendo usadas no contexto para garantir que não estejam fazendo nada inapropriado, tal como imprimindo dados nessas colunas.

Sugestão: Se você tiver duas funções, poderá compartilhar um shell com o InfoSphere Data Architect para acessar os recursos do arquiteto de dados a partir de seu desktop de desenvolvimento.

Agora você pode associar um modelo de dados físico do InfoSphere Data Architect a uma definição de conexão no repositório de conexão comum. (Para obter mais informações sobre conexões comuns, consulte o artigo Conexões Comuns em Recursos.) Os membros de equipe criando conexões a partir do repositório de conexão agora podem acessar o mesmo modelo usando suas conexões, garantindo um desenvolvimento consistente e handshake de arquiteto. Qualquer conexão associada a um modelo contendo informações privadas agora pode mostrar essa associação no Data Source Explorer com um ícone de privacidade ícone de privacidade. Os aplicativos que usam SQL contendo colunas com informações de privacidade mostram o SQL com um ícone de privacidade ícone de privacidade.

Na Figura 9, o modelo físico de cartão de crédito está associado à conexão com o banco de dados. Como resultado, a coluna de cartão de crédito é mostrada como privada no ambiente do desenvolvedor.

Figura 9. Associar o modelo à conexão e ver colunas privadas
Associar o modelo à conexão e ver colunas privadas

Conforme mencionado, os desenvolvedores podem usar o resumo SQL para ver quais instruções SQL contêm informações sigilosas e onde essas instruções SQL aparecem no aplicativo. A Figura 10 mostra que uma instrução de atualização está manipulando uma coluna que contém dados privados.

Figura 10. Mostrar o uso das colunas "privadas" no contexto
Mostrar o uso das colunas

Para ver apenas as instruções SQL usando colunas privadas, use o filtro conforme mostrado na Figura 11. Além disso, você pode obter detalhes sobre as políticas de privacidade aplicadas para esta coluna no modelo de dados físico e facilmente navegar para o próprio modelo de dados físico associado.

Figura 11. Localizar apenas as instruções que usam colunas privadas
Localizar apenas as instruções que usam colunas privadas

Mais sobre filtros no resumo SQL

Os aprimoramentos adicionais de filtragem de resumo SQL agora permitem filtrar em instruções do tipo select, insert, update e delete.

Ao usar os aplicativos pureQuery, você pode determinar se o valor sigiloso está sendo impresso no console. A Figura 12 mostra como o valor de um número de cartão de crédito flui pelo aplicativo. Além disso, um filtro é aplicado para ver se e onde o valor é impresso para o console.

Figura 12. Identificar todos os locais em seu aplicativo que possam imprimir informações sigilosas no console
Identificar todos os locais em seu aplicativo que possam imprimir informações sigilosas no console

Até então, você obteve um insight sobre como as informações sigilosas são usadas em um aplicativo pureQuery que será executado no Oracle. Observe que, embora este exemplo tenha foco no acesso a dados do pureQuery, os recursos também estão disponíveis nos aplicativos JDBC existentes, tais como Hibernate ou JPA, quando as instruções SQL são capturadas usando a otimização de cliente.


Desenvolvendo rapidamente bancos de dados de desenvolvimento ou de teste a partir de bancos de dados heterogêneos

Continuando o exemplo, assuma que você esteja implementando parte do aplicativo Oracle com base no JDBC no DB2. Para isso, crie um banco de dados de desenvolvimento DB2 que reflita as características do banco de dados Oracle, enquanto protege os dados privados.

Servidores suportados para recursos de copiar e colar

  • Se estiver copiando entre Oracle e DB2, use DB2 para LUW 9.7 no modo de compatibilidade Oracle e o Oracle Versão 10 ou Versão 11.
  • Se estiver copiando do Oracle para Oracle, o Oracle deverá estar na versão 10 ou Versão 11.
  • Se estiver copiando do DB2 para DB2 no LUW, use as Versões 9.5 e 9.7.

O Optim Development Studio oferece uma forma fácil para copiar e colar objetos e subconjuntos de dados entre bancos de dados necessários para uma determinada função no ambiente de desenvolvimento ou de teste. Além disso, se os dados de teste forem sigilosos e não devam identificar indivíduos, o Optim Development Studio poderá gerar a entrada apropriada para a solução Optim Test Data Management extrair e mascarar os dados para migração.

Você pode mover ou copiar objetos entre bancos de dados homogêneos (Oracle para Oracle, ou entre bancos de dados DB2 para Linux®, UNIX®, ou Windows® [LUW]) ou entre bancos de dados heterogêneos (Oracle para DB2 para LUW, e DB2 para LUW para Oracle). Você pode copiar o banco de dados inteiro, objetos relacionados ou um único objeto por vez.

As Figuras 13 e 14 mostram a sequência da cópia da tabela de cartão de crédito do Oracle e sua cópia no DB2 com a especificações opcional de mascaramento de privacidade de dados. Observe que a tabela de cartão de crédito do cliente possui o ícone de privacidade para o número de conta primária.

Figura 13. Copiar a partir do banco de dados de produção Oracle
Copiar a partir do banco de dados de produção Oracle

A Figura 14 mostra como colar no DB2. Se você especificar que deseja a privacidade de dados, o Optim Development Studio fará o seguinte:

  • Copia os objetos de bancos de dados especificados
  • Gera o arquivo de exportação Optim apropriado, o qual pode ser consumido pela Optim Test Data Management Solution para copiar os dados (ou um subconjunto referencialmente intacto) para o objeto recém-criado com o mascaramento apropriado. Consulte Recursos para obter um vídeo mostrando o Optim Test Data Management com Data Privacy Option em ação.
Figura 14. Colar no DB2 e especificar mascaramento de privacidade de dados
Colar no DB2 e especificar mascaramento de privacidade de dados

Recomendação: O recurso de copiar e colar no Optim Development Studio melhora a produtividade e cria pequenos ambientes de desenvolvimento ou de teste. Ele não é destinado para migração de grandes quantidades de objetos ou grandes quantidades de dados. Para grandes migrações ou a criação de ambientes semelhantes ao de produção, use outras ferramentas, tais como DB2 High Performance Unload para rápida migração de grandes quantidades de dados ou Optim Test Data Management para maior flexibilidade em relação à cópia de objetos de negócios completos.

Integração com o Optim Query Tuner para ajudar desenvolvedores na codificação SQL eficiente

Agora que você criou o banco de dados de desenvolvimento DB2 e moveu o aplicativo JDBC para lá, você poderá otimizar o aplicativo ajustando seu SQL conforme necessário para acesso ao DB2.

Geralmente, os desenvolvedores não têm foco no ajuste do SQL. Entretanto, se esta tarefa pudesse ser mais fácil, os desenvolvedores poderiam aprender habilidades de ajuste do SQL, assim como melhorar o desempenho do aplicativo de forma proativa durante o desenvolvimento, para evitar alterações trabalhosas nos estágios de pós-desenvolvimento ou produção. Este é o objetivo do Optim Query Tuner, o que pode fornece conselhos de especialistas para ajudar os desenvolvedores na escrita de SQL mais eficiente, ou pelo menos ter informações suficientes em mãos para solicitar novos índices ou estatísticas ao DBA.

Embora o Optim Query Tuner esteja disponível como um produto separado, ele é perfeitamente integrado com o Optim Development Studio quando instalado em um shell compartilhado para fornecer pontos de ativação naturais para ajuste de consulta, tal como a partir do editor Java® ou a partir da visualização de resumo SQL e do editor XML do pureQuery.

A Figura 15 mostra a visualização de resumo SQL do aplicativo de cartão de crédito de exemplo no DB2, para o qual as informações de custo previstas também são listadas. Você pode selecionar a consulta mais trabalhosa, e pode ativar o Optim Query Tuner diretamente a partir dessa visualização.

Figura 15. Selecionar a consulta mais trabalhosa e ajustá-la
Selecionar a consulta mais trabalhosa e ajustá-la

Agora, visualize o conselho fornecido e faça as alterações adequadas. No exemplo, o Optim Query Tuner recomenda que você atualize as estatísticas, o que é possível executar diretamente a partir da ferramenta Query Tuner. (Dependendo se um desenvolvedor estiver gerenciando seu próprio banco de dados de desenvolvimento ou não, talvez ele precise solicitar ao DBA que execute as estatísticas.)

Figura 16. Conselho a partir do Optim Query Tuner
Conselho a partir do Optim Query Tuner

Agora você pode usar novamente o resumo SQL para ver se a estimativa de custo foi reduzida apenas realizando esta simples tarefa.

Figura 17. Recuperar informações explicativas para o novo SQL para ver o custo melhorado
Recuperar informações explicativas para o novo SQL para ver o custo melhorado

Aumentando a habilidade de uso de SQL estático para melhorar o desempenho de aplicativos DB2

Você pode otimizar ainda mais o aplicativo no DB2 usando SQL estático. Isso gerará os seguintes aprimoramentos:

  • Substituição literal com parâmetros durante o processo de captura
  • Flexibilidade de ligação
  • Capacidade de salvar e comparar métricas de desempenho. Observe que o recurso de comparação de métricas de desempenho está disponível em bancos de dados Oracle e IBM

Substituição literal com parâmetros durante o processo de captura

Em releases anteriores do Optim Development Studio e Optim pureQuery Runtime, as instruções SQL que usavam literais não tinham o benefício da execução de SQL estático porque o processo de captura tratava cada instrução de forma diferente (conforme o valor no literal era alterado).

Agora o Optim pureQuery Runtime 2.2 pode substituir tais instruções SQL por instruções com parâmetros para que muitas instruções SQL exclusivas possam ser consolidadas em uma, melhorando a proporção de acesso ao cache para o SQL executado dinamicamente, ou tornando mais fácil converter para SQL estático, conforme mostrado na Figura 18.

Figura 18. Literais substituídos por parâmetros durante o processo de captura do pureQuery
Literais substituídos por parâmetros durante o processo de captura do pureQuery

Flexibilidade de ligação

Em seguida, ligue instruções SQL em um pacote DB2 e execute o aplicativo usando o SQL estático, conforme mostrado na Figura 19. Além disso, observe o uso dos novos recursos em 2.2, incluindo a capacidade de ligar um único pacote de um pdqxml capturado a partir da guia do banco de dados de resumo do SQL. Você também pode optar por executar o processo de ligação no plano de fundo para evitar interromper outro trabalho sendo realizado.

Figura 19. Ligar pacote único
Ligar pacote único

Capacidade de salvar e comparar métricas de desempenho

Você pode salvar o conjunto de dados de desempenho para cada execução e comparar os resultados de desempenho entre execuções de seu aplicativo. Usando os recursos de comparação de desempenho, agora você pode comparar o desempenho de seu aplicativo entre a execução dinâmica e a execução estática com substituição literal.

A Figura 20 mostra um elevado desempenho significativo no sistema de exemplo. (Observe que seus resultados podem variar significativamente com base em seu ambiente e dados de execução específicos.)

Figura 20. Comparar o desempenho da execução entre a execução dinâmica e a execução de SQL estático com substituição literal
Comparar o desempenho da execução entre a execução dinâmica e a execução de SQL estático com substituição literal

Nas últimas seções, você ajustou a consulta e seu custo previsto. Em seguida, você transformou instruções SQL usando literais em SQL com parâmetros para que o código possa ser executado usando o modo de execução estático. Você, então, confirmou o desempenho do tempo de execução melhorado pela execução desta etapa.

A próxima seção mostra como o Optim Development Studio reduz o custo associado a aplicativos em produção ao fazer alterações em esquemas de bancos de dados.

Executando análise de impacto avançada

Os aplicativos de produção passam por alterações periodicamente. Pode haver alterações nos requisitos de negócios ou funcionalidade de recurso que também necessite alterações no esquema de banco de dados. Geralmente, as alterações de bancos de dados necessitam de alterações no código Java associado usado para consultar e tratar resultados. Se você perder uma alteração necessária em um aplicativo de produção, você poderá potencialmente causar uma interrupção de aplicativo. Se o seu projeto estiver em desenvolvimento, alterações de última hora no esquema do banco de dados podem causar alterações significativas no código que colocam em risco a entrega com qualidade e tempo satisfatórios, aumentando assim o custo.

Além disso, se você estiver usando SQL estático no DB2, alterar o SQL pode causar alterações nos pacotes implementados existentes que precisariam ser religados. Para minimizar a interrupção causada pelas religações de pacotes, é importante garantir que os pacotes existentes que não precisam ser alterados possam permanecer intatos.

Alterar o gerenciamento é uma tarefa crítica que deve ser gerenciada com o máximo de informação possível para ajudar a equipe a tomar boas decisões. A calibragem do impacto de um alteração iminente do esquema de banco de dados em seu aplicativo em produção ou desenvolvimento agora é realizada de forma ainda mais fácil no Optim Development Studio.

O exemplo mostra como um DBA e a equipe de desenvolvimento podem avaliar o impacto da eliminação de uma coluna CRDTCRD_EXP_DATE em um aplicativo de cartão de crédito no DB2. Uma abordagem semelhante pode ser tomada para colunas sendo renomeadas e outras alterações de esquema de banco de dados.

Geralmente, quando um DBA propõe alterações, ele fornece scripts com data definition language (DDL), tais como instruções ALTER, para executar essa alteração. Para criar a DDL, faça o seguinte:

  1. Clique com o botão direito do mouse no script ALTER e selecione Localizar referência no resumo SQL.
  2. Use o Resumo SQL para visualizar qual SQL seria impactado com esta alteração. A partir de cada SQL, você pode navegar para o local na origem onde ele precisa ser alterado.
  3. Para aplicativos existentes em que o SQL foi capturado, também pode ser necessário gerenciar o SQL capturado para remover qualquer SQL que possa ser invalidado. Se você precisar manter as instruções SQL, poderá movê-las para seus próprios pacotes. Posteriormente, você poderá capturar novamente o novo SQL em um novo pacote ou arquivo de captura.

Para ler mais sobre a captura de SQL a partir de aplicativos existentes e o uso de SQL estático, consulte o tutorial intitulado "Otimizar aplicativos JDBC existentes com o pureQuery" em Recursos. O Optim Development Studio torna o processo simples, conforme mostrado na Figura 21.

Figura 21. Localizando o SQL impactado por uma alteração e, em seguida, excluindo do arquivo de captura
Localizando o SQL impactado por uma alteração e, em seguida, excluindo do arquivo de captura

Resumo dos aprimoramentos do editor do arquivo de captura

Use o editor melhorado para obter mais controle sobre seu arquivo capturado e como os pacotes DB2 são construídos. Você pode:

  • Criar novos pacotes
  • Mover instruções de um pacote para outro
  • Excluir instruções SQL existentes ou substituí-las por instruções compatíveis
  • Comparar duas instruções SQL usando recursos de comparação de texto no Eclipse
  • Ligar seletivamente pacotes ou instruções dentro de pacotes
  • Nomear seus pacotes, ou deixar que a ferramenta os nomeie para você
  • Restaurar facilmente uma instrução SQL de volta ao estado capturado original, ou restaurar o arquivo capturado de volta à última boa versão
  • Filtrar instruções SQL pelos objetos de bancos de dados ou pelos tipos SQL (ou qualquer outro critério relacionado ao assunto), que torna mais fácil localizar o que você estiver procurando em arquivos de captura muito grandes.

Neste ponto, se o impacto no aplicativo e pacotes de bancos de dados for aceitável, você ou o DBA poderão executar a instrução ALTER. Siga essas etapas para concluir as alterações necessárias para seu aplicativo ou pacotes de bancos de dados:

  1. Use os recursos de validação SQL para identificar o SQL que precisa ser alterado no código e use o assistente de conteúdo para substituí-lo por outros válidos. Os recursos de validação estão disponíveis para aplicativos JDBC, para SQL nativo em aplicativos JPA, para aplicativos Hibernate e para aplicativos pureQuery.
  2. Execute novamente o aplicativo e capture seu SQL.

    Com a Versão 2.2, você pode capturar partes logicamente relacionadas de seu aplicativo em arquivos de captura separados. Isso pode ajudar a isolar os efeitos de alterações na DDL para apenas aqueles aplicativos que usam partes desse esquema alterado.

    Também na Versão 2.2, os pacotes que já foram configurados e ligados podem ser marcados no arquivo de captura como não tocar ou FINAL. Instruções adicionais de uma captura incremental são, então, capturadas em um novo pacote.

  3. Você pode verificar se os pacotes já existem para artefatos de seus projetos especificando o seguinte nos bindprops e, então, executando a ligação: defaultOptions = –verifyPackage DETAIL. O console imprime informações sobre os pacotes que já existem no banco de dados, se houver. Você pode facilmente identificar quais interfaces ou arquivos capturados do pureQuery precisam ser religados após a alteração do código.
  4. Use o novo recurso para ligar pacotes únicos a partir do resumo SQL para ligar apenas os pacotes alterados. Ou, você pode especificar -differenceOnly TRUE em seu arquivo default.bindprops, o qual liga apenas os pacotes alterados. Observe que a eliminação de uma coluna referida por uma ou mais instruções em pacotes ligados invalida os pacotes no banco de dados.

Para limpar quaisquer pacotes existentes inválidos como um resultado desta alteração, você pode usar a nova função para localizar pacotes inválidos em um banco de dados ou nível de esquema. Então, você pode selecionar vários deles e eliminá-los, conforme mostrado na Figura 22.

Figura 22. Localizar e eliminar pacotes inválidos no Data Source Explorer
Localizar e eliminar pacotes inválidos no Data Source Explorer

Compreendendo aprimoramentos do tempo de execução do pureQuery

  • Para aplicativos pureQuery, agora você pode especificar propriedades de nível de aplicativo que permitem configurar propriedades de aplicativos sem reiniciar o servidor da Web.
  • Usando o novo suporte para SQL, a atualização posicionada é mais rápida do que a atualização ou exclusão procurada.
  • Para otimização de aplicativos existentes usando a otimização de cliente, você pode gerar vários arquivos de captura para bloquear informações capturadas durante a captura incremental. Você pode, então, mesclar os arquivos capturados usando a linha de comando ou as ferramentas do Optim Development Studio.

Comparando recursos de banco de dados

Esta tabela mostra quais recursos estão disponíveis para cada um dos bancos de dados listados.

Tabela 1. Suporte de recurso por plataforma de banco de dados
RecursoDB2 para LUWIDSDB2 para z/OSDB2 para iOracle
Geração de código pureQuery Sim Sim Sim Sim Sim
Otimização de cliente Sim Sim Sim Sim Sim
SQL editando recursos como assistente de conteúdo, validação, destaque
pureQuery, JDBC, JPA, Hibernate
Sim Sim Sim Sim Sim
Todos os benefícios do resumo Sim Sim Sim Sim Sim
Métricas de desempenho e comparação no resumo SQL Sim Sim Sim Sim Sim
Dados SQL Explain no resumo SQL Sim Sim Sim Sim 10.1 ou superior
Métodos auxiliares para tempo de execução e JRE Sim Sim Sim Sim Sim
Privacidade de dados desde a modelagem até o teste Sim Sim Sim Sim Sim
Teste rápido e fácil e desenvolvimento de banco de dados de desenvolvimento Homogêneo
(9.5 e 9.7)
Heterogêneo (9.7)
Não Não Não 10 e 11
Integração com o Optim Query Tuner Sim Sim Em breve Sim Não
Substituição literal com literais durante captura da Otimização de Cliente Sim Sim Sim Sim Sim
Propriedades do nível de aplicativo Sim Sim Sim Sim Sim
Vários arquivos de captura e mesclagem Sim Sim Sim Sim Sim
Benefícios de SQL estático Sim Não Sim Sim Não
Lote heterogêneo Sim Sim Sim Sim Não
Análise de impacto avançada Sim Sim Sim Sim Sim

Conclusão

Este artigo abordou brevemente os novos recursos que tornam o Optim Development Studio um recurso obrigatório para qualquer empresa que deseje criar código de acesso a dados Java de alto desempenho e tirar proveito da produtividade e de recursos de análise de impacto em bancos de dados Oracle, DB2 e Informix Dynamic Server.

Recursos

Aprender

Obter produtos e tecnologias

  • O release 2.2 do Optim Development Studio estará disponível para download em breve. Enquanto isso, você pode fazer o download do Optim Development Studio 2.1.
  • Construa seu próximo projeto de desenvolvimento com o software experimental IBM , disponível para download diretamente a partir do developerWorks.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=406251
ArticleTitle=O que Há de Novo e Interessante no Optim Development Studio 2.2
publish-date=06182009