Организация бизнес-логики ИС на стороне сервера

Курсор представляет собой результирующий набор данных, сформированный SQL Server, в котором можно выполнять операции над отдельными строками. Этим он отличается от стандартных результирующих наборов, в которых операции выполняются сразу над всеми строками. Это значит, что благодаря курсорам можно построчно обрабатывать данные, содержащиеся в некоторой таблице. С помощью курсоров SQL Server можно перемещаться по результирующему набору в обоих направлениях. Настоящую силу курсоров можно ощутить при их использовании вместе с командой EXEC и подстановке строковых переменных.

Курсоры можно использовать:

  • в блоке операторов управления выполнением программы;
  • внутри хранимой процедуры;
  • внутри триггера.

Наибольшее преимущество обработки с помощью курсора состоит в возможности выполнить условные операции на определенной строке данных в наборе независимо от других строк этого набора. Команды SQL выполняются на наборе данных, состоящем из одной строки. Сложные приложения часто требуют подобной детализации при обработке. К тому же у этой детализации есть преимущества:

ü  Производительность. Операции, основанные на наборах данных, тяготеют к применению больших серверных ресурсов, чем операции курсора

ü  Лучший контроль транзакций. При обработке набора данных можно контролировать, что происходит с любой данной строкой, независимо от других

ü  Специальный синтаксис. Курсоры обеспечивают позиционированное обновление и удаление, которые применяются к строкам, выбранным в данный момент. Такие курсоры напрямую находят строки таблицы, поэтому исчезает необходимость индексирования

Эффективность. При выполнении нескольких операций на большом наборе данных, таком как вызов множества хранимых процедур, лучше, когда база данных обрабатывает данные и выполняет все действия с каж­дой строкой. Это более эффективно, чем выполнение каждой из задач последовательно по всему набору данных; причина эффективности заключается в кэшировании данных

Ссылка на основную публикацию
Adblock
detector