Resumo do Recurso pureQuery Runtime

pureQuery Runtime pode ser usado com aplicativos Java™. O pureQuery Runtime também pode ser usado com aplicativos DB2 ODBC/CLI e Microsoft .NET.

Recursos para aplicativos Java pureQuery API

pureQuery Runtime fornece recursos de API, além de recursos de otimização de cliente.

Para aplicativos que usam a API pureQuery, o InfoSphere Optim pureQuery Runtime oferece estes recursos:

Uma única API que pode ser usada para executar instruções SQL com relação aos bancos de dados, coleções na memória e objetos do agente iterativo

A plataforma Java fornece uma enorme quantidade de estruturas de dados e APIs para o processamento de coleções em memórias e dados externos de várias origens. Cada um desses recursos é perfeitamente adequado para solucionar um tipo específico de problema. pureQuery também possui um conjunto exclusivo de interfaces para recuperar e modificar os dados dentro das coleções. Por exemplo, o pureQuery fornece uma API para Matrizes, Listas, Mapas e Agentes Iterativos Java. Cada API consulta e, em alguns casos, atualiza os dados na coleção.

Da mesma forma, a API JDBC fornece um meio de utilizar SQL para acessar objetos relacionais e outros objetos DataSource JDBC externos. No entanto, o pureQuery permite que um aplicativo acesse todas essas origens de dados individualmente ou em combinação com uma única linguagem de consulta bastante conhecida.

Um modelo de programação simples para acesso a dados
pureQuery é executado como uma camada thin sobre JDBC. O pureQuery simplifica consultas, atualizações, chamadas para procedimentos armazenados, além de outras tarefas que estão associadas ao acesso ao banco de dados. pureQuery é executado no Java 2 Platform, Standard Edition 5.0 (J2SE 5.0) e Java Platform, Standard Edition 6 (Java SE 6).
Mapeamento automático de dados SQL para tipos de retorno com pouca intervenção do desenvolvedor
pureQuery fornece mapeamento automático entre resultados de consulta SQL e objetos retornados para muitos padrões de objeto Java. Para mapeamentos complexos entre resultados de consultas e objetos Java, uma interface de saída passível de conexão que permite mapeamentos customizados.

Você pode criar e anotar beans que retornem os resultados das consultas SQL que contêm junções de tabelas. Os resultados da consulta são retornados como um conjunto de beans que contêm instâncias de outros beans. A hierarquia dos beans reflete os relacionamentos de um para um e um para muitos dos resultados da consulta. Por exemplo, uma consulta contém uma junção entre uma tabela de funcionário e um departamento. A consulta retorna os funcionários que são designados a departamentos diferentes. Os resultados são retornados como um conjunto de beans de departamentos, em que cada instância do bean de departamento representa um departamento. Cada bean de departamento contém uma lista de beans de funcionários. Cada instância de um bean de funcionário contém informações de funcionários.

Suporte para o desenvolvimento de aplicativos SQL que usam métodos anotados e métodos sequenciais
Métodos Anotados são suportados para a definição de seus próprios métodos em interfaces customizadas. Crie métodos com definições que são anotados com instruções SQL. É possível desenvolver aplicativos que seguem o padrão do Data Access Object (DAO) ao criar objetos de acesso a dados usando os métodos anotados.

Métodos Sequenciais são suportados para que você possa se beneficiar dos métodos definidos na interface de dados fornecida pela IBM. Os métodos sequenciais são úteis para aplicativos que requerem a construção de instruções SQL durante o tempo de execução do aplicativo. Com os métodos sequenciais, as instruções SQL são passadas como parâmetros nas chamadas de métodos e isso é semelhante à abordagem que é utilizada no JDBC.

O suporte é fornecido para o gerenciamento de instruções SQL executadas estatisticamente. Você pode anotar seu código para agrupar as instruções SQL que são usadas em uma interface. É possível controlar o processo de ligação dos grupos. É possível controlar as opções de ligação que são usadas pelo utilitário pureQuery StaticBinder e controlar os nomes que são gerados para os pacotes contendo instruções SQL.

