sqlCmd Blog

Фильтр по тегу: t-sql


To NULL or NOT to NULL? К вопросу о троичной логике.

Статья фактически является кратким справочником по вопросам поведения и интерпретации NULL-значений различными конструкциями языка T-SQL. Разбираются причины непоследовательности в такой интерпретации, даются максимально короткие примеры кода для самостоятельных тестов/проверок. Так же подробно рассматриваются сами NULL-значения, те проблемы которые вызывает их наличие (или, как минимум, факт допустимости таких значений), а так же приводится теоретическая база, описывающая "идеальное" поведение таких значений в составе логических выражений. Освещаются многочисленные заблуждения и причины недостаточного понимания работы T-SQL кода, связанные с троичной (а не двоичной) логикой этого языка программирования. Уровень материала - 200.

Перейти к статье.
добавлено: 30 сен 12 просмотры: 2162, комментарии: 0



Механика индексных представлений.

Предлагаемый материал подробно разбирает структуру, внутреннее устройство и ручное/автоматическое применение индексов созданных на представлениях. Освещаются распространенные "мифы" и заблуждения, связанные с созданием и, особенно, применением индексов указанного типа. Рассматриваются хинты таблиц и запросов влияющие на их работу, и отдельно разбираются "подводные камни" ожидающие нас в случае применения таких хинтов. Объясняется причины, по которым индекс на представлении зачастую игнорируется оптимизатором запросов при построении плана исполнения. Особый упор статья делает на сходстве и различии в работе индексов на представлении в редакциях Enterprise и не-Enterprise SQL Server одной и той же версии. Уровень материала - 200.

Перейти к статье.
добавлено: 09 июл 12 просмотры: 2165, комментарии: 0



Версия сервера, версия базы данных и уровни совместимости.

Статья рассматривает три сущности с которыми приходится весьма плотно иметь дело любому разработчику/администратору на платформе SQL Server: версию самого сервера, версию баз данных этого сервера и уровень совместимости (compatibility level) баз данных. Подробно описывается влияние каждой из сущностей на сервер/базу данных, исследуются методики извлечения текущих значений указанных сущностей, и выделяются моменты когда эти значения изменяются, описываются числовая структура каждой из сущностей. Центральным вопросом статьи является момент взаимосвязей (подчас - далеко не однозначных) двух указанных версий и уровня совместимости между собой. Исследуются причины по которым базы с младших серверов можно (с ограничениями) переносить на сервера старшие (и какие необратимые для базы данных последствия такой перенос вызывает), а перенос в обратном направлении исключен в принципе. Уровень материала - 200.

Перейти к статье.
добавлено: 26 июн 12 просмотры: 3499, комментарии: 0



Настройка диалога открытия/сохранения файлов Management Studio «под себя».

Очень короткая заметка поясняет как добавить на панель Places Bar диалогов открытия/сохранения файлов студии ваши собственные избранные папки. Такая настройка предоставит вам возможность перемещаться между указанными папками буквально одним щелчком. Это удобно, повышает эффективность труда администратора/разработчика и, отчасти, ведет к упорядочиванию файлов по проектам (папкам) к которым они относятся, вместо складирования их в одну папку «по умолчанию». Уровень материала - 100.

Перейти к статье.
добавлено: 07 июн 12 просмотры: 2361, комментарии: 0



Блоки try-catch для программистов на T-SQL.

В статье обсуждается система перехвата ошибок, а именно ее конкретная реализация в языке T-SQL. Изложение ведется для "чистых" T-SQL программистов, не имеющих опыта работы с тем же механизмом в каких-либо высокоуровневых языках. Тщательно обсуждаются концепции обработанной ошибки и ее повторной генерации, а так же обсуждаются технические нюансы такой генерации. Рассматриваются уровни серьезности ошибок и возможности по перехвату ошибок периода компиляции, а не только периода исполнения. Оцениваются варианты работы того же механизма с транзакциями, обсуждается важность и необходимость функции XACT_STATE и опции XACT_ABORT при такой работе. Обсуждаются общие вопросы дизайна T-SQL кода: при каких обстоятельствах применение перехвата ошибок уместно, и когда оно избыточно, нужно ли перехваченное исключение "глотать" или же "проталкивать наверх" и т.д. Приводится готовый шаблон хранимой процедуры составленный с учетом всех таких обсуждений. Уровень материала - 200.

