none
Sql Server 쿼리작성시 리터럴변수와 바인딩변수 속도차이가 얼마나 발생하나요? RRS feed

  • 질문

  • 안녕하세요.

    쿼리작성시 리터럴변수와 바인딩변수 속도차이가 얼마나 발생하나요?

    리터럴변수를 사용시 데이타베이스서버가 다운될수도 있나요?

    답변부탁드립니다.

    2014년 7월 10일 목요일 오전 2:12

답변

  • 직접 변수로 하던 변수로 바인딩하던 SELECT 쿼리를 사용해서 비교한다면 거의 동일합니다.

    실제 본인 환경에서 테스트를 해보셔야 정확할 것 같은데요. 테스트할수 있는 방법은 쿼리를 실행하기 전 쿼리 창을 오른쪽 클릭하여 "클라이언트 통계 포함" 을 클릭해서 실행후 결과에서 실행 시간을 비교하거나 SQL 프로필러를 통해 Duration을 비교해보십시오.

    대부분의 응용 프로그램에서는 변수를 바인딩해서 저장 프로시저를 사용하는 것이 일반적입니다. 저장 프로시저는 실행계획을 재사용해서 일반적으로 성능이 좋습니다.

    추가로

    WHERE SalesOrderDetailID=758  이런식으로 쿼리를 실행했는데 서버가 다운된다면 무서워서 쿼리를 날리기도 어렵겠네요.

    속도가 느리거나 성능이 떨어진다면 인덱스를 제대로 구성이 안되었거나 등 다른 문제가 주 원인이 될것 같습니다.


    Hong-ju


    • 편집됨 HONGJU JUNGMVP 2014년 7월 10일 목요일 오전 11:32
    • 답변으로 표시됨 bestdragon 2014년 7월 11일 금요일 오전 5:47
    2014년 7월 10일 목요일 오전 11:30