SQL Server 저장 프로 시저

저장 프로 시저가 높은 효율성 및 보안 이점 제공

Microsoft SQL Server는 Transact-SQL 문을 관리 가능한 블록으로 그룹화하여 데이터베이스 개발 프로세스를 단순화하는 저장 프로 시저 메커니즘을 제공합니다. 저장 프로 시저는 대부분의 SQL Server 개발자가 얻을 수있는 효율성과 보안 이점이 시간의 초기 투자 가치가 있다는 것을 잘 알고 있습니다.

저장 프로 시저 사용의 이점

왜 개발자가 저장 프로 시저를 사용해야합니까?

이 기술의 주요 이점은 다음과 같습니다.

저장 프로시 저는 사용자 정의 함수와 유사하지만 약간의 차이점이 있습니다.

구조

저장 프로시 저는 다른 프로그래밍 언어에서 볼 수있는 구문과 유사합니다.

이들은 실행 시간에 지정된 입력 매개 변수 형태로 데이터를 승인합니다. 이러한 입력 매개 변수 (구현 된 경우)는 결과를 산출하는 일련의 명령문 실행에 사용됩니다. 이 결과는 레코드 세트, 출력 매개 변수 및 리턴 코드의 사용을 통해 호출 환경으로 리턴됩니다.

그것은 입안처럼 들릴지 모르겠지만 저장 프로 시저가 실제로 매우 간단하다는 것을 알게 될 것입니다.

이 페이지의 하단에 표시된 인벤토리라는 테이블과 관련된 실질적인 예를 살펴 보겠습니다. 이 정보는 실시간으로 업데이트되며, 창고 관리자는 창고에 보관되어 배송 가능한 제품의 수준을 지속적으로 확인하고 있습니다. 과거에는 각 관리자가 다음과 유사한 쿼리를 실행했습니다.

SELECT 제품, 수량
인벤토리에서
WHERE 창고 = 'FL'

이로 인해 SQL Server에서 비효율적 인 성능이 발생했습니다. 창고 관리자가 쿼리를 실행할 때마다 데이터베이스 서버는 쿼리를 다시 컴파일하여 처음부터 실행해야했습니다. 또한웨어 하우스 관리자는 SQL에 대한 지식과 테이블 정보에 액세스하기위한 적절한 권한을 가지고 있어야했습니다.

대신 저장 프로 시저를 사용하여 프로세스를 단순화 할 수 있습니다. 다음은 주어진 창고의 재고 수준을 검색하는 sp_GetInventory라는 프로 시저의 코드입니다.

프로 시저 작성 sp_GetInventory
@location varchar (10)
같이
SELECT 제품, 수량
인벤토리에서
WHERE 창고 = @ 위치

플로리다 창고 관리자는 다음 명령을 실행하여 재고 수준에 액세스 할 수 있습니다.

EXECUTE sp_GetInventory 'FL'

New York 창고 관리자는 동일한 저장 프로 시저를 사용하여 해당 지역의 인벤토리에 액세스 할 수 있습니다.

EXECUTE sp_GetInventory 'NY'

허락하신다면, 이것은 간단한 예입니다 만, 추상화의 이점은 여기에서 볼 수 있습니다. 창고 관리자는 SQL 또는 프로 시저의 내부 작동을 이해할 필요가 없습니다. 성능 측면에서 스토어드 프로 시저가 이상하게 작동합니다. SQL Server는 실행 계획을 한 번 생성 한 다음 실행시 적절한 매개 변수를 연결하여이를 다시 사용합니다.

스토어드 프로 시저의 이점을 배웠으니 이제 나와서 사용하십시오.

몇 가지 예를 시도하고 달성 한 성능 향상을 측정하십시오 - 놀라실 것입니다!

인벤토리 테이블

신분증 생성물 창고 수량
142 강낭콩 뉴욕 100
214 완두콩 플로리다 주 200
825 옥수수 뉴욕 140
512 리마 콩 뉴욕 180
491 토마토 플로리다 주 80
379 수박 플로리다 주 85