Кафедра «Информационные технологии»
Базы данных
Курс лекций по дисциплине «Базы данных» для специальности направления 1-40 01 02‑01 «Информационные системы и технологии (в проектировании и производстве)»
автор-составитель , доцент, канд. физ.-мат. наук
Основы языка Transact-SQL Лекция 4
11. Курсоры
12. Управляющие конструкции Transact-SQL
2
11. Курсоры
SQL Server способен возвращать после выполнения запросов результаты, содержащие сотни тысяч строк. Клиентские приложения не всегда «справляются» с таким объемом данных (для их хранения нужно много памяти). Решением этой проблемы является использование курсоров. Курсоры представляют собой механизм обмена данными между сервером и клиентом.
3
Курсор позволяет клиентским приложениям работать не с полным набором данных (всеми строками и столбцами источника данных), а лишь с одной или несколькими строками (и/или столбцами). Курсор можно рассматривать как «окно», накладываемое на весь набор данных. Пользователь одновременно видит только часть данных, но, перемещая «окно», может получить доступ ко всем данным источника.
4
Набор всех данных, имеющихся в таблице, называется полным набором строк. Набор строк, возвращаемый командой SELECT, называется результирующим набором и является частью полного набора, отфильтрованного горизонтально (с помощью инструкции WHERE) или вертикально (не включая в запрос некоторые столбцы таблицы).
5
Курсоры работают с результирующим набором данных, расширяя возможности пользователей по их обработке. (!) По возможности, рекомендуется избегать использования курсоров и работать со стандартными командами обработки данных: SELECT, UPDATE, DELETE, INSERT.
6
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
Один курсор может основываться на нескольких таблицах, расположенных как в одной, так и в разных БД. Операция считывания данных, определенных в курсоре, называется выборкой (fetch).
11
Если за одну операцию курсор позволяет выбрать несколько строк данных, то такой курсор называется блочным. Курсоры могут быть разделены на две категории: последовательные (forward-only) и прокручиваемые (scrollable).
12
Последовательные курсоры - позволяют последовательно выбирать данные только в одном направлении – от начала к концу набора строк. Прокручиваемые курсоры - допускают перемещение по строкам в обоих направлениях и переход к произвольной строке результирующего набора курсора.
13
Серия последовательных выборок из курсора называется прокруткой курсора (или скроллингом курсора).
14
Типы и поведение курсоров Существует несколько типов курсоров, разных по возможностям обработки
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.