Технология Клиент-Сервер 2010'2 |
|||||||
|
Кэширование простой таблицы индексным массивом. Сортировка индексных массивов Oracle PL/SQLКэширование сложных структур данных индексными массивами. Проблема с индексом |
Язык программирования PL/SQL, предназначенный для программирования серверной части приложений, является очень мощным инструментов в умелых руках. Одним из интереснейших инструментов эффективного программирования являются такие представители коллекций PL/SQL как индексные таблицы, или ассоциативные массивы. Одним из основных применений индексных таблиц, на мой взгляд, является кэширование справочных таблиц приложений для быстрого доступа к часто используемым данным. Быстрый доступ автоматически обеспечивается благодаря поиску записи в индексной таблице по индексному ключу. В этом случае поиск будет выполняться в памяти максимально быстро.
Но использование индексных таблиц в качестве кэш-таблиц имеет и существенный недостаток. Индексные таблицы определяются как глобальный объект PL/SQL-пакета и существуют на уровне сессии пользователя, поэтому в каждой сессии данные в них будут считываться из таблиц базы данных и занимать некоторую память. В этом смысле такое кэширование данных должно использоваться либо для небольших объемов данных, для которых критична скорость выборки, либо для крупных расчетных задач, которые запускаются нечасто отдельными пользователями.
<...>
Приведенное решение выглядит довольно простым. Ключевым элементом этого метода можно считать двумерный массив sort. Конструкция sort(arr(n))(n):=null; заполняет этот массив сначала значениями массива arr, но, так как они могут повторяться, то значения ключа запоминаются во втором измерении массива sort.
Используя приведенную выше методику, можно реализовать сколь угодно сложные методы сортировки, фактически создавая вспомогательный индексный массив с требуемыми условиями сортировки.
Copyright © 1994-2016 ООО "К-Пресс"