Вызов fseeko
занимает много секунд в многотомном наборе данных, например:
stream=fopen("//'A.B.C'", "rb,type=record");
fseeko(stream, 40000, 0);
Это занимает более 8 секунд. Как отмечено в комментариях, в журнале зарегистрировано несколько APAR с описанием проблемы:
https://www.ibm.com/support/pages/apar/PK5078 https://www.ibm.com/support/pages/apar/PQ94363
Вопрос в : возможно ли повысить производительность без перехода к однообъемным или многополосным наборам данных?
Исходный вопрос был:
У меня есть набор данных AB C с параметрами PO=PS
и RECFM=FS
. Следующий код Java работает быстро для одинарного набора данных.
ZFile zfile = new ZFile("//'A.B.C'", "rb,type=record");
file.seek(1000);
file.seek(2000);
file.seek(4000);
Функция поиска занимает несколько миллисекунд.
Если набор данных AB C размещен на нескольких громкости, каждый звонок file.seek()
занимает несколько секунд. Дальнейшие эксперименты показали, что доступ на самом деле является последовательным, например, вызов zfile.seek(10000)
занимает в 10 раз больше времени, чем вызов zfile.seek(1000)
.
Как правильно выполнять ZFile.seek для многотомного набора данных? ?