Skip to main content

Criando procedimentos armazenados para o seu SQL Server

Stored Procedures - Criação e Execução no SQL Server - parte 01 (Pode 2024)

Stored Procedures - Criação e Execução no SQL Server - parte 01 (Pode 2024)
Anonim

O Microsoft SQL Server fornece o mecanismo de procedimento armazenado para simplificar o processo de desenvolvimento do banco de dados, agrupando as instruções Transact-SQL em blocos gerenciáveis. Os procedimentos armazenados são apreciados pela maioria dos desenvolvedores do SQL Server, que acham que os benefícios de eficiência e segurança que obtêm valem bem o investimento inicial no tempo.

Benefícios do Uso de Procedimentos Armazenados

Por que um desenvolvedor deve usar procedimentos armazenados?

Aqui estão os principais benefícios desta tecnologia:

  • Execução pré-compilada: O SQL Server compila cada procedimento armazenado uma vez e reutiliza o plano de execução. Isso resulta em um tremendo aumento de desempenho quando os procedimentos armazenados são chamados repetidamente.
  • Tráfego reduzido de cliente / servidor: Se a largura de banda da rede for uma preocupação em seu ambiente, você ficará feliz em saber que os procedimentos armazenados podem reduzir as consultas SQL longas a uma única linha transmitida pela rede.
  • Reutilização eficiente de código e abstração de programação: Procedimentos armazenados podem ser usados ​​por vários usuários e programas clientes. Se você utilizá-los de maneira planejada, verá que o ciclo de desenvolvimento leva menos tempo.
  • Controles de segurança aprimorados: Você pode conceder permissão aos usuários para executar um procedimento armazenado independentemente das permissões da tabela subjacente.

Os procedimentos armazenados são semelhantes às funções definidas pelo usuário, mas existem diferenças sutis.

Estrutura

Os procedimentos armazenados são semelhantes aos construtos vistos em outras linguagens de programação.

Eles aceitam dados na forma de parâmetros de entrada que são especificados no tempo de execução. Esses parâmetros de entrada (se implementados) são utilizados na execução de uma série de instruções que produzem algum resultado. Esse resultado é retornado ao ambiente de chamada por meio do uso de um conjunto de registros, parâmetros de saída e um código de retorno.

Isso pode soar como um bocado, mas você verá que os procedimentos armazenados são realmente muito simples.

Exemplo

Vamos dar uma olhada em um exemplo prático relacionado à tabela chamada inventário mostrada na parte inferior desta página. Essas informações são atualizadas em tempo real e os gerentes de depósito estão constantemente verificando os níveis de produtos armazenados em seu depósito e disponíveis para envio. No passado, cada gerente executava consultas semelhantes às seguintes:

Produto SELECT, QuantidadeFROM InventoryWHERE Warehouse = 'FL'

Isso resultou em desempenho ineficiente no SQL Server. Cada vez que um gerente de warehouse executava a consulta, o servidor de banco de dados era forçado a recompilar a consulta e executá-la do zero. Também exigia que o gerente do warehouse tivesse conhecimento de SQL e permissões apropriadas para acessar as informações da tabela.Em vez disso, o processo pode ser simplificado através do uso de um procedimento armazenado. Aqui está o código para um procedimento chamado sp_GetInventory que recupera os níveis de estoque para um determinado armazém.

CREATE PROCEDURE sp_GetInventory@location varchar (10)COMOProduto SELECT, QuantidadeFROM InventoryWHERE Warehouse = @location

O gerente do depósito da Flórida pode acessar os níveis de estoque emitindo o comando:

EXECUTE sp_GetInventory 'FL'

O gerente de depósito de Nova York pode usar o mesmo procedimento armazenado para acessar o inventário dessa área:

EXECUTE sp_GetInventory 'NY'

Concedido, este é um exemplo simples, mas os benefícios da abstração podem ser vistos aqui. O gerente do warehouse não precisa entender o SQL ou o funcionamento interno do procedimento. De uma perspectiva de desempenho, o procedimento armazenado faz maravilhas. O SQL Server cria um plano de execução uma vez e, em seguida, o reutiliza conectando os parâmetros apropriados no tempo de execução.Agora que você aprendeu os benefícios dos procedimentos armazenados, vá até lá e use-os.

Experimente alguns exemplos e meça as melhorias de desempenho alcançadas - você ficará surpreso!

Tabela de Inventário

identidadeprodutosArmazémQuantidade
142VagemNova Iorque100
214ErvilhasFL200
825MilhoNova Iorque140
512FeijãoNova Iorque180
491TomatesFL80
379MelanciaFL85