Suporte para SQL estática e dinâmica no tempo de execução
O código pureQuery pode usar SQL dinâmica com um driver JDBC padrão para SQL integrada e SQL ad hoc que não é conhecida até o momento da execução.
O código pureQuery também pode usar SQL estática quando o código usa o estilo de programação de método anotado e bancos de dados do DB2. SQL estática possui estas vantagens:
Evita o cache de instrução dinâmica
A utilização de SQL estática reduz a contenção para o cache de instrução dinâmica do DB2, que melhora o desempenho dos aplicativos que usam SQL dinâmica.
Consistência dos caminhos de acesso
SQL estática torna os tempos de resposta previsíveis e estáveis, bloqueando os caminhos de acesso antes da execução de um aplicativo. Em contraste, os caminhos de acesso para SQL dinâmica são calculados no tempo de execução.
Potencial para melhora no desempenho dos aplicativos
SQL estática pode melhorar o desempenho dos seus aplicativos.
  • Planos de acesso são determinados antes do tempo de execução e, portanto, a necessidade de preparar instruções SQL no tempo de execução é eliminada.
  • Nenhuma instrução precisa ser preparada e descrita, portanto, existe menos tráfego de rede entre aplicativos clientes e servidores de banco de dados.
  • SQL estática obriga explicitamente os tipos de dados para variáveis ou parâmetros de host que são utilizados em predicados. Essa obrigação garante que dados de entrada correspondam aos tipos de destino no banco de dados.
Maior segurança
Você pode conceder aos usuários o privilégio EXECUTE em um pacote DB2 em vez de conceder privilégios de usuário nos objetos de banco de dados.
Facilidade na revisão de pacotes
Como é possível criar diversas versões de cada pacote do DB2, é possível religar os pacotes sem o risco de perder seus melhores caminhos de acesso anteriores.
Suporte para conexões JDBC Tipo 2 durante a execução de aplicativos pureQuery no z/OS
Como o driver JDBC Tipo 2 é uma combinação de código Java e nativo, as conexões do Tipo 2 geralmente apresentam melhor desempenho do que as conexões do Tipo 4.
Suporte para plataformas e estruturas para desenvolvimento de aplicativo de acesso a dados
pureQuery Runtime suporta as seguintes plataformas e estruturas:
  • Java
  • Java Persistence API (JPA)
  • Spring
  • Hibernate
  • iBatis

Recursos para aplicativos Java ativados com otimização de cliente pureQuery

Seus aplicativos que não usam API pureQuery podem ser beneficiados pela otimização de cliente, que são diferentes de outras tecnologias que suportam a execução de SQL estaticamente em um banco de dados do DB2:
  • A otimização de cliente do pureQuery não usa um pré-processador, em contraste com a linguagem de programação COBOL, que usa um pré-processador para SQL integrada.
  • A otimização de cliente do pureQuery não usa um conversor ou customizador, ao contrário de SQLJ.
  • Você não precisa codificar permanentemente instruções SQL na origem de um aplicativo.

Em vez de exigir estes componentes ou modificações em seu código, a otimização do cliente muda como um driver JDBC interage com um aplicativo. A otimização de cliente do pureQuery oferece estes recursos:

Armazenamento seguro dos dados do pureQuery
As informações de configuração do pureQuery, os dados do pureQueryXML que incluem dados de SQL usados pelo pureQuery Runtime e os dados de SQL capturados podem ser armazenados em um local seguro e acessados pelo pureQuery Runtime conforme a necessidade. O pureQuery Runtime pode ser configurado para recuperar os dados do pureQuery dos locais seguros. O pureQuery Runtime pode armazenar em um local seguro os dados de SQL que são capturados dos aplicativos ativados por pureQuery que usam otimização de cliente do pureQuery.
Suporte ao registro especial do DB2
Quando as instruções SQL são capturadas de um aplicativo, a otimização de cliente do pureQuery controla informações de registro especial do DB2 que são usadas por instruções SQL. A otimização de cliente do pureQuery registra os valores de registro especial dos registros especiais que são usados comumente e que podem afetar o comportamento da instrução SQL. Em alguns casos, quando uma instrução SQL idêntica é emitida duas vezes, o comportamento da instrução poderá diferir se o valor de um registro especial for alterado entre a primeira e a segunda vez em que a instrução for executada.

A opção -optionsFileForBind do utilitário pureQuery Configure pode gerar um arquivo de opções StaticBinder contendo opções de ligação com base nas informações do registro especial que são registradas com as instruções SQL capturadas. O arquivo de opções também contém informações e avisos sobre os conjuntos de instruções, instruções SQL e informações de registro especial no arquivo pureQueryXML.

