Значение TYPE STANDARD TABLE OF
и TYPE TABLE OF
точно такое же, STANDARD
подразумевается, если ничего не указано.Однако теперь в ОО-контексте ожидается, что вы полностью объявите внутренние таблицы и не сможете пропустить добавление STANDARD
.В этом случае это просто стандартная внутренняя таблица, доступ к которой можно получить путем чтения по индексу таблицы или по ключу, если вы отсортировали таблицу вручную.
Таблица TYPE HASHED TABLE
создает внутреннюю таблицуэто представляется с использованием внутреннего алгоритма HASH, позволяющего считывать данные в таблицу, где стоимость (приблизительно) не зависит от размера таблицы.Использование таблиц такого типа хорошо, когда у вас большие наборы данных с большим количеством операций чтения, но сравнительно небольшим числом операций записи.При объявлении хеш-таблицы необходимо также объявить UNIQUE KEY
, поскольку алгоритм HASH зависит от этого.
INITIAL SIZE 0
также является избыточным использованием кода - это означает, что выделение памяти будет происходить в набореблоки.(Я не уверен, является ли этот размер предопределенным или настраиваемым с помощью BASIS), но НАЧАЛЬНЫЙ РАЗМЕР 0 является значением по умолчанию.Если бы вы хотели, чтобы выделение памяти происходило в наборах, в 10 раз превышающих количество строк во внутренней таблице, вы бы использовали «НАЧАЛЬНЫЙ РАЗМЕР 10», но в большинстве случаев оставить выделение памяти по умолчанию лучше, чем пытаться его принудительно вызвать.
Кроме того
Таблица TYPE SORTED TABLE
может быть объявлена либо с помощью клавиши UNIQUE
, либо NON-UNIQUE
.Стоимость чтения записи меньше, чем у таблицы STANDARD
, поскольку она допускает BINARY SEARCH
, но больше, чем у таблицы HASHED
.Стоимость записи немного дороже, чем у таблицы STANDARD
, но меньше, чем у таблицы HASHED
.