Artigo SQL Magazine 18 - Variáveis Bind – Uma visão prática

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Editorial da Revista SQL Magazine - Edição 18.

Atenção: por essa edição ser muito antiga não há arquivo PDF para download.
Os artigos dessa edição estão disponíveis somente através do formato HTML.

Clique aqui para ler todos os artigos desta edição

Variáveis Bind – Uma visão prática

 

O uso de instruções SQL pela maioria das linguagens de programação e sistemas gerenciadores de banco de dados pode ser parametrizado de forma eficiente e segura, através das bind variables, ou variáveis de ligação, podendo ser utilizadas nos comandos SELECT, UPDATE, DELETE e INSERT. Variáveis de ligação funcionam como parâmetros em instruções SQL possibilitando a atribuição de valores dinâmicos. Na execução de instruções SQL é comum usar parâmetros para selecionar ou atualizar dados através das cláusulas where, values ou set.

Há uma semelhança muito grande de uma mesma instrução SQL elaborada com variáveis de ligação ou valores fixos ambos usados como parâmetros. Mas a semelhança é só na escrita dos comandos ou instruções SQL. Na verdade a diferença existe na execução destes comandos no servidor de banco de dados.

Quando uma instrução SQL é elaborada com variável de ligação ocorre apenas a leitura e substituição do valor atribuído à variável de ligação, e caso a instrução SQL já esteja na memória do servidor de banco de dados ocorre o retorno ou atualização dos dados, sem ter que passar pelas etapas de preparação e execução da instrução, ou seja, com o uso de variáveis de ligação é permitido o reuso de instruções SQL já armazenadas em memória. Se uma instrução SQL for executada através de parâmetros com valores fixos ou strings concatenadas através de alguma linguagem de programação, o servidor de banco de dados irá sempre refazer e executar sempre uma nova instrução SQL.

É bom lembrar que parâmetros usados em instruções SQL podem ser valores fixos, variáveis concatenadas através de alguma linguagem de programação e também variáveis de ligação.

É possível definir variável de ligação de diversas maneiras. Serve de ponte para a execução de uma instrução SQL já preparada na memória do servidor, onde são enviados apenas os valores nela contidos.

O uso dessas variáveis no desenvolvimento de sistemas de informação permite maior segurança e eficiência na manipulação de dados, sendo suportadas pela maioria das linguagens de programação, entre elas o Visual Basic, C++ Builder e Java. Alguns sistemas gerenciadores de banco de dados também permitem o uso de variáveis de ligação na construção de funções e procedimentos armazenados (stores procedures), como por exemplo, o Oracle.

O foco deste artigo é conceituar e exemplificar o uso de variáveis de ligação utilizando o SGBD Oracle através de sua linguagem PL/SQL, e também através da linguagem Java.

Para os exemplos apresentados nesse artigo, utilizaremos o modelo de dados apresentado na figura 1.

 

Figura 1. Modelo de dados usado nos exemplos e listagens citadas ao longo do artigo.

Memória compartilhada no Oracle

A estrutura de memória compartilhada, ou shared pool, contém informações usadas para executar comandos SQL. Essa estrutura é formada por áreas reservadas na memória, denominadas shared SQL e Data Dictionary.

A área identificada como shared SQL contém:

·         O texto dos comandos SQL;

·         A interpretação dos comandos SQL;

·         O plano de execução para os comandos SQL.

 

O compartilhamento dos planos de execução dos diversos comandos nessas áreas de memória otimiza o uso da memória, uma vez que as definições dos comandos podem ser compartilhadas entre as diversas aplicações.

A memória também é dinamicamente ajustada de acordo com o conjunto de comandos SQL que são executados e, como a fase de PREPARE é reduzida, o tempo de execução de um comando pode diminuir consideravelmente.

Na área de memória identificada como data dictionary, são identificadas as linhas com as informações do dicionário de dados.

Processo de execução de um comando para manipulação de dados

Para entender os fundamentos do uso de variáveis de ligação, é importante compreender como é feita a execução das instruções SQL de manipulação de dados. O Oracle, assim como a maioria dos sistemas gerenciadores de banco de dados, executa as instruções SQL em várias fases. A Tabela 1 mostra cada instrução e sua fase de execução no servidor de banco de dados.

 

INSTRUÇÃO

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?