As informações no arquivo ajudam você a especificar um conjunto de opções de ligação para que quando uma instrução SQL for executada estaticamente, o comportamento da instrução seja semelhante ao seu comportamento quando for emitida a partir do aplicativo e for executada dinamicamente. Você especifica opções de ligação com o utilitário pureQuery StaticBinder quando liga pacotes do DB2 contendo instruções SQL.

Fácil gerenciamento de arquivos pureQueryXML
Os seguintes recursos o ajudam a gerenciar instruções SQL e conjuntos de instruções em um arquivo pureQueryXML:
  • O utilitário Configure pode agrupar instruções SQL por texto na instrução SQL, como os nomes de tabelas ou de colunas, ou por uso de registro especial.
  • O utilitário Configure poderá excluir instruções SQL de um arquivo pureQueryXML se a instrução não tiver sido emitida pelo aplicativo por um número de dias especificado. O pureQuery Runtime pode controlar quando uma instrução SQL foi emitida a partir de um aplicativo e atualiza essas informações no arquivo pureQueryXML.
  • O utilitário Configure pode configurar o status dos conjuntos de instruções antes de processar os arquivos pureQueryXML ou depois do processamento. O status dos conjuntos de instruções controla se o utilitário Configure tenta modificar a instrução.
  • O utilitário Configure pode alterar os nomes de locais do banco de dados e nomes de esquemas para instruções SQL nos arquivos pureQueryXML.
  • O utilitário StaticBinder pode manipular instruções SQL em um arquivo pureQueryXML quando o processo de ligação retornar um erro para a instrução. O utilitário pode marcar a instrução como inválida ou removê-la do arquivo. Se uma instrução for marcada como inválida, a instrução permanecerá no arquivo, mas não será processada como uma instrução de ligação. É possível usar o utilitário Configure para alterar a instrução para ligável válida ou remover uma instrução inválida.
  • Os utilitários Configure, Merge e StaticBinder podem executar a validação de esquema XML nos arquivos de entrada pureQueryXML.
  • O utilitário ManageRepository pode gerar um relatório que lista as diferenças entre os dois arquivos pureQueryXML. É possível visualizar facilmente as mudanças feitas em um arquivo pureQueryXML atualizado ao compará-lo com o arquivo original.

Recursos para aplicativos ODBC/CLI e aplicativos .NET

A Call Level Interface (CLI) é uma interface de programação de aplicativos C e C++ para acesso ao banco de dados relacional. A CLI usa as chamadas de função para passar instruções SQL dinâmicas como argumentos de função. Aplicativos .NET incluem aplicativos que são gravados em qualquer linguagem baseada em .NET, como C# e VB.NET.

Após a ativação da otimização de cliente do pureQuery para um aplicativo CLI ou .NET que se conecta a um banco de dados do DB2 ou Informix, é possível controlar as instruções SQL que são emitidas pelo aplicativo. Por exemplo, se o aplicativo se conectar a um banco de dados DB2, você poderá configurar o aplicativo para executar instruções SQL estaticamente com relação ao banco de dados. É possível controlar as instruções SQL que podem ser executadas com relação ao banco de dados.

Os benefícios da otimização de cliente do pureQuery incluem:
  • Executar instruções SQL estaticamente com relação aos bancos de dados DB2.
  • Diagnosticar problemas com instruções SQL com recursos para rastrear de volta para o código de origem do aplicativo.
  • Substituir instruções SQL de execução precária por instruções otimizadas.
  • Reduzir o risco de ataques de injeção SQL ao executar um conjunto restrito de instruções SQL.

Para aplicativos CLI, é possível executar instruções SQL e validar instruções SQL com o comando do DB2 db2cli. Você especifica que essas instruções SQL são preparadas, mas não executadas para validação. É possível capturar as instruções SQL que são executadas ou validadas em um arquivo pureQueryXML.

Para obter informações adicionais sobre como desenvolver aplicativos DB2 com .NET, consulte Desenvolvimento de Aplicativo ADO.NET.

Para obter informações sobre como desenvolver aplicativos DB2 com CLI, consulte Introdução à Interface de Nível de Chamada do DB2 e ODBC.


Feedback