Сім рекомендацій з використання CLR, Інші СУБД, Бази даних, статті

Мова CLR в складі SQL Server 2005 – основна зміна движка SQL Server в частині моделі програмування. Мова CLR дозволяє доповнювати функціональність движка бази даних SQL Server скалярними функціями, табличними функціями (TVF), процедурами, тригерами, агрегації і користувацькими типами даних (UDT). Перш ніж починати використовувати мову CLR, необхідно оцінити, як і навіщо використовувати засновані на CLR розширення в SQL Server. Для цього пройдемося по наступному списку.


N-рівневі програми продовжують жити. Наявність в CLR можливості перемістити обробку даних на сервер бази даних, не означає, що це треба робити. Пам’ятаєте, як дорого може обійтися перенесення виконання коду на сервер бази даних. Доведеться заплатити процесорним часом, пам’яттю для мережевого обміну туди і назад і часом очікування мережі додатком (сервером). Це може бути вигідно, але майте на увазі, що жоден сервер не може мати нескінченної кількості ресурсів на обробку. Ось ключові критерії перекладу обробки даних на сервер бази даних: перший – при великій кількості обчислень і інтенсивних логічних операцій, в порівнянні з обробкою даних, другий – при зниженні витрат на пересилку туди і назад великого обсягу даних.


Додайте тільки прості типи даних. При розробці користувацьких типів даних ви обмежуєте себе примітивними типами даних на зразок поштового індексу, коду соціального забезпечення, точки, цілого числа зі знаком і так далі. Подумайте про те, як можна вибирати рядок, що містить користувальницький тип. Як працюватиме план запиту при використанні цього типу? Чи можна будувати індекс по полях з призначеним для користувача типом? І як?


Розгляньте заміну розширених збережених процедур. Якщо ви розробили розширені збережені процедури в SQL Server 2000 і в більш ранніх версіях, слід подумати про заміну таких процедур процедурами CLR або функціями. CLR забезпечує більш безпечну і більше масштабовану середовище для виконання.


Відмовтеся від процедури sp_OA. Процедури sp_OA – це розширені збережені процедури, які виконують запити до COM-об’єктів через відкладений-пов’язану (на базі IDispatch) модель. Більш детальну інформацію про це можна знайти за адресою msdn.microsoft.com/library/en-us/acdata/ac_8_qd_14_7bcc.asp . Процедури SQL CLR або функції – краща альтернатива, тому що в більшості випадків можна видалити залежність від COM-об’єктів, використовуючи вбудовані класи CLR. Коли процедурам CLR потрібні взаємодія з COM, перемикайтеся на ранньо-пов’язану модель, яка підвищує продуктивність і зменшує ризик помилок при програмуванні та виконанні. Також CLR забезпечує кращу середу програмування для реалізації логічних потоків, циклів і так далі.


Не забудьте своїх клієнтів. Ви можете розширювати SQL Server, але завжди пам’ятайте, що на іншому кінці дроту – програма, яка повинна використовувати ці розширення. Більшість розширень CLR SQL (за винятком призначених для користувача типів) непрозоро для застосування. Доступність для користувача типів даних пов’язана з API доступу до даних, яке ви використовуєте. Тільки нова бібліотека CLR System.Data.SqlClient і певною мірою OLE DB може мати доступ до призначених для користувача типів даних.


Думайте про управління версіями та підтримки


Visual Studio 2005 спрощує розвиток і впровадження розширень SQL CLR. Однак потрібно планування розробки, впровадження та управління версіями. Які об’єкти ви розгорнете в збірці? Складання реєструються в одному з трьох сегментів захисту: SAFE, EXTERNAL_ACCESS і UNSAFE. Правила безпеки визначають спосіб розробки збірки. Посилання та залежності між збірками ускладнюють управління версіями і наступні обслуговування, так що краще спростити їх.


Зміна додатків тільки заради використання процедур CLR, виконуючих основні операції T-SQL DML (INSERT, UPDATE, DELETE), не дає базі даних або додатків ніяких переваг. В даному випадку воно привносить лише непотрібні витрати і додаткові рівні складності. Використання мови T-SQL з рівня прикладного програми – як і раніше основний спосіб управління даними SQL Server.


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


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

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

Ваш отзыв

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

*

*