Стратегії курсора

Ключовим моментом роботи з курсором є розуміння того, коли використовувати їх, а коли шукати рішення за допомогою пакетів Якщо виконати пошук ради на порталі Google, він відповість приблизно наступне: Не використовуйте курсор, якщо хоча б два тижні безуспішно пошукаю пакетне рішення у знаючих друзів і в групах новин Якщо принаймні три опонента кинули від відчаю пошук рішення за допомогою запитів, то можете приступати до написання курсора .

У загальному випадку існує всього пять специфічних ситуацій, які вирішуються за допомогою курсору Нижче запропоновані стратегії, рекомендовані в цих випадках

■ Складна логіка, що використовує різні формули і має свої винятки, досить рідко знаходить пакетні реалізації У цьому випадку, як правило, використовують одне з двох наступних рішень Найчастіше цю логіку вкладають в циклічну роботу з курсором Ще одне рішення полягає у створенні збереженої процедури, яка приймає ідентифікатор рядка, обробляє її, а потім повертає обчислене рішення або сама оновлює значення

У даній ситуації рекомендується вкласти логіку в керований даними запит, що використовує вираз CASE У наступному розділі буде продемонстрована ця методика роботи

■ Динамічні програмні ітерації, такі як генератор інструкцій DDL Для даного випадку я не бачу кращого рішення, ніж курсор

■ Денормализация списку, яка передбачає перетворення вертикального списку значень у розділену запитом горизонтальну рядок Часто дані більш зрозумілі у вигляді рядка, ніж підзвіту або підлеглого списку в кілька дюймів завдовжки До того ж такий підхід економить простір у звіті Незважаючи на те що найчастіше для вирішення такого завдання використовують курсор, можна знайти і пакетне рішення (воно буде запропоновано далі в цьому розділі)

■ Створення перехресного запиту Це одне із завдань, які традиційно в SQL Server відносили до розряду особливо складних Створення такого запиту вимагає використання цілого набору виразів CASE Для створення динамічного перехресного запиту рекомендується використовувати курсор

Додаткова У главі 15 продемонстрований ряд методів створення перехресних запитів, інформація Серед цих методів використання традиційних виражень case, метод курей-.. . – ■ сора і використання нового в SQL Server 2005 ключового слова pivot

■ Навігація за ієрархічним дереву Це завдання може бути вирішена за допомогою ряду пакетних методів, хоча програмісти з процедурних підходом зазвичай рекурсивно перевіряють кожен вузол

Додаткова Про запити сте та інших високопродуктивних рішеннях завдання обходу інформація ієрархічного дерева см в главі 12

Джерело: Нільсен, Пол Microsoft SQL Server 2005 Біблія користувача : Пер з англ – М: ООО ІД Вільямс , 2008 – 1232 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*