Jay-Jay Coder


Как проверить в SQL Server, что некая временная таблица была создана

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

Читать далее...
добавлено: 28 дек 11 просмотры: 1614, комментарии: 0



Как получить в SQL Server список индексов всех таблиц со списком всех входящих колонок

Сегодня на работе я столкнулась с довольно интересным заданием, которое правда удалось решить только со второй попытке. Нужно было написать скрипт, который возвращает список всех существующих индексов с привязкой к таблицам выбранной базы данных в SQL Server, включая информацию о колонках, входящих в тот или иной индекс, не забывая про included колонки тоже. Как мне кажется, такая задача довольно часто встречается в буднях как рядовых программистов, так и DB администраторов. Посему я решила не жадничать и поделиться своими трудами. За одно и узнать, может кто находил более простое решение, требующее меньшее количество строчек кода.

Читать далее...
добавлено: 22 дек 11 просмотры: 4228, комментарии: 4



Трассировка данных в SQL Server
Часть 3: Основы трассировки на стороне сервера

Итак, мы обсудили архитектуру SQL Trace и иерархию событий. Настало время перейти непосредственно к созданию трейса. Как вы теперь знаете, есть два типа трассировки - на стороне сервера и на стороне клиента. Каждый из этих типов имеет свои преимущества и недостатки и применяется в решении разных задач. Сегодня мы поговорим только об одном из них - о трассировке на стороне сервера, как её создать, запустить и прочитать собранные данные. Как покажут последующие примеры, дело это не очень простое, местами даже хлопотное, но как показывает практика, весьма полезное. Так как после создания трейса руками и знакомства с некоторым множеством хранимых процедур, приходит огромное понимание работы SQL Trace.

Читать далее...
добавлено: 18 дек 11 просмотры: 1325, комментарии: 0



Открыта регистрация на DevCon'12

Ну что же, не успели мы отойти он TechEd Russia 2011, войти в рабочий ритм, даже немного взгрустнуть, что все прошло, как случилось чудо. Я бы даже сказала, предновогодний подарок. Итак, спешу всем сообщить, что регистрация на столь обсуждаемую и рекламируемую конференцию DevCon'12 наконец открыта. Если даже вы не собирались на нее ехать, даже не задумывались об этом, то настало время пересмотреть свою точку зрения и срочно зарегистрироваться!

Читать далее...
добавлено: 16 дек 11 просмотры: 2571, комментарии: 0



Функция DATALENGTH в действии

Всем привет! Не успела вчера опубликовать статью про размер строки в SQL Server, как получила сразу отличный комментарий с подсказкой на замечательную функцию, которая позволяет обойти ограничения LEN. Ну что же, встречайте - DATALENGTH. И как говорится, я сразу же бросилась в бой - нашла ее описание в MSDN, запустила Management Studio и понеслась.

Читать далее...
добавлено: 09 дек 11 просмотры: 1160, комментарии: 0



Размер строки в SQL Server

Задумалась я тут, как измерить размер строки с помощью SQL Server. В любом языке программирования такая задача решается за секунду, а как обстоит дело в t-sql? И оказалось, что с одной стороны все довольно просто - есть замечательная функция LEN, а с другой стороны - в этой простоте скрывается несколько подводных камней и тонкостей. Вот сегодня об этих тонкостях и подводных камнях мне и хотелось бы рассказать.

Читать далее...
добавлено: 08 дек 11 просмотры: 1353, комментарии: 5



TechEd Russia 2011: Как это было

Всем привет! За прошедший месяц произошло очень много интересных событий и мероприятий, на которых мне удалось побывать. Как следствие из этого, совершенно не оставалось времени на написание статей в блог, но я надеюсь исправится в самое ближайшее время, тем более новогодние праздники уже совсем скоро.. Ну, а сегодняшняя статья посвящается самому ожидаемому, самому радостному и волшебному мероприятию ноября. Если кто не догадался еще, то этот герой именуется TechEd Russia 2011.

Читать далее...
добавлено: 06 дек 11 просмотры: 974, комментарии: 0



Трассировка данных в SQL Server
Часть 2: Архитектура SQL Trace

В прошлый раз мы рассмотрели основные понятия и иерархию событий. Теперь самое время взглянуть на SQL Trace, а именно на его архитектуру, как он взаимодействует с остальными компонентами SQL Server и работает с трейсами. Хотя SQL Trace - это мощной инструмент в арсенале разработчиков, позволяющий решать огромный спектр задач - от проверки отправки запроса на сервера до решения проблем производительности с тем или иным запросом или группой запросов, архитектура же его и принципы работы довольно просты. Сейчас вы сами в этом убедитесь.

Но для начала давайте познакомимся с еще одним новым понятием - трейс, которое будет довольно часто использоваться в этой статье.

Читать далее...
добавлено: 11 сен 11 просмотры: 4357, комментарии: 0



Трассировка данных в SQL Server
Часть 1: Иерархия событий

Сегодня мне бы хотелось рассказать об одной из самых важных на мой взгляд и в тоже время моих самых любимых возможностей SQL Server - трассировке данных. Что же такое трассировка? Это сбор компонентом SQL Trace самых различных данных внутри процессора SQL Server - от логина пользователя и создания нового объекта до возникновения блокировок внутри системы и мониторинга различных ошибок. Это уникальная возможность заглянуть внутрь SQL Server, которая позволяет хоть чуть-чуть раскрыть тонкости его работы. В данном блоке статей я постараюсь рассмотреть все возможные аспекты работы с трейсами, мы поговорим об иерархии событий, архитектуре SQL Trace, типах трассировок, использовании SQL Profiler, о выдаче прав на сбор данных и возможных последствиях, а также обсудим некоторый набор часто встречающихся задач и возможность их диагностики и решения с помощью трассировки. Итак, приступим.

Так как любую новую тему принято начинать с обзора и терминологии, то и эта статья не станет исключением. Давайте рассмотрим основные понятия, познакомимся с событиями и их свойствами, а также изучим иерархию, которую они образуют.

Читать далее...
добавлено: 06 сен 11 просмотры: 3202, комментарии: 0



Тонкости при работе с table value constructor

В одной из предыдущих статей мы познакомились с примером создания производной таблицы с помощью table value constructor (конструктор табличных значений). Сегодня мне бы хотелось продолжить эту тему и рассказать о нескольких тонкостях, которые нужно знать при работе с этой конструкцией.

Читать далее...
добавлено: 05 сен 11 просмотры: 1234, комментарии: 0