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

Страницы работы

Фрагмент текста работы

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

Базы данных

Курс лекций по дисциплине «Базы данных» для специальности направления 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

  • «Недостатки» курсоров:
  • не позволяют проводить операции изменения над всем объемом данных,
  • скорость выполнения операций обработки данных с помощью курсоров значительно ниже, чем у стандартных средств 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

Один курсор может основываться на нескольких таблицах, расположенных как в одной, так и в разных БД. Операция считывания данных, определенных в курсоре, называется выборкой (fetch).

11

Если за одну операцию курсор позволяет выбрать несколько строк данных, то такой курсор называется блочным. Курсоры могут быть разделены на две категории: последовательные (forward-only) и прокручиваемые (scrollable).

12

Последовательные курсоры - позволяют последовательно выбирать данные только в одном направлении – от начала к концу набора строк. Прокручиваемые курсоры - допускают перемещение по строкам в обоих направлениях и переход к произвольной строке результирующего набора курсора.

13

Серия последовательных выборок из курсора называется прокруткой курсора (или скроллингом курсора).

14

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

Похожие материалы

Информация о работе