Сравнение IMS DB и DB2 for z/OS 
при использовании в DB2 
OLTP системах 
Часть I 
Эффективность 
Григорий Власов 
5 ноября 2014 г. 
1 Введение 
IBM имеет две СУБД для z/OS, IMS (далее DB1), и DB2 (далее DB2/Z) 
поэтому вопрос сравнения и поиска области применимости иногда стоит 
остро. Можно делая выбор судить по косвенным признакам. Для DB1 су- 
ществуют официально опубликованные результаты нагрузочного тестиро- 
вания модели финансового приложения с полным описанием, для DB2/Z 
существуют различные vs материалы, указывающие на ее производительность 
в составе решений, но найти выделенный документ посвященный произво- 
DB1 дительности DB2/Z не удалось. 
Но хотелось бы понять, каким способом, за счёт чего, DB1 в частности, и 
IMS в целом, получают такие результаты. Для этого придётся рассмотреть 
архитектуру обеих систем с точки зрения достижения высокой эффективно- 
сти. Под эффективностью понимается отношение количества выполненной 
работы к затраченным на эту работу ресурсам. Под ресурсами понимают- 
ся процессоры общего назначения System z GP, General Processor, а так же 
ZiiP и ZaaP, в отличие от процессоров SAP. Далее под процессорами общего 
назначения будут пониматься и GP, и Ziip/ZaaP процессоры. 
2 Особенности OLTP систем 
• все запросы к данным известны до запуска системы; 
• большое количество простых небольших запросов, поступающих асин- 
хронно, преимущественно на изменение и на вставку данных, с вы- 
сокими требованиями по времени отклика, и высокой вероятностью 
конфликта по доступу нескольких транзакций к одному ресурсу (на- 
пример, синтетические счета), при чём изменяется как правило часть 
одной записи, реже целая запись (например, остатки по счёту); 
• небольшое количество регламентных запросов на доступ к большим 
массивам данных в основном последовательно и на чтение (статисти- 
ческие отчёты, операции закрытия опер. дня, и т.д.), время допусти- 
мое на выполнение регламентных запросов как правило на по рядки 
больше времени, допустимого на выполнение асинхронных запросов; 
1
• высокие требования по ведению аудита работы, поскольку система 
имеет дело с финансовой информацией, и более того, создаёт первич- 
ные данные, которые в будущем могут многократно обрабатываться 
(в разных аналитических системах). 
2.1 Краткие выводы, вытекающие из особенностей 
• Запросы на доступ к данным можно создать и оптимизировать за- 
ранее, включая оптимизацию модели данных и физических структур 
данных; 
• высокие требования к качеству исполнения асинхронных запросов и 
интенсивность их применения требуют DB2 
тщательности их разработки; 
• возможность быстро адресовать нужную запись с наименьшими на- 
кладными расходами, и быстро произвести её обработку с наимень- 
шим временем на блокирование записи для достижения высокой сте- 
пени параллелизма; 
• обработка каждым запросом важной первичной финансовой инфор- 
мации требует отсутствия взаимного влияния параллельно выполня- 
ющихся запросов, другими словами, должна обеспечиваться макси- 
мальная изоляция параллельно выполняющихся запросов и обработки 
данных; 
• необходимо предусматривать средства всестороннего аудита проводи- 
мых операций vs с записями с наименьшими накладными расходами и 
минимальным влиянием на проводимые операции с записями. 
DB1 3 Различие в работе с DASD и Main Storage 
3.1 Различие в методах доступа 
DB2/Z для хранения данных использует VSAM LDS. Это по сути поток 
байт, не имеющий смысла с точки зрения бизнес-логики, читается с дис- 
ка и отдаётся DB2/Z, и собирается в логическую запись уже на ресурсах 
процессоров общего назначения, используя метаданные. Контролировать с 
точки зрения бизнес-логики размещение данных в LDS невозможно. Это 
повышает использование процессоров общего назначения. 
DB1 использует для хранения данных ESDS, KSDS и OSAM. Описание 
физической структуры данных позволяет подобрать физические парамет- 
ры хранения исходя из потребностей бизнес-логики. Соответствующая ка- 
нальная программа считывает с устройства в память порцию данных име- 
ющую логическое значение. Описание здесь: 
• DEDB design guidelines 
• Parts of a DEDB area 
• How HDAM and PHDAM records are stored 
• Designing full-function databases 
Вывод: при работе с данными на внешних дисках DB1 в большей степени 
использует канальную подсистему с её процессорами и программами, и в 
меньшей степени процессоры общего назначения. 
2
3.2 Различие в работе с метаданными 
DB2/Z хранит все метаданные в каталоге (и часть в Directory), который 
представляет собой набор таблиц, данные из которых извлекаются SQL за- 
просами. Работа с метаданными происходит полностью с использованием 
ресурсов процессоров общего назначения. 
DB1 ведёт следующие уровни метаданных: 
• физическое представление данных; 
• логическое представление данных. 
Описание метаданных выполняется в макросах ассемблера, которые компи- 
лируются в загрузочный формат, или с помощью DB2 
команд dynamic resource 
definition, результат работы которых тот же загрузочный формат. 
Физическое представление данных (DBD, Database Description) опи- 
сывает формат и порядок хранения данных на диске, описывает связи меж- 
ду объектами и определяет соответствующий набор указателей для связы- 
вания объектов.Связь объектов между собой на физическом уровне может 
быть представлена в виде графа. 
Логическое представление данных (PSB, Program Specification Block) 
определяет для конкретной программы: 
• область видимости данных; 
• окончательную vs (и только иерархическую) структуру связи объектов 
DB1 между собой, являющуюся подмножеством графа; 
• тип разрешённых над данными действий (вставка, удаление, измене- 
ние, чтение). 
Application Control Block. Для ускорения работы с метаданными DBD 
и PSB объединяются в один бинарный модуль, который динамически лин- 
куется с IMS. 
Таким образом метаданные загружаются и используются во внутреннем 
представлении программы, что это позволяет устранить любые задержки 
при обращении к метаданным и значительно снизить загрузку процессоров 
общего назначения. 
Вывод: при использовании DB1 на управление метаданными тратятся 
минимальные ресурсы процессоров общего назначения. При использовании 
DB2/Z для управления метаданными используются исключительно ресур- 
сы процессоров общего назначения. 
3.3 Различие в работе с оперативной памятью 
DB2/Z использует Buffer Manager, являющийся частью DBAS1, для 
управления содержимым пулов оперативной памяти, выделенной под дан- 
ные. Эта компонента работает на процессорах общего назначения. Размер 
1Database Service Address Space 
3
страниц для обмена с пулами фиксирован, и составляет 4К, 8К, 16К, 32К, 
что может привести к не самому эффективному использованию памяти. 
DB1 использует, буферы VSAM, которые управляются канальными 
программами, с использованием специализированного процессора вво- 
да/вывода,2 не используя ресурсы процессоров общего назначения, что сни- 
жает требование к количеству процессоров и лицензий ПО. При использо- 
вании OSAM размер блока для обмена с памятью задаётся произвольно в 
пределах от 18 до 32768 Bytes, что позволяет более гибко управлять памя- 
тью и точно согласовывать размер записи на диске с её логическим содер- 
жанием, экономя дисковое пространство DB2 
и операции I/O. 
Вывод: управление пулами буферов в DB2/Z происходит с использова- 
нием ресурсов процессоров общего назначения.Управление памятью в DB1 
возможно организовать более гибко, что позволит экономить как дисковое 
пространство, так и оперативную память. 
3.4 Различие в упреждающем чтении 
DB2/Z использует для упреждающего чтения специальный функционал 
в составе адресного пространства DBAS, который исполняется на процессо- 
рах общего назначения. Динамическое упреждающее чтение выполняется 
для данных при выполнении любого индексного доступа, а так же при до- 
ступе к индексам. То есть практически всегда. 
DB1 позволяет использовать метод доступа OSAM, созданный специ- 
ально для IMS, vs который отличается исполнением упреждающего чтения 
DB1 на уровне канальной программы, исполняющейся на специализированном 
процессоре ввода/вывода. При этом упреждающее чтение выполняется в 
случае обнаружения последовательности в работе с данными, и при слу- 
чайном доступе к данным не используется. 
Вывод: при использовании DB1 для организации упреждающего чтения 
не используются ресурсы процессоров общего назначения. Само упреждаю- 
щее чтение используется только при фактическом осуществлении последо- 
вательного доступа к данным, при случайном доступе к данным упрежда- 
ющее чтение не используется, что позволяет не считывать с диска в память 
невостребованные данные. 
4 Различие в работе с данными 
4.1 Различие в адресации данных 
Перед началом выполнения любых действий с записью необходимо вы- 
полнить адресацию — преобразовать ключ записи в её физический адрес. 
Это, пожалуй, самая распространённая операция в СУБД. DB2/Z может 
адресовать нужную запись одним из двух методов: 
• последовательное сканирование таблицы целиком; 
• индексный доступ. 
2VSAM Demistified, стр. 154 
4
Индекс — отдельный самостоятельный объект базы данных.Структура ин- 
декса может быть организована по B-Tree структуре (стр 22), или индекс 
может быть организован по hash функци.При преобразовании ключа записи 
в адрес конкретной записи сперва выполняется доступ к объекту индекса, 
затем осуществляется доступ к требуемой записи. В случае древовидного 
индекса с ростом количества данных (как самих данных так и размеров 
индексов) время доступа к нужному элементу данных не будет оставаться 
постоянным, будет расти, в том числе и по причине увеличения глубины 
дерева индекса, что будет требовать большего количества операций для 
доступа к нужным данным. К тому же индекс требует обслуживания ад- 
министратором, как объект базы данных. 
DB2 
При использовании DB1 в составе OLTP системы не используется ин- 
дексный доступ, вместо этого используется модуль рандомизации, для раз- 
ных типов баз данных. Одной из очевидных задач этого модуля является 
преобразование ключа записи в её физический адрес. Эта операция зани- 
мает неизменное время. Размер модуля рандомизации может быть разный, 
конкретный размер модуля, использовавшегося в нагрузочном тестирова- 
нии карточного процессинга составляет 31 ассемблерную инструкцию, раз- 
мер после компиляции и связывания равен 96 байтам. Очевидно, что такой 
подход никак не может сравниваться с индексным подходом, применяемым 
в РСУБД, в том числе в DB2/Z, с точки зрения эффективности. Это про- 
сто несопоставимые сущности. А так как операция адресации применяется 
к каждой записи, с которой работает СУБД, хоть на чтение, хоть на изме- 
нение, хоть на запись, то есть это самая распространённая операция, то тем 
больше разрыв в vs эффективности адресации записи между DB1 и DB2/Z. 
DB1 Одна из особенностей модуля рандомизации — неизменность времени адре- 
сации. 
Но модуль рандомизации может быть чрезвычайно полезным и в дру- 
гих случаях, например, в операции закрытия банковского дня. Если дан- 
ные в базе разбиты на отдельные разделы (в IMS DB в типе базы DEDB 
эти разделы называются Area, аналог в DB2/Z — партиция), то можно ор- 
ганизовать параллельную работу программы закрытия банковского дня, 
в несколько потоков, когда каждый поток программы работает со своей 
партицией. Для этого используют логику работы рандомайзера. В случае 
“прямой” работы рандомайзер получает на вход ключ записи, и отдаёт на 
выход номер партиции и адрес записи внутри партиции. При закрытии бан- 
ковского дня выполняется обратная операция — каждый поток программы 
закрытия получает свой номер партиции для работы, и используя логи- 
ку, используемую при создании модуля рандомизации выполняет обратное 
преобразование номера партиции (Area) в последовательность ключей за- 
писей, которые хранятся в этой партиции. Таким образом обеспечивается 
работа каждого потока программы закрытия банковского дня в рамках од- 
ной партиции, при том обеспечивается самым эффективным образом, без 
использования индексного доступа, как в DB2/Z. 
В целом такой подход обеспечивает следующие преимущества: 
• чрезвычайно высокая скорость работы по адресации записи при чрез- 
вычайно низких затратах процессорного времени; 
• отсутствие операций ввода-вывода; 
• возможность организации параллельного и эффективного исполнения 
5
таких задач как закрытие банковского дня, при чём на очень больших 
объёмах данных в крупнейших банках мира такая операция занимает 
порядка минут, или даже одной минуты, в то время как такая же 
задача на РСУБД, в том числе на DB2/Z выполняется не менее 4 
часов. 
Но такой подход имеет и свои недостатки. Если предложение “create table” и 
“create index” в DB2/Z может выполнить каждый, то спроектировать и на- 
писать модуль рандомизации на HLASM требует навыков системного про- 
граммирования и архитектурных знаний. 
Вывод: DB1 может гарантировать постоянное DB2 
и неизменное время до- 
ступа к каждому элементу данных, основанное на неизменности структу- 
ры данных и связанной с этим неизменности количество операций, необхо- 
димых для извлечения данных.3 При этом затраты ресурсов на доступ к 
структуре данных в DB1 не сопоставимы с затратами на доступ к данным 
в DB2/Z. 
4.2 Доступ к логически связанным элементам 
В DB2/Z используется стандартный подход РСУБД, когда список логи- 
чески связанных элементов получается методом умножения множеств. Это 
всегда происходит с использованием ресурсов процессоров общего назначе- 
ния. Существуют разные типы операций для соединения логически связан- 
ных таблици разные vs технические реализации (Nested Loop Join, Hash Join, 
DB1 Merge Join), но всегда это выполняется на основных процессорах. Зачастую 
производительность операций логического соединения данных является уз- 
ким местом с точки зрения производительности. 
В DB1 логическая связь между данными осуществляется хранением ад- 
реса связываемого элемента в префиксе сегмента.Таким образом для полу- 
чения логически связанных элементов не используются ресурсы процессо- 
ров общего назначения, что снижает требование к аппаратному обеспече- 
нию и количеству лицензий ПО. 
Вывод: при необходимости работы с логически связанными элементами 
DB1 использует исключительно низкие затраты ресурсов процессоров и 
обеспечивает низкое время доступа к данным. 
3При использовании правильного модуля рандомизации с корректными параметрами. 
6

