Відповідь Microsoft на цю статтю “Правда про MS SQL Server”, Інтеграція додатків і даних, Бази даних, статті

22 січня ми опублікували на нашому сайті статтю незалежного експерта А. Малініна “Правда про MS SQL Server”. Стаття відразу ж викликала бурхливий відгук у наших читачів. Пропонуємо Вашій увазі рецензію російського Представництва Microsoft, її автор – провідний спеціаліст компанії, системний інженер по SQL Server А. Шуленін.


Рецензія на статтю А. Малініна “Правда про MS SQL Server”

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

Тут хотілося б зазначити, що документація ніколи і не була націлена жодним чином на те, щоб підмінити собою MSDN, TechNet, Knowledge Base та інші технічні ресурси, зокрема, книги та статті незалежних авторів. Зокрема, і ту статтю, яку ми зараз розбираємо.

В даному випадку викликає певне здивування деякий приховане недоброзичливість і зловтіха, яким, за моїми суто суб’єктивними відчуттями, пронизана ця стаття. Складається враження, що автором рухало не тільки і не стільки благородне бажання допомогти новачкам благополучно минути потенційні “підводні камені”, як декларується в підзаголовку, скільки якісь інші незрозумілі мені емоції, які починаються безпосередньо з тенденційного назви статті “Правда про MS SQL Server”.

Які ж фокуси з викриттям підготував автор? Так, пропуск символу @ перед іменем локальної змінної викликає помилку. На жаль, це не сенсація, це правило. Його можна узагальнити: недотримання граматики мови ніколи нічого доброго за собою не тягне. З таким же успіхом можна написати “Правду про коней”, почавши її з того, що коні їдять овес. Якби метою статті було дійсно попередження найбільш часто здійснюються помилок, то ситуації треба було розбирати більш комплексно. Наприклад, попередити, що використання конструкції set при ініціалізації змінних константами гарантує від такої помилки, а коли, скажімо, в локальну змінну читається значення поля, треба бути уважнішими і не пропускати той самий горезвісний знак @. Псевдоніми полів краще використовувати як select … as …

Або наступний пункт про колізії типів. Говориться про те, що рядок обрізається праворуч, якщо довжина локальної змінної менше довжини поля, але опускається, що при зміні схеми таблиці, зокрема, якщо нова довжина строкового поля менше старої, це перевіряється автоматично з видачею відповідного попередження. Тобто виходить правда, але не вся і не зовсім, а так, напівправда. Коли правдоподібно здається тільки на перший погляд. Зокрема, невірно те, що SQL Server здійснює не компіляцію, а інтерпретацію збережених процедур. У цьому легко переконатися, якщо замінити таблицю UndefinedTable на існуючу. План буде побудований в момент першого виклику і не буде зазнавати змін залежно від значень параметрів процедури.

Взагалі, наведений у статті приклад вірна лише частково. У разі звернення до неіснуючої процедури ще на стадії створення зовнішньої процедури видається попередження типу “Cannot add rows to sysdepends for the current stored procedure because it depends on the missing object “UndefinedProc” “. Цілком очевидно, що будь-яка мова програмування має свої вбудовані обмеження, тим більше такий специфічний на відміну від програмних засобів загального призначення, як SQL, споконвічно орієнтований на теоретико-множинні операції. Можна забути поставити OUT перед виведеним параметром і отримати ту саму “труднообнаружімую помилку “, але хіба де-небудь передача параметра за значенням, якщо він був оголошений за посиланням, приводила до чогось іншого?

У загальному і цілому, на мою думку, автора слід привітати з безсумнівним творчим успіхом, номінувати на вручення премії ім. С. Доренко і побажати якнайшвидшого виходу “Правди-2”, де T-SQL буде підданий справедливої ​​і неприємної критиці за виникнення ситуації переповнення у разі поділу на 0, генерації синтаксичної помилки при використанні твердого знака в кінці оператора select і т.д.


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


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

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

Ваш отзыв

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

*

*