동적쿼리

- 코드 실행 시점에 SQL 쿼리문이 동적으로 구성되고 실행되는 쿼리

- Stored Procedure를 생성할 때 필요에 따라 동적 쿼리로 작성

- 동적 쿼리에 사용되는 변수에 문자열로 쿼리문을 작성하게 되면 SP가 새로 캐싱되어 재사용성을 떨어트림


정적쿼리

- 변수에 문자열을 대입하여 쿼리문을 작성하는 것이 아닌 일반적으로 작성된 SQL 쿼리

- 정적 쿼리로 작성된 Stored Procedure는 새로 캐싱되지 않아 재사용성을 떨어트리지 않는다.



동적쿼리의 실행

- 동적쿼리는 EXEC()함수를 사용하거나 SP_EXECUTESQL을 사용하여 실행한다.


'데이터베이스' 카테고리의 다른 글

동적 쿼리와 정적 쿼리  (0) 14:23:00
Stored Procedure(저장 프로시저)  (0) 13:12:55
MS-SQL SP_EXECUTESQL  (0) 10:59:03

MS SQL Stored Procedure


저장 프로시저란?

- SQL Query문들을 하나의 함수처럼 실행하기 위한 Query의 집합


장점 

  1. 하나의 요청으로 여러 SQL 쿼리를 실행하여 네트워크 부하 감소
  2. 미리 구문 분석 및 내부 중간 코드로 변환을 끝내야 함으로 처리 시간 감소
  3. 최초 사용한 SP는 캐싱이 되어 재사용이 용이
  4. 사용자에게 테이블 접근 권한을 대신 프로지서 접근 권한을 주어 DataBase 보안성 강화
  5. 모듈식 프로그래밍 가능

SP 작성 방법 



위와 같이 SSMS(2014) 에서 클릭하면 아래와 같은 파일이 생긴다



매개 변수
작성자Your name
만든 날짜Today's date
DescriptionReturns employee data
Procedure_nameHumanResources.uspGetEmployeesTest
@Param1@LastName
@Datatype_For_Param1nvarchar(50)
Default_Value_For_Param1NULL
@Param2@FirstName
@Datatype_For_Param2nvarchar(50)
Default_Value_For_Param2NULL


각 매개 변수칸에 입력 값을 넣어주어 실행하면 SP가 만들어 진다.

'데이터베이스' 카테고리의 다른 글

동적 쿼리와 정적 쿼리  (0) 14:23:00
Stored Procedure(저장 프로시저)  (0) 13:12:55
MS-SQL SP_EXECUTESQL  (0) 10:59:03

[MS-SQL SP_EXECUTESQL]



@stmt

- 유니코드 문자열이나 SQL쿼리문을 일괄 처리

- @stmt 유니코드 상수 또는 문자열만 가능

- N'문자열'은 가능하지만 '문자열'은 불가능


@params

- @stmt에 포함된 몯느 매개변수의 정의를 포함하는 유니코드 문자열

- @stmt와 동일하게 유니코드 문자열이나 상수만 가능

- 출력 변수일 경우 [OUT|OUTPUT] 명시


@param1...n

- 매개변수 문자열에 정의 된 첫번째 매개변수의 값

- @stmt에 제공되는 모든 매개변수에 대해 제공되는 매개변수 값이 있어야 한다







*참고문서 https://docs.microsoft.com/ko-kr/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql?view=sql-server-2017



'데이터베이스' 카테고리의 다른 글

동적 쿼리와 정적 쿼리  (0) 14:23:00
Stored Procedure(저장 프로시저)  (0) 13:12:55
MS-SQL SP_EXECUTESQL  (0) 10:59:03

+ Recent posts

티스토리 툴바