[an error occurred while processing this directive]
Software  >  OpenVMS Systems > Documentation > 731final > 6489 > hanzi

HP OpenVMS Systems Documentation

Content starts here

OpenVMS �û��ֲ�


ǰҳ Ŀ¼ ����

9.8.2 ʡ�Լ�¼���ֶ�

��˵���ļ��У�ʹ�� /CONDITION��/INCLUDE �� /OMIT �޶���ֻ������Щ����ļ���Ҫ�ļ�¼��������� Sort Ч�ʡ�(������ Sort/Merge ���ó���֧��˵���ļ�����������Ե�ʵ������������ OpenVMS Alpha ���а汾��) Ҳ����ʹ��˵���ļ��޶������¸�ʽ����¼��ʡ������ļ��в���Ҫ���ֶΡ���Щ�޶��ʲ��������������޶��ʡ�

9.8.3 ���乤���ļ�

�� Sort �����ڼ䣬��¼�������ļ�����洢�����������Ĵ洢�����ܱ������м�¼��Sort ����������ݴ��䵽һ��������ʱ�����ļ���Merge ��ʹ�ù����ļ���

���Ĺ����ļ�����Ŀ��ָ�ɵ��ض��豸�������������Ч��:

  • Sort �����е��޶��� /WORK_FILES=n ȡ������Ĺ����ļ�����Ŀ��
  • Sort ͨ���ѹ����ļ������豸 SYS$SCRATCH����������������ȡ���ǡ������ַ������԰ѹ����ļ�ָ�ɵ��ض��豸:
    • ��˵���ļ��У�/WORK_FILES=(device,...) �޶��ʰѹ����ļ�����ָ�����豸���й���˵���ļ���ʹ�� /WORK_FILES �޶��ʵ����飬����� 9.9.3 ����
    • �����ʹ��˵���ļ�������ʹ�� DCL ���� ASSIGN �ѹ����ļ�ָ�ɵ��ض��豸��
      Sort ʹ�� SORTWORKn �߼���Ϊ�����ļ���ʶ�û�ָ�����豸�����ڴ� n ��һ���� 0 �� 9 ��ֵ��(���ڸ����� Sort/Merge ���ó���n ��һ���� 0 �� 254 ��ֵ��) ���� SORTWORKn �߼�������:

      ASSIGN device: SORTWORKn


      ���磬


      $ ASSIGN WORK$2: SORTWORK1
      $ ASSIGN WORK$3: SORTWORK2
      

      ������Ӷ��� SORTWORK1 Ϊ�豸 WORK$2: �� SORTWORK2 Ϊ�豸 WORK$3:���й��߼��������飬������� 11 ����)

��ָ�ɹ����ļ����豸ʱ���������¼���:

  • �ѹ����ļ�ָ�ɸ������õ��豸�����磬����洢�������洢�豸������̡�
  • ��ѡ�������ٻ�������ÿռ���豸��
  • ��ÿ�������ļ�ָ�ɵ���ͬ�����豸��������ص���������������

9.8.4 �޸Ĺ�������Χ

��� Sort ��Ҫ�����ļ� (���磬����һ�����ļ�)����ô�ϴ�Ĺ����������������Ч�ʡ�Ȼ�������ϵͳ�����أ���Ҳ������Ϊ���Ľ��̷��乤������Χ������ҳ������Ե��·�ҳ��������ϵͳҪ�������洢���ͷ�ҳ�豸�ϵĴ洢��֮�䴫�䲿�ֽ���ʱ������ֻ�н��̵Ļ���ֱ����������洢����Ҫ��������ҳ�����Լ��ٽ��̵Ĺ�������Χ��(ʹ�� SET WORKING_SET ������ٹ�������Χ��)

9.9 Sort/Merge �޶��ʸ�Ҫ

�����б����� SORT �� MERGE ����ʹ�õ������޶��ʡ�Ҫʹ��һ�������޶��ʣ��������� SORT �� MERGE ����֮���������޶��ʡ�

/[NO]CHECK_SEQUENCE

