Поиск

L2AVADON

СТАТЬИ

Использование курсоров не только для запросов
ГлавнаяЯзык PL/SQLКурсоры → Использование курсоров не только для запросов

Вместе с развитием СУБД Oracle развиваются и курсоры. Наряду с дос­тижениями в повышении производительности, описанными в преды­дущих разделах, расширилась и функциональность курсоров, которая больше не ограничивается выполнением запросов, - курсоры теперь интегрируются в приложения на уровне проектирования и компонов­ки. В этом разделе описаны не упоминавшиеся ранее дополнительные возможности работы с курсорами.

Массовая выборка, тип данных REF CURSOR, параметры курсора и кур­сорные выражения - все эти инструменты весьма полезны админист­ратору базы данных, занимающемуся исследованием и улучшением производительности приложений. Особенно полезны рассматривае­мые здесь средства в тех случаях, когда вы работаете с тяжело нагру­женной базой данных и для вас очень важно свести к абсолютному ми­нимуму количество затрагиваемых вами записей. Например, ссылоч­ный тип REF CURSOR можно использовать для контроля доступа к дан­ным из клиентского приложения, которое может даже не подозревать о способе структурирования таблиц. Параметры курсора позволяют расширить доступ к данным. (В главе 3 обсуждаются и другие способы достижения этой цели.) А курсорные выражения (вложенные курсо­ры) активно способствуют тому, чтобы выполнялись только те опера­ции, которые действительно должны выполняться.

Массовая выборка

Если вы будете выбирать записи по одной в цикле PL/SQL, вы столк­нетесь с повышенными накладными расходами на переключение кон­текста между SQL и PL/SQL для каждой записи. Это существенно уве­личит общее время выполнения, особенно при большом числе записей. Уменьшить количество переключений контекста можно с помощью массовой выборки (BULK COLLECT INTO), запрашивающей записи порция­ми или все сразу.

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29