sqlCmd Blog

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


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

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

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



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

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

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



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

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

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



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

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

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



К вопросу уникальности индексов.

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

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



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

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

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



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

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

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



Бэкапы бывают разными: «поздними», «ранними», «точными».

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

Часть 1/2.
Часть 2/2.
добавлено: 18 апр 12 просмотры: 2270, комментарии: 2



Настройка безопасности для связанных серверов.

В статье подробно обсуждается настройки безопасности при работе со связанными серверами (linked servers). Рассматриваются все возможные варианты такой настройки, приводятся примеры их практической реализации, а так же детально разбираются отличия каждого варианта и причины почему мы можем в данной ситуации предпочесть тот или иной вариант.
Часть 1/4.
Часть 2/4.
Часть 3/4.
Часть 4/4.
добавлено: 04 апр 12 просмотры: 2250, комментарии: 0



SQL кластер на VMware Workstation.

Статья-руководство описывающая как используя платформу виртуализации VMware Workstation на единственном физическом компьютере создать "испытательный полигон" следующего состава:
  • контроллер домена
  • двухнодовый кластер SQL Server
  • дисковый массив (shared disk) кластера
  • клиент (потребитель) кластера

    Полученный стенд может быть использован с целью апробирования новых идей, концепций, образования, тестов и других замыслов связанных с работой в кластерном окружении. Однако руководство составлено достаточно гибко, что бы с минимальными усилиями быть адаптированным под создание практически любого тест-стенда для изучения Microsoft-технологий. Выполняя одни пункты руководства и пропуская другие вы можете, к примеру, создать:

  • рабочую Windows-группу в составе 3-4-5 компьютеров
  • домен с контроллером и 3-4-я компьютерами в его составе
  • кластер на уровне OS Windows без установки на последний SQL Server
  • и т.д.

    Руководство ориентировано на профессионалов и энтузиастов работающих с Microsoft-технологиями и нуждающихся в надежном "полигоне" для проверки своих идей и знаний.

    Часть 1/11.
    Часть 2/11.
    Часть 3/11.
    Часть 4/11.
    Часть 5/11.
    Часть 6/11.
    Часть 7/11.
    Часть 8/11.
    Часть 9/11.
    Часть 10/11.
    Часть 11/11.
  • добавлено: 27 мар 12 просмотры: 2471, комментарии: 3