More Related Content

PPTX
проектная работа на тему субд
DOC
001
PDF
Система Хранения Оригиналов Документов
PPT
базы данных
PDF
Windows Server 2003 Seminar
PPT
санжировская урок 1 базы данных
PDF
Citeck ecos presentation
PPTX
Lekcia15
проектная работа на тему субд
001
Система Хранения Оригиналов Документов
базы данных
Windows Server 2003 Seminar
санжировская урок 1 базы данных
Citeck ecos presentation
Lekcia15

What's hot (16)

PPT
Базы данных лекция №1
PPTX
Управление данными (дополнительно)
PPTX
Подводные камни при внедрении электронного архива и оцифровке документов
PPT
1с документооборот
PPT
Возможности 1С Документооборот 8
PPT
Возможности 1С Документооборот 8
PDF
9946
PDF
Росрезерв - система электронного документооборота
PPTX
3_БД_Основные понятия
DOCX
По результатам беседы по телефону
PDF
Firebird DataGuard - Еще раз об уверенности в завтрашнем дне
PDF
Презентация системы КБНТИ
PPTX
Управление данными (Введение в СУБД)
PDF
Data bases in pictures
Базы данных лекция №1
Управление данными (дополнительно)
Подводные камни при внедрении электронного архива и оцифровке документов
1с документооборот
Возможности 1С Документооборот 8
Возможности 1С Документооборот 8
9946
Росрезерв - система электронного документооборота
3_БД_Основные понятия
По результатам беседы по телефону
Firebird DataGuard - Еще раз об уверенности в завтрашнем дне
Презентация системы КБНТИ
Управление данными (Введение в СУБД)
Data bases in pictures
Ad

