Що використовувати: CLR або T-SQL

Безсумнівно, рідко можна зустріти реалізацію, яка абсолютно не використовує CLR Однак деякі реалізації використовують в базі даних виключно компоненти CLR Жоден з цих підходів не можна назвати прийнятним, якщо на перше місце виходять такі фундаментальні поняття, як масштабованість і продуктивність

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

■ Існуючі розширені процедури СОМ піддають ризику стійкість всього сервера бази даних Користувальницькі розширені процедури слід розглядати як перших кандидатів на перетворення в компоненти інтеграції CLR

Збережені процедури автоматизації OLE також завоювали і постійно підтверджують погану репутацію розширених збережених процедур за погану обробку помилок, низьку продуктивність, витоку памяті і нечіткість відносин між рівнем Т-SQL і середовищем СОМ Безпека керованого програмного коду безперечно є привабливою альтернативою збереженим процедурам sp_OA

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

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

■ Існуючі програми, які програють від застосування навіть відносно простих користувача функцій при їх використанні в реченні WHERE запитів, обробних великі масиви рядків, можуть задіяти ці функції на основі CLR, що забезпечить їх продуктивність на рівні системних функцій

■ Параметрезованих обробка списків та інші операції маніпулювання рядками і їх перевірки, які в даний час вимагають ітерацій і великого обсягу програмного коду, можуть бути просто і ефективно реалізовані в типах CLR бази даних з використанням членів типу даних string середовища NET і потужного класу REGEX

■ Безпека і стійкість сервера піддаються ризику, коли для доступу до файлової системи, мережевих ресурсів або іншим зовнішніми даними за допомогою інтерфейсу OLEDB або служб командного рядка використовується Т-SQL Модель безпеки CAS середовища виконання CLR надає собою цінний рівень абстракції системи безпеки між SQL Server і зовнішнім світом, оскільки розглядає програмний код, а не окремих користувачів Ще одним доказом переваг використання компонентів CLR в якості інтерфейсу між SQL Server і зовнішніми ресурсами є те, що CLR реалізує елегантні методи створення табличного виведення в ядрі бази даних з нетаблічних даних

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

Джерело: Нільсен, Пол 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>

*

*