ֻӦ���� MERGE �����֤�� MERGE �����ļ��ļ�¼˳�򡣰���Ĭ�ϣ�Merge ����¼��˳��
/CHECK_SEQUENCE �޶��ʼ��һ������ (��� 10 ������������ Sort/Merge ���ó���֧�ֶ�� 12 ��) �ļ��ļ�¼�Ƿ��ѱ�����(�����Ҫ�������ļ������м�¼ָ��������ļ��������ָ����) ���Ҫ����¼�����Ƿ��ռ��ֶζ�����������¼���ͱ���ָ������Ϣ�Լ�ʹ������˳��
ʹ�� /NOCHECK_SEQUENCE �޶�����ֹ Merge ����¼��˳��
����


$ MERGE/KEY=(SIZE:4,POSITION:3)/NOCHECK_SEQUENCE -
_$ PRICE1.DAT,PRICE2.DAT PRICE.LIS

����������У�/NOCHECK_SEQUENCE �޶���ָ������������ļ� PRICE1.DAT �� PRICE2.DAT ��˳��

/COLLATING_SEQUENCE=sequence

Ϊ�ַ����ֶ�ѡ������Ԥ����Ƚϴ���֮һ������ָ��һ�����ڱȽ��ַ����Ĺ����ַ��� (NCS) �Ƚ�˳������(������ Sort/Merge ���ó���֧�� NCS �Ƚ�˳�򡣶� NCS �Ƚ�˳���֧������������ OpenVMS Alpha ���а汾��) Sort ���԰� ASCII (Ĭ��)��EBCDIC ����˳�������ַ���
����


$ SORT/COLLATING_SEQUENCE=MULTINATIONAL -
_$ NAMES.DAT,NOM.DAT LIST.LIS

��� SORT ������ݶ���Ƚ�˳�����������ļ� NAMES.DAT �� NOM.DAT���Ӷ���������ļ� LIST.LIS��

/[NO]DUPLICATES

����Ĭ�ϣ�Sort �������д��ظ����Ķ����¼��/NODUPLICATES �޶����޳����д��ظ����ļ�¼��ֻ����һ����������¼���ֵĴ���������������ļ��ij��ִ���ͬ�������Ҫָ�������ĸ��ظ���¼����ô�ڳ��򼶵��� Sort����ָ��һ���ȼ����г���
/STABLE �� /NODUPLICATES �޶������໥�ų�ġ�
����


$ SORT/KEY=(POSITION:3,SIZE:5,DECIMAL)/NODUPLICATES -
_$ ACCT1,ACCT2 ACCT.LIS

��� SORT ��������ṩ�ļ��������������ļ����޳����д���ͬ���ļ�¼��������һ����

/KEY=(POSITION:n,SIZE:n[,field,...])

�������ֶΣ�����λ�á���С��������� (ASCENDING �� DESCENDING)�����ȼ� (NUMBER:n) ���������� (�����ַ��������ƻ� h_floating)������Ĭ�ϣ�ʹ���ַ����ݰ���������������¼��Sort ���¿�����һ���ļ���
�й� /KEY �޶��ʵ����飬����� 9.2.1 ����

/PROCESS=type

(ֻӦ���� SORT ���) �����ڲ�������̡�/PROCESS �޶�����������ѡ�ĸ�����֮һ: ��¼����ǩ����ַ��������(������ Sort/Merge ���ó���ֻ֧�ּ�¼���̡��Ա�ǩ����ַ���������̵�ʵ��Ҫ�������� OpenVMS Alpha ���а汾��)
�й� /PROCESS �޶��ʵ����飬����� 9.2.6 ����
����


$ SORT/KEY=(POS:40,SIZ:2,DESC)/PROCESS=TAG YRENDAVG.DAT -
_$ DESCYRAVG.LIS

��� Sort ����ʹ�ñ�ǩ������̽�������ļ� DESCYRAVG.LIS��

/SPECIFICATION=filespec

(������ Sort/Merge ���ó���֧������޶��ʡ���������Ե�ʵ������������ OpenVMS Alpha ���а汾��)

