2017-03-02 6 views
1

AS400에서 테이블 (QDDSSRC) 컴파일 (옵션 14)에 일부 기본값이 있습니다. 속성 구성원 크기, Aditional 매개 변수에서 :AS400/DB2 테이블 D 파일의 번호 또는 * NOMAX 값

Wich는 숫자 또는 * NOMAX 값을 넣고이 값이 레코드의 한계이거나 실제 크기 증가분 일 경우의 의미입니다.

사례 1 : 회원 크기 레코드 초기 번호 ______ 100,000

케이스 2 : 회원 크기 레코드 초기 번호 ______ * NOMAX

답변

2

마이크가이 질문에 대한 짧은 대답을 주었으므로 여기에 긴 대답이 있습니다.

이 구성은 제한된 디스크 공간을 사용하지 않았을 때의 제한 사항입니다. 어떤 사람들은 가출 한 작업이 디스크를 가득 채우는 것을 막기 위해 여전히 그것을 사용하고 싶어합니다. 디스크가 가득 차게되면 시스템이 종료됩니다. 몇 가지 관련 구성 매개 변수 인 ALLOCATEREUSEDLT이 있습니다.

다음은 SIZE 속성의 작동 방식입니다. 세 부분 : initial number of records, increment number of recordsmaximum number of increments입니다. 구성원이 실제 파일 (또는 소스 실제 파일)에 추가되면 initial number of records이 해당 파일에 할당됩니다. ALLOCATE 속성에 따라 물리적으로 할당되거나 소프트로 할당 될 수 있습니다. 어쨌든, 파일은 이제 그 많은 레코드를 저장할 수 있습니다. QDDSSRC와 같은 소스 파일의 경우 기본값은 10,000입니다 (10,000 줄의 소스). 프로그램이 더 많은 레코드를 쓰고 싶다면 더 많은 공간이 추가됩니다. increment number of records은 파일에 추가 할 레코드 수를 결정합니다. 이것은 지정된 maximum number of increments 번 발생할 수 있습니다. 소스 파일의 기본 설정은 1,000 레코드의 499 증분이므로 전체 소스 파일 멤버의 기본값은 509,000 레코드입니다. 그것은 10,000+ (499 * 1,000)입니다. 파일 멤버가 꽉 차면 레코드를 추가하려고하면 파일 크기를 늘리라는 허가를 요청하는 메시지가 시스템 운영자 큐에 저장됩니다.

참고 파일 구성원은 레코드 용량보다 많은 레코드를 보유 할 수 있지만이 작업을 수행하려면 시스템 운영자가 수동으로 조작해야합니다.

DDS 테이블의 기본값은 10,000 개의 초기 레코드와 3 개의 1,000 레코드 증가입니다. SQL 테이블 (DDL을 사용하여 정의 된 테이블)의 기본값은 *NOMAX입니다. *NOMAX은 테이블의 최대 레코드 수를 시스템이 결정한다는 것을 의미합니다. 이것은 디스크 공간 또는 데이터베이스가 부과하는 절대 최대치에 의해 제한 될 수 있습니다. SQL은 *NOMAX는 기본적으로 삭제 된 레코드가 차지하는 공간을 재사용한다는 것이다 사용하여 멀리 얻을 수있는 이유

Maximum rows in a member   4,294,967,288 
Maximum size of a member   1.7 terabytes 

V7.3의로

DB 제한. DDS 정의 된 파일은 그렇게하지 않습니다 (사용자가 기본값을 변경하지 않음). 따라서 DDS 테이블의 경우 각 쓰기로 인해 다른 레코드가 사용됩니다. 이로 인해 파일이 삭제 된 레코드로 가득 차게되어 수동 개입을 통해 해당 공간을 되 찾을 수 있습니다.현재의 지혜는 SIZE(*NOMAX), ALLOCATE(*NO)REUSEDLT(*YES)입니다. 이것은 한 번, 그리고 모두를 위해 시스템이 디스크 공간을 할당하는 방법을 결정하도록합니다. CRTPF에 대한 명령 기본값을 변경하여 DDS 정의 파일에 대해이 작동을 얻을 수 있습니다.

+0

안녕하세요, 저는 as400 세계에서 초보자이기 때문에 이것에 대한 오해가 너무 많습니다. as400의 모든 코드가 tables = files/members에 저장 되었기 때문에 소스 멤버 파일에서 레코드를 테이블과 같이 저장되는 소스 코드라고 할 때, 도움을 주셔서 감사합니다. –

+0

그래서 마침내, 메신저 기본 예제에서 이해하는 경우 10,000 초기 레코드 및 3 증분 1,000 레코드가있는 경우, 나는 13000 레코드의 maximun 크기가, 그래서 내가 50 줄의 소스 코드가 있으면 마침내 데이터에 대한 12950 기록, rigth? –

+0

아니요, 원본은 원본 실제 파일에 저장되고 데이터는 실제 파일에 저장됩니다. 파일에는 데이터 또는 소스가 포함됩니다. 논리 파일이있는 소스 실제 파일을 참조 할 수 없습니다. 다른 차이점이 있습니다. – jmarkmurphy

0

*이 NOMAX의 수에는 최대 값이 없음을 의미 이 매개 변수 값보다는 운영 체제가 판별 한 파일을 제외하고 파일의 각 구성원에 추가 할 수있는 레코드. * NOMAX로 설정하면 증가하지 않습니다.