고유하게 컴파일된 저장 프로시저를 호출하는 최선의 구현 방법Best Practices for Calling Natively Compiled Stored Procedures

고유하게 컴파일된 저장 프로시저의 특징Natively compiled stored procedures are:

  • 응용 프로그램에서 성능이 중요한 부분에 주로 사용됩니다.Used typically in performance-critical parts of an application.

  • 자주 실행됩니다.Frequently executed.

  • 매우 빠를 것으로 예상됩니다.Expected to be very fast.

    고유하게 컴파일된 저장 프로시저를 사용하는 경우의 성능 이점은 행 수와 프로시저에서 처리하는 논리의 양이 많을수록 커집니다.The performance benefit of using a natively compiled stored procedure increases with the number of rows and the amount of logic that is processed by the procedure. 예를 들어 고유하게 컴파일된 저장 프로시저는 다음 중 하나 이상을 사용하는 경우 성능이 향상됩니다.For example, a natively compiled stored procedure will exhibit better performance if it uses one or more of the following:

  • 집계Aggregation.

  • 중첩 루프 조인Nested-loops joins.

  • 다중 문 선택, 삽입, 업데이트 및 삭제 작업Multi-statement select, insert, update, and delete operations.

  • 복잡한 식Complex expressions.

  • 조건문, 루프 등의 절차적 논리Procedural logic, such as conditional statements and loops.

    단일 행만 처리해야 하는 경우 고유하게 컴파일된 저장 프로시저를 사용하면 성능 이점이 제공되지 않을 수 있습니다.If you need to process only a single row, using a natively compiled stored procedure may not provide a performance benefit.

    서버에서 매개 변수 이름을 매핑하고 형식을 변환하지 않아도 되도록 하려면 다음과 같이 하십시오.To avoid the server having to map parameter names and convert types:

  • 프로시저에 전달된 매개 변수의 형식을 프로시저 정의에 있는 형식과 일치시킵니다.Match the types of the parameters passed to the procedure with the types in the procedure definition.

  • 고유하게 컴파일된 저장 프로시저를 호출하는 경우 이름이 없는 서수 매개 변수를 사용합니다.Use ordinal (nameless) parameters when calling natively compiled stored procedures. 가장 효율적으로 실행하려면 명명된 매개 변수를 사용하지 마십시오.For the most efficient execution, do not use named parameters.

    XEvent natively_compiled_proc_slow_parameter_passing을 사용하여 고유하게 컴파일된 저장 프로시저에서 비효율적인 매개 변수를 감지할 수 있습니다.Inefficiencies in parameters with natively compiled stored procedures can be detected through the XEvent natively_compiled_proc_slow_parameter_passing:

    • 일치하지 않는 형식: reason=parameter_conversionMismatched types: reason=parameter_conversion
    • 명명된 매개 변수: reason=named_parametersNamed parameters: reason=named_parameters
    • DEFAULT 값: reason=defaultDEFAULT values: reason=default

참고 항목See Also

고유하게 컴파일된 저장 프로시저Natively Compiled Stored Procedures