SQL이 들어있는 각 프로그램 (또는 서브 프로그램)은 사전 처리되어 DBRM을 작성해야합니다. 그런 다음 DBRM은 런타임에 LOAD 모듈에 의해 액세스되는 PLAN에 바인드되어 올바른 DB/2 액세스 경로에 포함 된 SQL 문을 가져옵니다.
하나의 프로그램에있는 모든 SQL을 여러 개의 서브 프로그램으로 옮겼습니다. 기본 프로세스 은 그대로 유지됩니다. 프로그램을 실행하려면 PLAN이 필요합니다.
SQL을 포함하는 여러 하위 프로그램이있는 경우 DBA는이를 위해 패키지를 만든 다음 패키지를 PLAN에 바인딩 할 것을 제안합니다. 한 번 무엇 하나 단계 프로세스는 이제 두 개의입니다 :
패키지와 큰 문제는 무엇으로?
SQL이 포함 된 50 개의 서브 프로그램이 있다고 가정 해보십시오. 각각에 대해 DBRM을 작성한 후 모든 50을 PLAN으로 단일 조작으로 바인드하면 은 모든 프로그램의 모든 SQL 문에 분석 할 이 필요하므로 PLAN을 빌드하는 데 많은 자원을 사용하게됩니다 액세스 경로를 생성합니다. 50 개의 하위 프로그램이 모두 새롭거나 이거나 변경된 경우 그렇게 나쁘지 않습니다. 그러나 상대적으로 안정적인 시스템을 보유하고 있고 1 서브 프로그램을 변경하려는 경우 50 개 중 49 개가 변경되지 않고 이 완전히 동일한 액세스 경로를 사용하여 종료 되더라도 50 개 DBRMS를 모두 다시 계획하여 PLAN을 작성하십시오. . 이것은 아주 좋은 apporach되지 않습니다. 어느 하나를 변경할 때마다 모든 하위 프로그램을 컴파일하는 것은 유사합니다.
그러나 각 하위 프로그램에 대해 PACKAGE를 만들면 PACKAGE가 실제 작업을 수행하는 데 필요합니다. 연관된 DBRM에 대한 모든 액세스 경로를 포함합니다. 이제 1 서브 프로그램 만 변경하면 은 단일 DBRM을 PACKAGE 콜렉션으로 리 바인드 한 다음 PLAN을 다시 바인드하여 패키지를 재 구축하면됩니다. 그러나 패키지 집합 (컬렉션)을 PLAN 에 바인딩하는 것은 시스템의 모든 DBRM을 바인딩하는 것보다 훨씬 리소스 집약적입니다.
일단 프로그램에 사용 된 모든 액세스 경로를 포함하는 PLAN이 있으면이를 사용하십시오.실행중인 SQL이 subprogram1 또는 subprogram2 인 경우에는 과 상관이 없습니다. 실행중인 LOAD에 PLAN 을 연결했다면 모든 것이 제대로 작동해야합니다.
모든 설치에는 패키지, 컬렉션 및 계획을 설정하는 자체 명명 규칙 및 표준이 있습니다. 훨씬 더 진행하기 전에 데이터베이스 관리자와 함께이를 검토해야합니다. Developing your Application
: 여기
는 DB/2 환경에서 배경 정보와 관련된 프로그램 Preperation를하다