��ʶһ���� Sort �� Merge ������ʹ�õ� Sort �� Merge ˵���ļ���Ĭ��˵���ļ������� .SRT��
�й�ʹ��˵���ļ������飬����� 9.7 ���� 9.9.3 ����

/[NO]STABLE

����Ĭ�ϣ�����֤��ͬ����¼�������������ļ����ֵĴ����������ļ���/STABLE �޶��ʰ�ԭ���Ĵ���ά����¼��
/STABLE �� /NODUPLICATES �޶������໥�ų�ġ�
����


$ SORT/KEY=(POS:1,SIZ:5,DECIMAL)/STABLE PRICESA.DAT��-
_$ PRICESB.DAT,PRICESC.DAT SUMMARY.LIS

����� Sort �����У������г����� PRICESA.DAT ��ͬ����¼��Ȼ���� PRICESB.DAT������� PRICESC.DAT��

/[NO]STATISTICS

��ͳ�Ƹ�Ҫ��ʾ�� SYS$OUTPUT����Щ��Ϣ���������Ż�������Ҫ����Щͳ�Ʊ��浽һ���ļ���ʹ����������:


$ DEFINE/USER SYS$ERROR output-file

ͳ�Ƹ�Ҫ����������Ϣ:
ͳ�� ����
Records read Sort �� Merge ��ȡ��¼����Ŀ��
Records sorted ʹ�� Sort ������¼����Ŀ����� Sort �� Merge ����ʹ��һ��˵���ļ�ֻѡ��ijЩ��¼����ô��������ܱȶ�ȡ�ļ�¼��Ҫ�١�
Records output д������ļ��ļ�¼�������ѡ�� /NODUPLICATES ���ߵ�д�������¼ʱ���� I/O ������������ܱ�����ļ�¼��Ҫ�١�
Working set extent �ڽ��̹�������Χ�е�ҳ�������ֵ�����������ݽṹ��С�����ޡ��������ֵ��һ����� Sort ����Ч�ʵķ�����
Virtual memory ���ӵ� Sort ӳ�����ڱ������ݵ�����洢����ҳ����
Direct I/O + buffered I/O ��ȡ��д����������Ҫ�� I/O �ƶ��������������Խ�ͣ����������Ч�ʾ�Խ�ߡ�
Page faults ָ���������ڷ���洢���ij̶�: ҳ������Խ�ߣ����������Ч�ʾ�Խ�͡�
Elapsed time Sort �� Merge ����ʹ�õ��ܼ�ʱ�䣬��Сʱ�����ӡ���Ͱٷ�֮һ��ơ�
Input record length ���ֵ�Ӽ�¼�������� (OpenVMS RMS) ��ã������û��ṩ��
Internal length һ�����ֽ�Ϊ��λ���ڲ���ʽ�ڵ�Ĵ�С��������κμ������ݡ��洢���ȵ��֡���¼�ļ���ַ (RFA) ��ת���ļ���
Output record length �����¼�ij��ȡ���������Ǵ������¼���ȡ�������̺���������¸�ʽ��¼��������ġ� 
Sort tree size ���ڷ��� Sort �ڲ����ݽṹ�ļ�¼����
Number of initial runs �����ʺϷ���洢����һ��ָʾ��
Maximum merge order һ�κϲ��������ַ����������Ŀ��
Number of merge passes ֱ������һ�������������ַ���ʱ��Sort ���ó���ϲ��ַ����Ĵ�������ʼ�������ͺϲ���������ָ���������ڷ���洢���ij̶ȡ���Щ��Խ�ߣ���������С���������Ҳ��ԽԶ����������ʱ��Ҳ��Խ����
Work file allocation ���ڹ����ļ��Ŀ���������Ҫһ�����Ϻϲ�����ʱ�������С��Լ�������ļ������С��������
Elapsed CPU �������ʹ�õ� CPU ʱ�䣻���������ȴ� I/O ������ɻ�ȴ���һ������ִ�е�ʱ�俪����

����


$ SORT/STATISTICS PRICE1.DAT,PRICE2.DAT PRICE.LIS

