В раздел "Задание уровня изоляции" добавьте следующие абзацы:
Помимо задания уровня изоляции на уровне пакетов при подготовке или связывании программы вы можете задать изоляцию на уровне операторов. Уровень изоляции для оператора задается при помощи условия WITH.
Изоляцию на уровне операторов поддерживают следующие операторы SQL:
При использовании изоляции уровня операторов существуют некоторые ограничения:
В разделе "Настройка класса оптимизации" замените имеющуюся информацию для уровня 2 на следующую:
Класс оптимизации 2 во всем аналогичен классу 5, за исключением того, что использует "жадный" перебор методов объединения вместо динамического программирования. В этом классе достигается максимальная оптимизация среди всех классов оптимизации, использующих алгоритм "жадного" перебора методов объединения, при котором рассматривается меньше вариантов для сложных запросов и, следовательно, тратится меньше времени на компиляцию, чем в классе 3 и выше. Поэтому он рекомендуется для очень сложных запросов в среде поддержки решений или среде OLAP (online analytic processing - оперативный анализ данных). В этих случаях велика вероятность, что один и тот же запрос будет повторяться нечасто, и его план доступа вряд ли останется в кэше до очередного повторения запроса.
Этот новый раздел следует добавить после раздела "Составной оператор SQL":
Динамический составной оператор группирует другие операторы SQL в выполняемый блок. В динамическом составном операторе вы можете объявлять переменные SQL, объявлять условия, относящиеся к соответствующим SQLSTATE; он может содержать один или несколько процедурных операторов SQL. Если в динамическом составном операторе происходит ошибка, выполняется откат всех предшествующих операторов SQL, а оставшиеся операторы SQL в динамическом составном операторе не обрабатываются.
Динамический составной оператор можно встроить в триггер, функцию SQL или выполнить как динамический оператор SQL. Этот выполняемый оператор может быть подготовлен динамически. Для вызова этого оператора не требуется никаких привилегий, но относящийся к нему ID авторизации должен иметь необходимые привилегии для вызова встроенных в этот составной оператор операторов SQL.
Переменные вводятся в подоператорах в объявлении переменной. Условия вводятся в подоператорах на основе значений SQLSTATE объявления условия. Динамические составные операторы компилируются DB2 как простые операторы. Такой оператор может эффективно использоваться для коротких сценариев с простыми алгоритмами управления потоками, но значительным объемом потоков данных. Для более сложных конструкций со встроенным потоком управления лучше подходят процедуры SQL.
В динамическом составном операторе можно использовать некоторые операторы управления потоком. К ним относятся: оператор FOR, оператор IF, оператор ITERATE и оператор WHILE. Подробные сведения об этих операторах смотрите в справочнике SQL Reference.