Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.