��� SORT /STATISTICS ���������ͳ����ʾ:

��


              OpenVMS Sort/Merge Statistics

Records read:         793   Input record length:     80
Records sorted:       793   Internal length:         80
Records output:       793   Output record length:    80
Working set extent:   100   Sort tree size:         412
Virtual memory:       433   Number of initial runs:   2
Direct I/O:            22   Maximum merge order:      2
Buffered I/O:           9   Number of merge passes:   1
Page faults:         3418   Work file allocation:   114
Elapsed time: 00:00:05.98   Elapsed CPU:    00:00:03.63

/WORK_FILES[=n]

(ֻӦ���� SORT ���) ���� Sort �����ļ�����Ŀ���ɴ� 1 �� 10 ��(������ Sort/Merge ���ó���֧�ֶ�� 255 ��)����ʹÿ�������ļ���С��������ô���̫С��̫���������ܽ��������ļ�����ô�����ļ���������� Sort ������Ч�ʡ�
Sort ��Ҫ�����ļ��ŻὨ������� Sort ��Ҫ�����ļ�������Ĭ�����ͽ������� (SORTWORK0��SORTWORK1)���� SYS$SCRATCH Ŀ¼�С�
����


$ ASSIGN DRA5: SORTWORK0
$ ASSIGN DB0: SORTWORK1
$ ASSIGN DB1: SORTWORK2
$ SORT/KEY=(POS:1,SIZ:80)/WORK_FILES=3 -
_$ STATS1,STATS2,STATS3,STATS4 SUMMARY.LIS

����� Sort �����У���Ϊ�����ļ��Ǹ����ļ�����ָ�����������ļ���� Sort ������Ч�ʡ�
ע�⣬Ҳ����ͨ������Ŀ¼���ѹ����ļ�ָ�ɵ��豸���ض�Ŀ¼�����磬Ҫ�� SORTWORK0 ָ�ɵ� DRA5 �ϵ� [WORKSPACE] Ŀ¼��������������:


$ ASSIGN DRA5:[WORKSPACE] SORTWORK0

9.9.1 �����ļ��޶���

�� SORT �� MERGE �������У����������޶���Ӧ�ð����������ļ�˵��֮��:

/FORMAT=(RECORD_SIZE:n,FILE_SIZE:n)

���������ļ�����������ָ����ȡ����¼���ļ���С���� SORT �� MERGE �������У�����������������ļ�˵��֮��ָ����
Sort ʹ�������ļ���С��Ϣȷ����Ҫ�Ĵ洢���ܶ�Լ����� Sort �����Ĺ����ļ���С������ļ���Сδ֪ (���磬�����ļ�û��פ���ڴ����ϻ��׼ ANSI �Ŵ���)����ô Sort �ٶ�һ���൱����ļ���С��
ָ�������޶���ֵ:
RECORD_SIZE: n ���ֽ�Ϊ��λ��ָ�������ļ������¼���� (LRL)������ָ����������¼�������������ļ���֯:
˳�� 32,767
��� 16,383
����˳�� 16,362
  ���ڴ��̶����ȿ��� (VFC) ��ʽ�Ŀɱ��¼����Щֵ���������ֽڡ�
FILE_SIZE: n �Կ�Ϊ��λ��ָ�������ļ���С���ɽ��ܵ�����ļ���С�� 4,294,967,295 �顣

��Ҳ����ʹ�� /FORMAT ��Ϊһ������ļ��޶��ʡ��й����飬����� 9.9.2 ����
����


$ SORT/KEY=(POS:40,SIZ:2,DESC) -
_$CRA0:YRENDAVG.DAT/FORMAT=(RECORD_SIZE:41,FILE_SIZE:3) -
_$DESCYRAVG.LIS

��Ϊ�����ļ� YRENDAVG.DAT ��פ���ڴ����豸�� ANSI �Ŵ��ϣ����ļ���֯����ͨ�� /FORMAT �޶��ʼ���������

9.9.2 ����ļ��޶���

