마이크가이 질문에 대한 짧은 대답을 주었으므로 여기에 긴 대답이 있습니다.
이 구성은 제한된 디스크 공간을 사용하지 않았을 때의 제한 사항입니다. 어떤 사람들은 가출 한 작업이 디스크를 가득 채우는 것을 막기 위해 여전히 그것을 사용하고 싶어합니다. 디스크가 가득 차게되면 시스템이 종료됩니다. 몇 가지 관련 구성 매개 변수 인 ALLOCATE
과 REUSEDLT
이 있습니다.
다음은 SIZE
속성의 작동 방식입니다. 세 부분 : initial number of records
, increment number of records
및 maximum 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 정의 파일에 대해이 작동을 얻을 수 있습니다.
안녕하세요, 저는 as400 세계에서 초보자이기 때문에 이것에 대한 오해가 너무 많습니다. as400의 모든 코드가 tables = files/members에 저장 되었기 때문에 소스 멤버 파일에서 레코드를 테이블과 같이 저장되는 소스 코드라고 할 때, 도움을 주셔서 감사합니다. –
그래서 마침내, 메신저 기본 예제에서 이해하는 경우 10,000 초기 레코드 및 3 증분 1,000 레코드가있는 경우, 나는 13000 레코드의 maximun 크기가, 그래서 내가 50 줄의 소스 코드가 있으면 마침내 데이터에 대한 12950 기록, rigth? –
아니요, 원본은 원본 실제 파일에 저장되고 데이터는 실제 파일에 저장됩니다. 파일에는 데이터 또는 소스가 포함됩니다. 논리 파일이있는 소스 실제 파일을 참조 할 수 없습니다. 다른 차이점이 있습니다. – jmarkmurphy