Перейти к статье.
добавлено: 10 май 12 просмотры: 3425, комментарии: 0



Как SQL Server находит оборванные страницы и зачем он этим занимается.

Статья рассматривает систему контроля физической целостности данных реализованной в SQL Server. Исследуется проблематика вопроса и причины приведшие, в свое время, к появлению такой системы. Анализируются возможные режимы указанной системы и проводятся тесты на их "стрессоустойчивость". Выбирается лучший режим и дается обоснование такому выбору. Обсуждается взаимовлияние той же системы и резервных копий данных, как реальное, так и мнимое. Хотя статья и не фокусируется на вопросах ввода-вывода SQL Server как таковых, часть материала можно отнести и к этой теме. Уровень материала - 200.

Перейти к статье.
добавлено: 23 апр 12 просмотры: 2092, комментарии: 1



Регистрозависим ли язык T-SQL?

Окончательно решаем вопрос о важности/неважности РеГиСтРа символов при написании программ на языке T-SQL. Вопрос, на самом деле, далеко не столь однозначен как это кажется начинающему SQL-программисту...
Часть 1/2.
Часть 2/2.
добавлено: 20 мар 12 просмотры: 2267, комментарии: 2



Понимаете ли вы коллейшены?

Цикл статей который поможет вам разобраться во внутренних механизмах наборов правил сопоставления двух строковых значений в SQL Server, лучше известных как collations. Разбираются вопросы назначения и изменения значений collations на разных уровнях - от сервера до колонки и даже отдельного выражения. Рассматривается вопрос разрешения конфликтов двух и более collations, а так же разбираются принципы формирования имен collations как группы Windows, так и группы SQL Server. Весьма детально освещаются сходство и различия collations работающих с юникодными и простыми ASCII наборами символов. Всесторонне исследуется вопрос "нечитаемых символов" в резалт-сетах.
Часть 1/8.
Часть 2/8.
Часть 3/8.
Часть 4/8.
Часть 5/8.
Часть 6/8.
Часть 7/8.
Часть 8/8.
добавлено: 19 мар 12 просмотры: 1749, комментарии: 0



Теоретические основы фильтрованных индексов в SQL Server 2008. Достоинства и недостатки.

Статья из трех частей рассматривает вопросы применения относительно новой особенности SQL Server - filtered index (существуют начиная с версии 2008-й). Обсуждаются идеи лежащие в основе данной концепции, конкретная реализация этих идей, а так же преимущества и недостатки по сравнению с конкурирующими технологиями (прежде всего с индексированными представлениями). Особенное внимание уделяется ограничениям новой технологии и возможностям по их обходу.
Часть 1/3.
Часть 2/3.
Часть 3/3.
добавлено: 05 мар 12 просмотры: 2495, комментарии: 0



Density, Selectivity, Cardinality или о чем «думает» оптимизатор.

Цикл статей рассматривает основополагающие концепции - плотность, селективность и кардинальность, использующиеся при построении статистики в современных СУБД. Поясняются методики их расчета, связь с построением гистограммы данных, и их влияние на качество планов исполнения выбранных оптимизатором запросов. Конкретная реализация указанных концепций и связанных с ними технологий излагается для SQL Server 2008/2008R2, но самые базовые идеи и формулы расчетов применимы к любой версии SQL Server и даже к любой СУБД. Цикл рассчитан на начинающих SQL [Server] администраторов/разработчиков.
Часть 1/6.
Часть 2/6.
Часть 3/6.
Часть 4/6.
Часть 5/6.
Часть 6/6.
добавлено: 02 мар 12 просмотры: 2462, комментарии: 7