��������޶��ʿ���ʹ���� SORT �� MERGE �����С�Ҫʹ��һ������ļ��޶��ʣ����� SORT �� MERGE ��������������ļ�˵��֮���������޶��ʡ�

/ALLOCATION=n

Ϊ�Ż�������ָ��Ԥ���������ļ��Ŀ������� 1 �� 4,294,967,295�����֪������ļ����佫��ȫ��ͬ��ȫ�������ļ����䣬��ʹ������޶��� (���磬���¸�ʽ�����ݻ�ʡ�Լ�¼ʱ)��
���ʹ�� /CONTIGUOUS �޶��ʣ��� /ALLOCATION �޶����DZ���ġ�
����


$ SORT/KEY=(POS:1,SIZ:80) STATS.DAT -
_$ SUMMARY.LIS/ALLOCATION=1000/CONTIGUOUS

��� SORT ����Ϊ����ļ� SUMMARY.LIS ���� 1000 ���ڽӿ顣

/BUCKET_SIZE=n

Ϊ�Ż�����ָ����Ժ�����˳����������ļ�ʹ�õ� OpenVMS RMS Ͱ��С (ÿͰ 512 �ֽڿ����Ŀ)������һ�� 1 �� 32 ֮���ֵ��
�������ļ���֯�������ļ�һ����Ĭ��ֵ���һ�������ļ���Ͱ��Сһ�����������ļ���֯��ͬ��Ĭ��ֵ���� 1��
����


$ SORT/KEY=(POS:1,SIZ:80) STATS1.DAT,STATS2.DAT -
_$ SUMMARY.LIS/BUCKET_SIZE=16/RELATIVE

��� SORT ���������ļ� SUMMARY.LIS ��������ļ���֯������Ͱ��СΪ 16��

/CONTIGUOUS

��������ļ��洢���ڽӵĴ��̿��ϣ��Լ��ٴ�ȡʱ�䡣������ /ALLOCATION �޶���һ��ʹ�á�����Ĭ�ϣ�Sort/Merge ��Ϊ����ļ������ڽӵĴ��̿顣
����


$ SORT/KEY=(POS:1,SIZ:80) STATS.DAT -
_$ SUMMARY.LIS/ALLOCATION=1000/CONTIGUOUS

��� SORT ����Ϊ����ļ� SUMMARY.LIS ���� 1,000 ���ڽӿ顣

/FORMAT=(����:n[,...])

����������ļ���ʽ��ͬ����ָ������ļ��ļ�¼��ʽ (FIXED:n��VARIABLE:n �� CONTROLLED:n)����Ҳ����ָ���ļ���¼�Ĵ�С (SIZE:n) �� ���С (BLOCK_SIZE:n)��
��� Sort ������һ����¼���ǩ����Ĭ�������¼��ʽ���һ�������ļ���¼��ʽһ������� Sort ������һ����ַ����������Ĭ�������¼��ʽ�ǹ̶��ļ�¼��ʽ����������ļ��в�ͬ�ļ�¼��ʽ����ô Sort �ṩһ���㹻���������ļ�����¼�������¼��С��
����ָ�������޶���ֵ��
BLOCK_SIZE: n ������ļ�����Ŵ������ֽ�Ϊ��λָ������ļ��Ŀ��С����������ļ��ǴŴ��ļ�����ô����ļ��Ŀ��СĬ��Ϊ�����ļ��Ŀ��С����������ļ��Ŀ��СĬ��Ϊװ�ϴŴ�ʱʹ�õĴ�С��
  n �ɽ��ܵ�ֵ��Χ�� 20 �� 65,532��Ȼ����Ҫȷ�������� Compaq ϵͳ�����ݽ�����ȷ������ָ��һ������ 512 �ֽڴ�Ŀ��С��Ϊ����� Compaq ϵͳ���ݣ����С��Ҫ���� 2,048 �ֽڡ�
CONTROLLED: n ָ������ļ��й̶����ȿ���(VFC) ��¼�ı�����
FIXED: n ָ������ļ��Ĺ̶����ȼ�¼��
SIZE: n ���ֽ�Ϊ��λ��ָ�� VFC (CONTROLLED) ��¼�̶����ֵĴ�С����� 255 �ֽڡ������ָ�� SIZE��Ĭ���ǵ�һ�������ļ��̶����ֵĴ�С�����ָ�������СΪ 0����ô OpenVMS RMS Ĭ�ϸ�ֵΪ 2 �ֽڡ�
VARIABLE: n ָ������ļ��Ŀɱ䳤�ȼ�¼��

�����κ��޶���ֵ�����ܹ���ѡ��ָ�� n ��Ϊ�����¼������¼��С (���ֽ�Ϊ��λ)������¼��С������ֵ�������ļ���֯:
˳���ļ� 32,767
����ļ� 16,383
����˳���ļ� 16,362

��Щ����¼��Сֵ�����̶����ȿ��� (VFC) ��ʽ�Ŀɱ��¼�Ŀ����ֽڡ�
����


$ SORT/KEY=(POS:1,SIZ:80) STATS.DAT SUMMARY.LIS/FORMAT=FIXED:80

�����ļ� STATS.DAT ���� 80 �ֽڳ��Ŀɱ䳤�ȼ�¼��/FORMAT �޶���ָ������ļ� SUMMARY.LIS �����̶����ȼ�¼��

/INDEXED_SEQUENTIAL

��������ļ����ļ���֯Ϊ����˳��ע�⣬����ļ������Ѿ����ڲ��ұ���Ϊ�ա����⣬����ʹ�� /OVERLAY �޶���ָ��������ļ����Ա������¼���ǡ�
����


$ CREATE/FDL=NEW.FDL AVERAGE.DAT
$ SORT/KEY=(POS:1,SIZ:80) DATA.DAT,STATS.DAT -
_$ AVERAGE.DAT/INDEXED_SEQUENTIAL/OVERLAY

CREATE/FDL ��������ļ� AVERAGE.DAT��SORT ����ָ������ļ���������˳����֯������д����ļ� AVERAGE.DAT��

/OVERLAY

ָ��һ�����еĿ��ļ�������ļ�����������д�롣��ʹ�� /INDEXED_SEQUENTIAL �޶��ʣ�/OVERLAY �޶����DZ���ġ�
��������ļ���֯������˳������ļ������Ѿ����ڲ����ǿյġ��������ļ����գ���ô /OVERLAY ����д����ļ������ǰ����������ӵ���������ļ���ĩ�ˡ�
����ʹ�� CREATE/FDL ���ó�����һ���������ļ������ǣ����������ļ�ʱָ�����κ����Ծͳ�Ϊ Sort ����ļ������ԡ�
����


$ CREATE/FDL=NEW.FDL AVERAGE.DAT
$ SORT/KEY=(POS:1,SIZ:80) STATS.DAT AVERAGE.DAT/OVERLAY

FDL �ļ� NEW.FDL Ϊ�ļ� AVERAGE.DAT ָ����������ԡ��� Sort �����д���Ǹ��ļ�ʱ����Ϊ����� Sort ����ļ��� FDL �ļ�ָ�������ԡ�

/RELATIVE

��������ļ����ļ���֯Ϊ��ԡ�
����


$ SORT/KEY=(POS:1,SIZ:80) STATS.DAT SUMMARY.LIS/RELATIVE

��Ϊ�����ļ� STATS.DAT ����һ������ļ���������ļ� SUMMARY.LIS ���ǣ���ˣ�/RELATIVE �޶�����ļ�˵����

/SEQUENTIAL

��������ļ����ļ���֯Ϊ˳�����ǵ�ַ���������������Ĭ����֯����¼�ͱ�ǩ���������Ĭ����֯���һ�������ļ���ͬ��
����


$ SORT/KEY=(POS:1,SIZ:80) STATS.DAT SUMMARY.LIS/SEQUENTIAL

��Ϊ�����ļ� STATS.DAT ����һ��˳���ļ���������ļ� SUMMARY.LIS ���ǣ���ˣ�/SEQUENTIAL �޶�����ļ�˵����


ǰҳ ��ҳ Ŀ¼ ����