Partilhar via


Práticas recomendadas para chamar procedimentos armazenados compilados nativamente

Estes são os procedimentos armazenados compilados nativamente:

  • Geralmente usados em partes essenciais do desempenho de um aplicativo.

  • Executados com frequência.

  • Espera-se que sejam muito rápidos.

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

  • Agregação.

  • Junções de loops aninhados.

  • Operações de seleção, inserção, atualização e exclusão com várias instruções.

  • Expressões complexas.

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

Se você precisa processar apenas uma única linha, usar um procedimento armazenado compilado nativamente talvez não traga um benefício em termos de desempenho.

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

  • Faça a correspondência dos tipos dos parâmetros passados para o procedimento com os tipos contidos na definição de procedimento.

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

O uso de parâmetros nomeados (ineficientes) com procedimentos armazenados compilados nativamente poderá ser detectado com o XEvent hekaton_slow_parameter_passing, com reason=named_parameters.

Da mesma forma, você pode detectar o uso de tipos incompatíveis através 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 procedimento armazenado Transact-SQL interpretado por wrapper. 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