더북(TheBook)

극단적인 예를 들어 봅시다.

for (i = 0 to 100)
{
  select xxx from yyy where zzz=i
}

이 경우 게임 서버는 데이터베이스에 select 구문을 100번 던져야 합니다. 그러면 게임 서버와 데이터베이스 사이의 대화는 100회 오가게 됩니다. 단 한 번만 오가면 좋을 텐데 말입니다.

데이터베이스는 질의 구문을 받으면 이를 처리할 수 있는 준비 작업 연산을 합니다. 심지어 질의 구문을 받을 때마다 이러한 준비 작업 연산이 발생합니다. 데이터베이스 엔진은 받은 질의 구문을 분석하고 무슨 일을 해야 할지 계획합니다. 이 과정이 매번 발생합니다. 처음 한 번만 이 일을 하고 이후부터는 생략할 수 있는 좋은 방법이 없을까요?

다행히 있습니다. 저장 프로시저(stored procedure)라는 기능입니다.

우리는 데이터베이스 측에 미리 질의 구문 집합을 저장해 둘 수 있습니다. 이를 저장 프로시저라고 합니다. 저장 프로시저는 데이터베이스 안에서 직접 실행되는 스크립트 프로그램이라고 할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.