Viewers also liked (8)

PDF
Top home selling mistakes
PPT
Ceit 338
PPTX
inhibición cilco celular por la asparaqginasa de la H. pylori
PPT
M&A Lecture Series
PPTX
Mineral Mapping with HyMap - Mexican Examples
PPT
Teachertube.com
PPT
MehmeT UYSAL SlideShare.Net Kullanımı
PPTX
plegable molecular
Top home selling mistakes
Ceit 338
inhibición cilco celular por la asparaqginasa de la H. pylori
M&A Lecture Series
Mineral Mapping with HyMap - Mexican Examples
Teachertube.com
MehmeT UYSAL SlideShare.Net Kullanımı
plegable molecular
Ad

Similar to IMS DB vs DB2 for z/OS (20)

PPTX
10 субд
DOC
Konspekt
PPT
раздел 1 введение в базы данных
PPTX
PPT
Present
PPT
006
PPT
Ais Lecture 2
PPTX
PPT
PPT
субд
PPT
субд
PPT
субд
PDF
Где и как хранить данные в процессе их анализа:  SQL и не только…
PPSX
Presentation_1370860238383
PPT
базы данных в Delphi
PPT
лекция 2
PPT
лекц4
PPTX
Oracle Database 12c. Консолидация и Мультиарендность
PPTX
Управление данными (распределенная обработка)
PDF
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
10 субд
Konspekt
раздел 1 введение в базы данных
Present
006
Ais Lecture 2
субд
субд
субд
Где и как хранить данные в процессе их анализа:  SQL и не только…
Presentation_1370860238383
базы данных в Delphi
лекция 2
лекц4
Oracle Database 12c. Консолидация и Мультиарендность
Управление данными (распределенная обработка)
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС

