Compartilhar via


Práticas recomendadas para chamar procedimentos armazenados compilados nativamente

Os procedimentos armazenados compilados nativamente são:

  • Usado normalmente em partes críticas ao desempenho de um aplicativo.

  • Executado com frequência.

  • Esperava-se que fosse muito rápido.

O benefício de desempenho do uso de um procedimento armazenado compilado nativamente aumenta com o número de linhas e a quantidade de lógica processada pelo procedimento. Por exemplo, um procedimento armazenado compilado nativamente exibirá melhor desempenho se usar um ou mais dos seguintes:

  • Agregação.

  • Junções de loops aninhados.

  • Operações de seleção, inserção, atualização e exclusão em instruções múltiplas.

  • Expressões complexas.

  • Lógica de procedimento, como instruções condicionais e loops.

Se você precisar processar apenas uma única linha, o uso de um procedimento armazenado compilado nativamente pode não fornecer um benefício de desempenho.

Para evitar que o servidor precise mapear nomes de parâmetros e converter tipos:

  • Corresponda os tipos dos parâmetros passados ao procedimento com os tipos na definição do procedimento.

  • Use parâmetros ordinais (sem nome) ao chamar procedimentos armazenados compilados nativamente. Para a execução mais eficiente, não use parâmetros nomeados.

O uso de parâmetros nomeados (ineficientes) com procedimentos armazenados compilados nativamente pode ser detectado por meio do XEvent hekaton_slow_parameter_passing, com reason=named_parameters.

Da mesma forma, você pode detectar o uso de tipos incompatíveis por meio do mesmo XEvent hekaton_slow_parameter_passing, com reason=parameter_conversion.

Como você precisará implementar a lógica de repetição ao usar tabelas com otimização de memória (em muitos cenários) e, como precisará contornar determinadas limitações de recursos, talvez você queira criar um wrapper interpretado Transact-SQL procedimento armazenado. Para obter um exemplo, consulte Diretrizes para lógica de repetição para transações em tabelas de Memory-Optimized.

Consulte Também

Procedimentos armazenados compilados nativamente