 |
OpenVMS �û��ֲ�
9.8.2 ʡ�Լ�¼���ֶ�
��˵���ļ��У�ʹ�� /CONDITION��/INCLUDE �� /OMIT
����ֻ������Щ����ļ���Ҫ�ļ�¼��������� Sort Ч�ʡ�(������ Sort/Merge
���ó���֧��˵���ļ�����������Ե�ʵ������������ OpenVMS Alpha ���а汾��)
Ҳ����ʹ��˵���ļ��������¸�ʽ����¼��ʡ������ļ��в���Ҫ���ֶΡ���Щ���ʲ����������������ʡ�
�� 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 WORK$2: SORTWORK1
$ ASSIGN WORK$3: SORTWORK2
|
������Ӷ��� SORTWORK1 Ϊ�豸 WORK$2: �� SORTWORK2
Ϊ�豸 WORK$3:���й����������飬������� 11 ����)
��ָ�ɹ����ļ����豸ʱ���������¼���:
- �ѹ����ļ�ָ�ɸ������õ��豸�����磬����洢�������洢�豸������̡�
- ��ѡ�������ٻ�������ÿռ���豸��
- ��ÿ�������ļ�ָ�ɵ���ͬ�����豸��������ص���������������
9.8.4 �Ĺ�������Χ
��� Sort ��Ҫ�����ļ� (���磬����һ�����ļ�)����ô�ϴ�Ĺ����������������Ч�ʡ�Ȼ�������ϵͳ�����أ���Ҳ������Ϊ���Ľ��̷��乤������Χ������ҳ������Ե��·�ҳ��������ϵͳҪ�������洢���ͷ�ҳ�豸�ϵĴ洢��֮�䴫�䲿�ֽ���ʱ������ֻ�н��̵Ļ���ֱ����������洢����Ҫ��������ҳ�����Լ��ٽ��̵Ĺ�������Χ��(ʹ�� SET WORKING_SET ������ٹ�������Χ��)
�����б����� 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 ������ļ�˵����
|