IMS DB vs DB2 for z/OS

  • 1. Сравнение IMS DB и DB2 for z/OS при использовании в DB2 OLTP системах Часть I Эффективность Григорий Власов 5 ноября 2014 г. 1 Введение IBM имеет две СУБД для z/OS, IMS (далее DB1), и DB2 (далее DB2/Z) поэтому вопрос сравнения и поиска области применимости иногда стоит остро. Можно делая выбор судить по косвенным признакам. Для DB1 су- ществуют официально опубликованные результаты нагрузочного тестиро- вания модели финансового приложения с полным описанием, для DB2/Z существуют различные vs материалы, указывающие на ее производительность в составе решений, но найти выделенный документ посвященный произво- DB1 дительности DB2/Z не удалось. Но хотелось бы понять, каким способом, за счёт чего, DB1 в частности, и IMS в целом, получают такие результаты. Для этого придётся рассмотреть архитектуру обеих систем с точки зрения достижения высокой эффективно- сти. Под эффективностью понимается отношение количества выполненной работы к затраченным на эту работу ресурсам. Под ресурсами понимают- ся процессоры общего назначения System z GP, General Processor, а так же ZiiP и ZaaP, в отличие от процессоров SAP. Далее под процессорами общего назначения будут пониматься и GP, и Ziip/ZaaP процессоры. 2 Особенности OLTP систем • все запросы к данным известны до запуска системы; • большое количество простых небольших запросов, поступающих асин- хронно, преимущественно на изменение и на вставку данных, с вы- сокими требованиями по времени отклика, и высокой вероятностью конфликта по доступу нескольких транзакций к одному ресурсу (на- пример, синтетические счета), при чём изменяется как правило часть одной записи, реже целая запись (например, остатки по счёту); • небольшое количество регламентных запросов на доступ к большим массивам данных в основном последовательно и на чтение (статисти- ческие отчёты, операции закрытия опер. дня, и т.д.), время допусти- мое на выполнение регламентных запросов как правило на по рядки больше времени, допустимого на выполнение асинхронных запросов; 1
  • 2. • высокие требования по ведению аудита работы, поскольку система имеет дело с финансовой информацией, и более того, создаёт первич- ные данные, которые в будущем могут многократно обрабатываться (в разных аналитических системах). 2.1 Краткие выводы, вытекающие из особенностей • Запросы на доступ к данным можно создать и оптимизировать за- ранее, включая оптимизацию модели данных и физических структур данных; • высокие требования к качеству исполнения асинхронных запросов и интенсивность их применения требуют DB2 тщательности их разработки; • возможность быстро адресовать нужную запись с наименьшими на- кладными расходами, и быстро произвести её обработку с наимень- шим временем на блокирование записи для достижения высокой сте- пени параллелизма; • обработка каждым запросом важной первичной финансовой инфор- мации требует отсутствия взаимного влияния параллельно выполня- ющихся запросов, другими словами, должна обеспечиваться макси- мальная изоляция параллельно выполняющихся запросов и обработки данных; • необходимо предусматривать средства всестороннего аудита проводи- мых операций vs с записями с наименьшими накладными расходами и минимальным влиянием на проводимые операции с записями. DB1 3 Различие в работе с DASD и Main Storage 3.1 Различие в методах доступа DB2/Z для хранения данных использует VSAM LDS. Это по сути поток байт, не имеющий смысла с точки зрения бизнес-логики, читается с дис- ка и отдаётся DB2/Z, и собирается в логическую запись уже на ресурсах процессоров общего назначения, используя метаданные. Контролировать с точки зрения бизнес-логики размещение данных в LDS невозможно. Это повышает использование процессоров общего назначения. DB1 использует для хранения данных ESDS, KSDS и OSAM. Описание физической структуры данных позволяет подобрать физические парамет- ры хранения исходя из потребностей бизнес-логики. Соответствующая ка- нальная программа считывает с устройства в память порцию данных име- ющую логическое значение. Описание здесь: • DEDB design guidelines • Parts of a DEDB area • How HDAM and PHDAM records are stored • Designing full-function databases Вывод: при работе с данными на внешних дисках DB1 в большей степени использует канальную подсистему с её процессорами и программами, и в меньшей степени процессоры общего назначения. 2
  • 3. 3.2 Различие в работе с метаданными DB2/Z хранит все метаданные в каталоге (и часть в Directory), который представляет собой набор таблиц, данные из которых извлекаются SQL за- просами. Работа с метаданными происходит полностью с использованием ресурсов процессоров общего назначения. DB1 ведёт следующие уровни метаданных: • физическое представление данных; • логическое представление данных. Описание метаданных выполняется в макросах ассемблера, которые компи- лируются в загрузочный формат, или с помощью DB2 команд dynamic resource definition, результат работы которых тот же загрузочный формат. Физическое представление данных (DBD, Database Description) опи- сывает формат и порядок хранения данных на диске, описывает связи меж- ду объектами и определяет соответствующий набор указателей для связы- вания объектов.Связь объектов между собой на физическом уровне может быть представлена в виде графа. Логическое представление данных (PSB, Program Specification Block) определяет для конкретной программы: • область видимости данных; • окончательную vs (и только иерархическую) структуру связи объектов DB1 между собой, являющуюся подмножеством графа; • тип разрешённых над данными действий (вставка, удаление, измене- ние, чтение). Application Control Block. Для ускорения работы с метаданными DBD и PSB объединяются в один бинарный модуль, который динамически лин- куется с IMS. Таким образом метаданные загружаются и используются во внутреннем представлении программы, что это позволяет устранить любые задержки при обращении к метаданным и значительно снизить загрузку процессоров общего назначения. Вывод: при использовании DB1 на управление метаданными тратятся минимальные ресурсы процессоров общего назначения. При использовании DB2/Z для управления метаданными используются исключительно ресур- сы процессоров общего назначения. 3.3 Различие в работе с оперативной памятью DB2/Z использует Buffer Manager, являющийся частью DBAS1, для управления содержимым пулов оперативной памяти, выделенной под дан- ные. Эта компонента работает на процессорах общего назначения. Размер 1Database Service Address Space 3
  • 4. страниц для обмена с пулами фиксирован, и составляет 4К, 8К, 16К, 32К, что может привести к не самому эффективному использованию памяти. DB1 использует, буферы VSAM, которые управляются канальными программами, с использованием специализированного процессора вво- да/вывода,2 не используя ресурсы процессоров общего назначения, что сни- жает требование к количеству процессоров и лицензий ПО. При использо- вании OSAM размер блока для обмена с памятью задаётся произвольно в пределах от 18 до 32768 Bytes, что позволяет более гибко управлять памя- тью и точно согласовывать размер записи на диске с её логическим содер- жанием, экономя дисковое пространство DB2 и операции I/O. Вывод: управление пулами буферов в DB2/Z происходит с использова- нием ресурсов процессоров общего назначения.Управление памятью в DB1 возможно организовать более гибко, что позволит экономить как дисковое пространство, так и оперативную память. 3.4 Различие в упреждающем чтении DB2/Z использует для упреждающего чтения специальный функционал в составе адресного пространства DBAS, который исполняется на процессо- рах общего назначения. Динамическое упреждающее чтение выполняется для данных при выполнении любого индексного доступа, а так же при до- ступе к индексам. То есть практически всегда. DB1 позволяет использовать метод доступа OSAM, созданный специ- ально для IMS, vs который отличается исполнением упреждающего чтения DB1 на уровне канальной программы, исполняющейся на специализированном процессоре ввода/вывода. При этом упреждающее чтение выполняется в случае обнаружения последовательности в работе с данными, и при слу- чайном доступе к данным не используется. Вывод: при использовании DB1 для организации упреждающего чтения не используются ресурсы процессоров общего назначения. Само упреждаю- щее чтение используется только при фактическом осуществлении последо- вательного доступа к данным, при случайном доступе к данным упрежда- ющее чтение не используется, что позволяет не считывать с диска в память невостребованные данные. 4 Различие в работе с данными 4.1 Различие в адресации данных Перед началом выполнения любых действий с записью необходимо вы- полнить адресацию — преобразовать ключ записи в её физический адрес. Это, пожалуй, самая распространённая операция в СУБД. DB2/Z может адресовать нужную запись одним из двух методов: • последовательное сканирование таблицы целиком; • индексный доступ. 2VSAM Demistified, стр. 154 4
  • 5. Индекс — отдельный самостоятельный объект базы данных.Структура ин- декса может быть организована по B-Tree структуре (стр 22), или индекс может быть организован по hash функци.При преобразовании ключа записи в адрес конкретной записи сперва выполняется доступ к объекту индекса, затем осуществляется доступ к требуемой записи. В случае древовидного индекса с ростом количества данных (как самих данных так и размеров индексов) время доступа к нужному элементу данных не будет оставаться постоянным, будет расти, в том числе и по причине увеличения глубины дерева индекса, что будет требовать большего количества операций для доступа к нужным данным. К тому же индекс требует обслуживания ад- министратором, как объект базы данных. DB2 При использовании DB1 в составе OLTP системы не используется ин- дексный доступ, вместо этого используется модуль рандомизации, для раз- ных типов баз данных. Одной из очевидных задач этого модуля является преобразование ключа записи в её физический адрес. Эта операция зани- мает неизменное время. Размер модуля рандомизации может быть разный, конкретный размер модуля, использовавшегося в нагрузочном тестирова- нии карточного процессинга составляет 31 ассемблерную инструкцию, раз- мер после компиляции и связывания равен 96 байтам. Очевидно, что такой подход никак не может сравниваться с индексным подходом, применяемым в РСУБД, в том числе в DB2/Z, с точки зрения эффективности. Это про- сто несопоставимые сущности. А так как операция адресации применяется к каждой записи, с которой работает СУБД, хоть на чтение, хоть на изме- нение, хоть на запись, то есть это самая распространённая операция, то тем больше разрыв в vs эффективности адресации записи между DB1 и DB2/Z. DB1 Одна из особенностей модуля рандомизации — неизменность времени адре- сации. Но модуль рандомизации может быть чрезвычайно полезным и в дру- гих случаях, например, в операции закрытия банковского дня. Если дан- ные в базе разбиты на отдельные разделы (в IMS DB в типе базы DEDB эти разделы называются Area, аналог в DB2/Z — партиция), то можно ор- ганизовать параллельную работу программы закрытия банковского дня, в несколько потоков, когда каждый поток программы работает со своей партицией. Для этого используют логику работы рандомайзера. В случае “прямой” работы рандомайзер получает на вход ключ записи, и отдаёт на выход номер партиции и адрес записи внутри партиции. При закрытии бан- ковского дня выполняется обратная операция — каждый поток программы закрытия получает свой номер партиции для работы, и используя логи- ку, используемую при создании модуля рандомизации выполняет обратное преобразование номера партиции (Area) в последовательность ключей за- писей, которые хранятся в этой партиции. Таким образом обеспечивается работа каждого потока программы закрытия банковского дня в рамках од- ной партиции, при том обеспечивается самым эффективным образом, без использования индексного доступа, как в DB2/Z. В целом такой подход обеспечивает следующие преимущества: • чрезвычайно высокая скорость работы по адресации записи при чрез- вычайно низких затратах процессорного времени; • отсутствие операций ввода-вывода; • возможность организации параллельного и эффективного исполнения 5
  • 6. таких задач как закрытие банковского дня, при чём на очень больших объёмах данных в крупнейших банках мира такая операция занимает порядка минут, или даже одной минуты, в то время как такая же задача на РСУБД, в том числе на DB2/Z выполняется не менее 4 часов. Но такой подход имеет и свои недостатки. Если предложение “create table” и “create index” в DB2/Z может выполнить каждый, то спроектировать и на- писать модуль рандомизации на HLASM требует навыков системного про- граммирования и архитектурных знаний. Вывод: DB1 может гарантировать постоянное DB2 и неизменное время до- ступа к каждому элементу данных, основанное на неизменности структу- ры данных и связанной с этим неизменности количество операций, необхо- димых для извлечения данных.3 При этом затраты ресурсов на доступ к структуре данных в DB1 не сопоставимы с затратами на доступ к данным в DB2/Z. 4.2 Доступ к логически связанным элементам В DB2/Z используется стандартный подход РСУБД, когда список логи- чески связанных элементов получается методом умножения множеств. Это всегда происходит с использованием ресурсов процессоров общего назначе- ния. Существуют разные типы операций для соединения логически связан- ных таблици разные vs технические реализации (Nested Loop Join, Hash Join, DB1 Merge Join), но всегда это выполняется на основных процессорах. Зачастую производительность операций логического соединения данных является уз- ким местом с точки зрения производительности. В DB1 логическая связь между данными осуществляется хранением ад- реса связываемого элемента в префиксе сегмента.Таким образом для полу- чения логически связанных элементов не используются ресурсы процессо- ров общего назначения, что снижает требование к аппаратному обеспече- нию и количеству лицензий ПО. Вывод: при необходимости работы с логически связанными элементами DB1 использует исключительно низкие затраты ресурсов процессоров и обеспечивает низкое время доступа к данным. 3При использовании правильного модуля рандомизации с корректными параметрами. 6