Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИПК_Занятия_ОПБД / Lectures_16-17.pptx
Скачиваний:
14
Добавлен:
15.04.2015
Размер:
2.98 Mб
Скачать

Кафедра «Информационные технологии»

Базы данных

Курс лекций по дисциплине «Базы данных»

для специальности направления 1-40 01 02 01 «Информационные системы и

технологии (в проектировании и производстве)»

автор-составитель

Е.Г. Стародубцев, доцент, канд. физ.-мат. наук

Основы языка Transact-SQL

Лекция 4

11.Курсоры

12.Управляющие конструкции Transact-SQL

2

11. Курсоры

SQL Server способен возвращать после выполнения запросов результаты, содержащие сотни тысяч строк. Клиентские приложения не всегда «справляются» с таким объемом данных (для их хранения нужно много памяти).

Решением этой проблемы является использование курсоров. Курсоры представляют собой механизм обмена

данными между сервером и клиентом3 .

Курсор позволяет клиентским

приложениям работать не с полным набором данных (всеми строками и столбцами источника данных), а лишь

с одной или несколькими строками

(и/или столбцами).

Курсор можно рассматривать как «окно», накладываемое на весь набор

данных. Пользователь одновременно

видит только часть данных, но, перемещая «окно», может получить доступ ко всем данным источника4 .

Набор всех данных, имеющихся в таблице, называется полным набором

строк.

Набор строк, возвращаемый

командой SELECT, называется

результирующим набором и является частью полного набора, отфильтрованного горизонтально (с помощью инструкции WHERE) или вертикально (не включая в запрос некоторые столбцы таблицы)5 .

Курсоры работают с

результирующим набором данных, расширяя возможности пользователей по их обработке.

(!) По возможности,

рекомендуется избегать использования курсоров и работать со стандартными командами обработки данных: SELECT, UPDATE, DELETE, INSERT6 .

«Недостатки» курсоров:

не позволяют проводить операции изменения над всем объемом данных,

скорость выполнения операций

обработки данных с помощью курсоров значительно ниже, чем у стандартных средств SQL Server.

Но в некоторых случаях необходимо

использование курсоров.

7

В SQL Server поддерживается несколько видов курсоров.

Курсоры Transact-SQL

применяются в основном внутри триггеров, хранимых процедур и сценариев Transact-SQL. Для создания

таких курсоров используется команда

DECLARE CURSOR. Управление

такими курсорами осуществляется средствами Transact-SQL.

8

Курсоры сервера (API Server Cursors) – действуют на сервере и

реализуют программный интерфейс

приложений для ODBC, OLE DB, DB- Library.

Клиент посылает с помощью API запрос на выполнение одной из доступных операций курсора.

Запрос обрабатывается соответствующим интерфейсом API сервера и затем выполняется9 .

Курсоры клиента (Client cursors)

– реализуются на клиентском приложении; выбирают весь результирующий набор строк и

сохраняют его локально.

Это позволяет ускорить операции обработки данных, так как снижаются потери времени на выполнение сетевых операций.

10

Соседние файлы в папке ИПК_Занятия_ОПБД