MS SQL Server

  Все выпуски  

MS SQL Server - дело тонкое...


Информационный Канал Subscribe.Ru

#264<<  #265

СОДЕРЖАНИЕ

1.СТАТЬИ
1.1.Секционированные таблицы и индексы SQL Server 2005
1.2.Руководство по работе с Microsoft SQL Server 2000 Analysis Services (продолжение)
2.ССЫЛКИ НА СТАТЬИ
2.1.Статьи на русском языке
2.2.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа

СТАТЬИ

Секционированные таблицы и индексы SQL Server 2005

По материалам статьи Kimberly L. Tripp: SQL Server 2005. Partitioned Tables and Indexes
Перевод Алексея Сафонова

Не смотря на то, что секционированные таблицы и индексы всегда были неотъемлемой частью больших баз данных, призванной улучшать их производительность и управляемость, в Microsoft SQL Server 2005 появились новые возможности, упрощающие процесс разработки таких решений. Данный доклад посвящен эволюции секционирования таблиц в SQL Server: от ручного секционирования данных путем предварительного создания таблиц в качестве подготовительного шага (в SQL Server 7.0 и SQL Server 2000) до процедур реального секционирования таблиц. В SQL Server 2005 новые табличные функции секционирования значительно упрощают разработку и администрирование секционированных таблиц, в месте с тем еще более увеличивая их производительность. Основная задача статьи - составить для Вас представление о секционировании в SQL Server 2005, о том зачем, где и как применять его с большей пользой для Ваших сверхбольших баз данных (VLDB - Very Large Database). Но несмотря на то, что секционирование в SQL Server 2005 нацелено прежде всего на работу с VLDB, следует помнить, что не все базы данных большие с самого начала. SQL Server 2005 обеспечивает гибкость и производительность, значительно упрощая создание и обслуживание секционированных таблиц. Прочтите эту статью, чтобы получить подробную информацию о том, почему Вам стоит знать о секционированных таблицах, что они могут Вам предложить, и, наконец, как разрабатывать, реализовывать и обслуживать секционированные таблицы.

Материалы к статье:

Все примеры, демонстрируемые в данной статье, Вы сможете скачать здесь: SQLServer2005PartitionedTables.zip

[В начало]

Для чего нужно секционирование?

Прежде, чем говорить о том, как осуществлять секционирование и использовать его возможности, сначала нужно понять, насколько оно необходимо, что такое секционирование и кому стоит его использовать? Когда Вы создаете таблицы, Вы проектируете их таким образом, чтобы хранить информацию о сущностях, например, о покупателях или продажах. Каждая таблица должна иметь атрибуты, которые описывают только эту сущность, и, например, для всех покупателей и продаж исторически сложилось так, что все Ваши покупатели и все Ваши продажи создаются в соответствующих таблицах.
В то время как наличие одной единственной таблицы для каждой сущности является наиболее простым подходом для проектирования и понимания, это может быть не лучшим решением с точки зрения производительности, масштабируемости и управляемости, особенно в тех случаях, когда таблицы становятся достаточно большими. Секционирование может обеспечить преимущества как для больших таблиц (и/или их индексов), так и для таблиц, которые имеют изменяющиеся модели доступа. Более того, секционирование больших таблиц повышает их масштабируемость и управляемость, а также упрощает использование таблиц при добавлении или удалении значительных фрагментов (или диапазонов) данных.
Так что же представляет собой большая таблица? VLDB (Very Large Database) принято называть базы данных, совокупный размер которых измеряется сотнями гигабайт, или даже терабайтами; однако данный термин никак не определяет индивидуальные размеры таблиц. Большая таблица - это такая таблица, показатели производительности или временные затраты на обслуживание которой выходят за допустимые рамки. Кроме того, таблицу можно считать большой, если действия, производимые одним пользователем, оказывают значительное влияние на другого пользователя, или если операции обслуживания базы данных влияют на возможности остальных пользователей. Это приводит к ограничению доступности базы данных. Ведь даже притом, что сервер продолжает оставаться доступным, как можно считать Вашу базу данных доступной, когда рабочие характеристики таблицы продаж значительно ухудшились, либо таблица вовсе недоступна в течение всего периода текущего обслуживания базы данных по 2 часа в день, в неделю, или пусть даже в месяц? В некоторых случаях регулярный простой все же допустим, но чаще всего простоя можно избежать или минимизировать за счет улучшения проектирования.
Таблицу, модель доступа к которой изменяется, можно также считать большой, когда подмножества (или диапазоны) строк этой таблицы имеют разные модели использования. И хотя модели использования не обязательно должны изменяться (и это вовсе не является требованием секционирования), когда модели использования все же меняются, тогда могут быть получены дополнительные преимущества от секционирования. С точки зрения продаж, данные текущего месяца обычно используются для чтения/записи (read-write), в то время как данные предыдущих месяцев (и часто большая часть таблицы) - только для чтения (read-only). Если в больших таблицах использование данных изменяется, либо накладные расходы на обслуживание огромны, то это может ограничить способность таблицы отвечать на различные пользовательские запросы, в свою очередь, ограничивая и доступность и масштабируемость. Кроме того, особенно когда большие массивы данных используются по-разному, операции обслуживания могут отказаться от планового обслуживания статичных данных. Обслуживание данных, которые в этом вовсе не нуждаются - слишком дорогое удовольствие. Излишние затраты могут отразиться на производительности, блокировках, резервном копировании (дисковом пространстве, времени и эксплуатационных характеристиках), а так же отрицательно воздействовать на общую масштабируемость сервера.
Кроме того, в многопроцессорных системах разделение больших таблиц приведет к улучшению производительности за счет параллелизма. Крупномасштабные операции над чрезвычайно большими наборами данных (в миллионы строк) могут извлечь выгоду из параллельной обработки независимых подмножеств данных. В качестве простого примера улучшения производительности при использовании секционирования может выступать агрегирование (группировка) в предыдущих версиях сервера. Например, вместо того, чтобы группировать данные в одной большой таблице, SQL Server может группировать их в нескольких секциях независимо друг от друга, и затем объединить агрегаты. В SQL Server 2005, объединения могут извлекать данные непосредственно из секций; SQL Server 2000, поддерживающий параллельные объединения наборов данных, все же должен был создавать эти наборы данных на лету. В SQL Server 2005, связанные таблицы (к примеру, Order и OrderDetails), которые разделены по одному и тому же ключу секционирования и одной и той же функции секционирования, называются выровненными. Если оптимизатор SQL Server 2005 обнаруживает, что объединяются две секционированные и выровненные таблицы, он может предпочесть объединить сначала данные, располагающиеся в одних и тех же секциях, а затем объединить результаты. Это позволяет SQL Server 2005 более эффективно использовать многопроцессорные системы.
Итак, чем же может помочь секционирование? Там, где таблицы и индексы становятся слишком большими, секционирование может помочь, расщепляя большие массивы данных на меньшие, более управляемые "куски" (т.е. секции). Тип секционирования, описанного в этой статье, называют горизонтальным секционированием. При горизонтальном секционировании большие "куски" строк сохраняются в нескольких отдельных секциях. Архитектура секционированных данных выбирается, настраивается и управляется согласно вашим потребностям. Секционирование в SQL Server 2005 позволяет вам разделять ваши таблицы, основанные на индивидуальных моделях использования данных, задавая ограниченные диапазоны. И наконец, SQL Server 2005 предоставляет большое число настроек (опций) для управления секционированными таблицами и индексами, добавляя дополнительные функции, спроектированные специально для новой концепции.

[В начало]

История секционирования

Концепция секционирования для SQL Server не нова. По сути, секционирование в разных формах присутствовало в каждом релизе. Однако, без функций, помогающих в создании и поддержке вашей схемы секционирования, секционирование было неудобным. А, как правило, если инструмент неудобен в работе, то и преимущества от технологии уменьшаются. Тем не менее, из-за существенного выигрыша в производительности, присущего секционированию, с SQL Server 7.0 началось его усовершенствование, от секционированных представлений, поддерживавших некоторые формы секционирования, до наиболее усовершенствованных секционированных таблиц в SQL Server 2005.

[В начало]

Ручное секционирование Объектов в версиях, предшествовавших SQL Server 7.0

В SQL Server 6.5 и более ранних версиях, секционирование должно было быть частью вашего проекта, а заодно и встраивалось во все ваши инструкции доступа к данным и запросы. Путем создания нескольких таблиц, и затем управления доступом к необходимым таблицам через хранимые процедуры, представления или клиентские приложения, вы могли часто улучшить производительность некоторых операций, но за счет сложности разработки. Каждый пользователь и разработчик должны были знать и должным образом ссылаться на соответствующие таблицы. Каждая секция создавалась и управлялась отдельно, а представления использовались, для упрощения доступа; тем не менее, это решение давало некоторые преимущества. Когда для упрощения пользовательского и программного доступа применялось объединенное представление (использующее инструкцию UNION), процессор запросов должен был получить доступ к каждой базовой таблице, чтобы определить, находись ли в ней данные, необходимые для результирующей выборки. Если для выполнения запроса была необходима только часть тех базовых таблиц, то каждый пользователь или разработчик должны были разбираться в модели данных, чтобы ссылаться только на необходимые таблицы.

[В начало]

Секционированные Представления в SQL Server 7.0

Основные претензии, которые предъявлялись к ручному созданию секций в версиях, предшествовавших SQL Server 7.0, касались в первую очередь производительности. В то время как представления упростили разработку приложений, пользовательский доступ и написание запросов не упростились. С выпуском SQL Server 7.0, представления были объединены с ограничениями целостности, что позволило оптимизатору запросов удалять лишние таблицы из плана исполнения запроса (т.е. исключать секции) и значительно уменьшать стоимость плана исполнения, когда объединенное (UNIONed) представление обращалось к нескольким таблицам.
На Рисунке 1, изображена схема представления YearlySales (годовой товарооборот). Вместо того чтобы размещать все продажи в одной-единственной большой таблице, Вы можете определить двенадцать отдельных таблиц, по одной на каждый месяц (SalesJanuary2003, SalesFebruary2003, и т.д.).


Рисунок 1: Секционированные представления в SQL Server 7.0/2000

Пользователи, которые будут обращаться к представлению YearlySales со следующим ниже запросом, будут адресоваться ТОЛЬКО к таблице SalesJanuary2003.

SELECT ys.* 
  FROM dbo.YearlySales 
    AS ys
 WHERE ys.SalesDate = '20030113'

Пока ограничения целостности являются "доверительными" ("trusted"), и запросы к представлениям используют инструкцию WHERE для ограничения результатов выборок, основываясь на ключе секционирования (столбце, по которому определено ограничение целостности), до тех пор SQL Server будет обращаться только к необходимым базовым таблицам. "Доверительное" ограничение целостности - это ограничение целостности, для которого SQL Server в состоянии гарантировать, что все его данные придерживаются свойств, заданных ограничением целостности. По умолчанию, ограничение целостности создается с опцией WITH CHECK. Этот параметр вызывает блокировку схемы таблицы для того, чтобы данные могли быть сверены с ограничением целостности. Ограничение целостности будет добавлено, как только верификация проверит достоверность существующих данных; но если вдруг блокировка схемы будет удалена, последующие операторы INSERT, UPDATE и DELETE должны будут самостоятельно соблюдать ограничения целостности. Благодаря "доверительным" ограничениям целостности, разработчики могут значительно упростить создание представлений, поскольку им уже не нужно напрямую обращаться к интересующим их таблицам. Благодаря "доверительным" ограничениями целостности SQL Server улучшает производительность запросов, исключая ненужные таблицы из плана исполнения.

Примечание: ограничение целостности может стать "не доверяемым" ("untrusted") по нескольким причинам; например, если при выполнении оператора bulk-insert не задан аргумент CHECK_CONSTRAINTS. Как только ограничение целостности станет "не доверяемым", процессор запросов вернется к сканированию всех базовых таблиц, поскольку нет никакого способа подтвердить, что запрашиваемые данные действительно расположены в искомой таблице.

[В начало]

Секционированные Представления в SQL Server 2000

Не смотря на то, что SQL Server 7.0 значительно упростил разработку и улучшил производительность операторов SELECT, операторы модификации данных не претерпели никаких изменений; операторы INSERT, UPDATE и DELETE поддерживались только для базовых таблиц, и не поддерживались для представлений, объединявших наборы данных (с помощью оператора UNION). SQL Server 2000 позволил операторам модификации данных также извлекать выгоду из возможностей секционированных представлений, разрешая через представления модифицировать соответствующие базовые таблицы. И хотя существуют дополнительные ограничения на создание ключа секционирования, тем не менее, основной принцип заключается в том, что не только операторы SELECT, но и операторы модификации данных будут направляться непосредственно соответствующим базовым таблицам. За более полной информацией об ограничениях, настройке, конфигурации и некоторых приемах секционирования в SQL Server 2000 вы можете обратиться к статье: http://msdn.microsoft.com/library/techart/PartitionsInDW.htm

ПРОДОЛЖЕНИЕ СЛЕДУЕТ

[В начало]

Руководство по работе с Microsoft SQL Server 2000 Analysis Services (продолжение)

По материалам статьи Carl Rabeler и Dave Wickert, Microsoft Corporation: Microsoft SQL Server 2000 Analysis Services Operations Guide
Перевод Виталия Степаненко

Содержание

Введение
Управление конфигурацией
Управление выпуском
Управление изменениями
Администрирование безопасности
Управление сервисом и доступностью
Управление свободным пространством и производительностью
Управление разрешением проблем и ошибок

Временная папка

Вам надо поместить папку Temporary, если она используется, на RAID массив для повышения скорости записи и проследить, чтобы она находилась не на том же на физическом диске, на котором находится папка Data. Используйте RAID 0, 1, 0+1 или 10 в зависимости от возможностей Вашего бюджета и интенсивности использования RAID. Как бы то ни было, для лучшей производительности более важным будет выделение достаточно большого буфера обработки, чтобы избежать использования временных файлов во время обработки. Если обработка требует наличия временных файлов, то алгоритм работает в разы медленнее, чем если бы буфер обработки был достаточно большим, чтобы выполнить всю обработку в памяти. Если Вы обнаружите, что файлы в папке Temporary интенсивно используются и Вы не можете от них отказаться, то Вы можете добавить вторую папку Temporary на другом физическом диске, добавив ключ реестра TempDirectory2 (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLAP Server\Current Version) и определив путь на отдельном физическом диске для второй папки Temporary. Если Вы вынуждены использовать временные файлы, то использование двух папок Temporary увеличивает производительность обработки, потому что данные из первой папки Temporary последовательно считываются, объединяются с новыми данными из сегмента и записываются во вторую папку Temporary 64-килобайтными сегментами. После этого данные из второй папки Temporary считываются, объединяются с новыми данными из сегмента и записываются в первую папку Temporary. Этот процесс продолжается, пока не будут выполнены все расчеты агрегатов. Чтобы определить, используется ли у Вас папка Temporary, смотрите Приложение С "Как настроить размер буфера обработки" далее в этой статье.

Конфигурирование источника данных

Когда Вы создаете новую базу данных в экземпляре Analysis Services, одной из первых Ваших задач является определение источника данных для базы данных. Источник данных содержит информацию, необходимую для доступа к данным, которые требуются для объектов базы данных. Понятие "источник данных" на самом деле относится к созданному объекту источника данных, а не к самим данным источника. Когда Вы определяете источник данных в Analysis Manager, именем для него будет или <имя_сервера>-<имя_базы_данных>, или <имя хоста>-<имя_базы_данных>. Однако, чтобы избежать проблем при перемещении базы данных на другой сервер, Вам следует изменить именование объекта источника данных по умолчанию, создав для него логическое имя, не связанное с именем компьютера, на котором изначально была создана база данных.

Чтобы создать логическое имя для объекта источника данных в Analysis Manager, создайте сам объект источника данных. После этого скопируйте новый объект источника данных и вставьте его в ту же самую базу данных Analysis Services. После этого Вам будет предложено определить новое имя для объекта источника данных. Выбранное Вами имя должно отражать логический тип данных, например, "Данные по продажам" или "Данные по сотрудникам". После того, как Вы определите новое логическое имя, удалите исходный объект источника данных. Затем, когда Вы будете перемещать базу данных Analysis Services между компьютерами, Вы сможете легко изменить текущий сервер и базу данных в строке соединения, изменив настройки объекта источника данных в Analysis Manager (или в Вашем скрипте).

В добавление к смене физических имен Ваших источников данных на логические, Вы должны быть уверены, что Ваши компьютеры используют то же самое имя. Если Ваш компьютер для разработки имеет источник данных, названный "Данные по продажам", то Ваш компьютер, на котором стоит Query Analyzer, также должен иметь источник данных "Данные по продажам", и рабочий компьютер тоже должен иметь источник данных "Данные по продажам". Использование постоянных имен на всех компьютерах для разработки, на компьютерах, где запущен QA, и на рабочих компьютерах делает перемещение отдельных частей баз данных проще, вырезая их из баз данных и вставляя их в базы данных Analysis Services.

Если Вы не измените имя объекта источника данных перед созданием объектов в базе данных, то Вы не сможете изменить имя объекта источника данных без использования утилит сторонних производителей. Для дополнительной информации по инструментам, которые Вы можете использовать при перемещении базы данных между экземплярами Analysis Services, смотрите "Управление выпуском" далее в этой статье.

Учетные записи служб

Чтобы понять, какие права необходимы для учетных записей служб MSSQLServerOLAPService и SQL Server Agent, Вам нужно знать контекст безопасности, в котором выполняются различные операции. Определенные задания могут выполняться в контексте текущего подключенного пользователя, другие же задания выполняются в контексте безопасности учетной записи службы MSSQLServerOLAPService.

Когда Вы отправляете на Analysis Manager команду создания нового объекта или просмотра существующего, эта команда выполняется в контексте безопасности интерактивной учетной записи пользователя, выполняющего эту команду.

Если же Analysis Services обрабатывает измерения, разделы и модели сбора данных, то эта команда выполняется в контексте безопасности учетной записи службы MSSQLServerOLAPService. Вы должны дать соответствующие права этой учетной записи, чтобы обработка прошла успешно.

Пользователи часто считают, что если они могут создавать объекты, то они могут и обрабатывать их. В то время как это является частым случаем в простой среде разработки с одним компьютером, в рабочем отделе с множеством компьютеров Вы скорее всего столкнетесь с проблемами. Если у Вашего приложения исходные базы данных находятся не на том же сервере, где расположена база данных Analysis Services, и экземпляр Analysis Services управляется удаленно, то часто первой проблемой, с которой Вы столкнетесь, выводя приложение в реальную эксплуатацию, будут недостаточные права.

Вы должны убедиться, что учетные записи служб MSSQLServerOLAPService и SQL Server Agent имеют достаточные права для требуемых задач. Как минимум, учетная запись должна быть членом группы OLAP Administrators. Эти права необходимы для любого пользователя (или службы, действующей от имени пользователя), который управляет сервером Analysis Services.

ПРОДОЛЖЕНИЕ СЛЕДУЕТ

[В начало]

ССЫЛКИ НА СТАТЬИ

Статьи на русском языке

PMML: возможности data mining для всех?
Intersoft Lab
OLAP: Мы продолжаем знакомить читателей с различными XML-форматами. В предыдущем номере журнала мы подробно рассказывали о стандарте обмена статистическими данными и метаданными (Инициатива SDMX: новые подходы к обмену статистическими данными и SDMX-ML - XML-формат обмена статистическими данными и метаданными), в этом вы можете найти статью о MDDL - языке определения данных о рынках. Предлагаемый материал посвящен важному событию - появлению на рынке еще одного нового формата - языка разметки для прогнозного моделирования (predictive modeling mark-up language, сокр. PMML), который наконец-то начинает широко использоваться после восьми лет, потраченных на его создание и усовершенствование...

Многоликий класс CultureInfo - .NET-приложения станут дружелюбнее к пользователю
Майкл Каплан
C-sharp: Класс CultureInfo - один из наиболее широко используемых в Microsoft .NET Framework. Объекты этого типа применяются при загрузке ресурсов, форматировании, синтаксическом разборе, изменении регистра букв, сортировке и других преобразованиях, выполняемых по-разному в зависимости от языка, региона или системы письма. Это относительно сложный класс, использование которого в каждом конкретном случае может оказаться непростым делом...

Проблемы 4го сервиспака..
Ivan's Blog
MSSQLServer: При установке вышеупомянутой версии возникает несколько проблем, известной ошибки с AWE я не буду касаться, она уже обсуждена где только можно, а вот остальные две проблемы пожалуй описать стоит:...

Оптимизация - ваш злейший враг
Dr. Joseph M. Newcomer
Достаточно квалифицированный программист вряд ли напишет очень неэффективный код. По крайней мере, неосознанно. Оптимизация - это то, чем вы занимаетесь, когда текущая производительность вас не устраивает. Иногда оптимизировать легко, иногда сложно. Иногда оптимизация является частью оригинального дизайна, иногда приходится попрать все ваши красивые абстракции, заложенные в классовой иерархии. Но всегда, я повторюсь, всегда мой опыт показывал, что не сыскать программиста, который был бы способен предсказать или проанализировать узкие места в производительности без всякой информации. Не имеет значения, что вы думаете, будто знаете, где проблемы с производительностью. Вы будете весьма удивлены, узнав, что они спрятаны в совсем другом месте...

SQL Server 2005: как вызвать веб-сервис
Кейт Браун
MSSQLServer: В сегодняшнем посте Кейт пояснил причину: SQL Server накладывает серьёзные ограничения на загрузку сборок из файловой системы. Это и логично: если уж сборки хранятся ВНУТРИ базы данных, то включать в рассмотрение какие-то посторонние сборки из неизвестно кем управляемой файловой системы было бы неосторожно. Поэтому, загрузка сборок через Load, LoadFrom и т.п. - запрещена хостом SQL Server 2005. Каким боком это касается вызова веб-сервисов? Дело в том, что веб-сервисы используют XML-сериализацию. Вызовы, сообщения в формате SOAP, параметры и ответы веб-сервисов сериализуются и зачитываются при помощи стандартного XmlSerializer. А сам XmlSerializer так уж устроен, что время от времени генерирует сборки, сохраняет на диск и загружает их обратно. Для ускорения сериализации ...

Радикальное изменение планов Microsoft относительно Reporting Services
Брайан Моран
MSSQLServer: На прошедшем в Орландо (шт. Флорида) мероприятии Microsoft TechEd представители Microsoft сообщили о радикальном изменении планов, касающихся лицензирования SQL Server Reporting Services и Report Builder. Ранее предполагалось включить Report Builder только в SQL Server 2005 Enterprise Edition. Ввод Report Builder в Standard Edition и другие менее дорогостоящие варианты SQL Server не предусматривался. Тогда многие представители сообщества SQL Server были единодушны в том, что это большая ошибка Microsoft. Однако недавно старший вице-президент Microsoft по серверным приложениям Пол Флесснер сообщил о включении Reporting Services во все редакции SQL Server 2005. Кроме того, планируется ввести технологию Report Builder в версии Workgroup и Standard данного пакета...

XML Web-службы в Microsoft SQL Server 2005
Алексей Ширшов
MSSQLServer: Компания Microsoft делает все, чтобы превратить SQL Server в полноценный сервер приложений, который на сегодня не может считаться таковым без поддержки XML Web-служб. Можно сказать, что подобная поддержка присутствовала в SQL Server 2000 с момента выхода пакета Microsoft SQLXML 3.0, однако с тех пор прошло немало времени, а развитие технологий, связанных с Web-службами, шло очень активно. SQL Server 2005, или Yukon, представляет революционные новшества как в области поддержки XML на уровне процессора базы данных, так и в области Web-служб...

О Windows Server 2003 SP1
Поль Тюрро
Выпуск Windows Server 2003 Service Pack 1 (SP1) во многих отношениях не менее значим для Windows 2003, чем выпуск Windows XP SP2 для XP....

Англоязычные статьи

Cool new OVER Clause (Transact-SQL) in SQL Server 2005
Mat Stephen's SQL Server WebLog
Cool new OVER Clause (Transact-SQL) in SQL Server 2005 to circumvent the not so efficient correlated subquery

Usage Based Optimization in Analysis Services 2005
Mosha Pasumansky
Coincidently, but today I read both in Marco Russo's blog and in the newsgroups posting complain that Analysis Services 2005 doesn't have Usage Based Optimization (UBO) Wizard. Of course, this is not the case. UBO has been the fundamental functionality of Analysis Services since it very first release as OLAP Services 7.0; it was, and still is, one of the key features which differentiate Microsoft OLAP Server from other OLAP servers. I agree with Marco, that it might not be obvious to find it in UI, but it is there in the partitions tab - available in the menu on the right-click on partition. CTP 15 has couple of bugs related to UBO functionality, but we are aware of them, and they are being fixed for CTP 16

QueryLog in Analysis Services
Marco Russo
More than 2 years ago I posted on the microsoft olap newsgroup a bug on the QueryLog table that Analysis Services uses to log user queries (very important to make usage based optimization). A KB was supposed to be pending, but after two years and a service pack, nothing happened

What normalization form does SQL Server use, REDUX
Sorting It All Out
This question came up a few times at TechEd in Orlando, and recently it was asked again in the newsgroups by a guy named Tim

Should I use BETWEEN in my database queries?
aspfaq
In my opinion, NO. For at least four reasons

Using ANSI SQL style DECLARE CURSOR statement in UDF
SQL Server Engine Tips
Today I encountered a post in the Microsoft Technical forums where a user was trying to use the ANSI SQL style DECLARE CURSOR statement which will raise error # 1049 in SQL Server. This behavior is true in SQL Server 2000

TechTalk: Kimberly L. Tripp on Developing for SQL Server
Paul Ballard
Kimberly L. Tripp talks about indexing best practices and what developers should know about SQL Server management. She also discusses stored procedure and parameterized queries caching, the new availability features in SQL Server 2005, and the SQL Server CLR

SQL Server 2005: The Replication GUI
Paul Ibison
This article describes the changes to replication from the point of view of the SQL Server 2005 GUI. In case you haven't already been checking out the new version, 'Microsoft SQL Server Management Studio' is the new graphical replacement for 'Enterprise Manager'. It's probably true to say that unlike many other administrative tasks, most DBAs intensively use the graphical interface to administer replication. With this in mind, Replication DBAs will want to discover how to perform their original tasks using the new GUI, as well as finding out about all the new functionality available. Future articles will begin to address all the new bells and whistles, but this article focuses on how to use the new interface to carry out original replication tasks

SQL Server 2000 installation or local connections fail with "SSL Security error :ConnectionOpen (SECDoClientHandshake())" error message
Microsoft
When you try to install Microsoft SQL Server 2000 on a computer that has certificates, installation can fail and you may receive the following error message

Writing CLR Stored Procedures in C# - Introduction to C# (Part 1)
graz
This is the first article in a series on writing stored procedures using the Common Language Runtime (CLR). This article focuses on basic C# syntax and using Visual Studio to build a stored procedure. It's targeted at DBA's and anyone else who primarily writes in Transact-SQL and hasn't had much exposure to .NET yet

Writing CLR Stored Procedures in C# - Returning Data (Part 2)
graz
In Part 1 I covered a simple stored procedure that printed the current date. In this article I'll cover writing a stored procedure to return a recordset back to the client. In the process we'll learn a little bit more about .NET and C# including the SqlConnection, SqlCommand and SqlDataReader classes

Solution to BrokerChallenge 0
Write Ahead Blog
It has been a week since I posted BrokerChallenge 0 and I am quite happy to see several people successfully cracked it. Still others gave it a shot but were not completely successful. So I decided to post the solution to the challenge. You can get the sample T-SQL script from here and modify it to suit your hostname, port and database name. With that you are all set to BEGIN a dialog and SEND me a message. My CommentService is still accepting messages although you will see your name in the consolation list of the Hall of Fame

Create a web service directly from Sql Server 2005 using an HTTP Endpoint
Raymond Lewallen
What is an HTTP Endpoint in Sql Server? Well, it is a way to create a usable interface using HTTP or TCP for SOAP, T-Sql, Service Brokering and a few other things. I’m just going to tell you, quick and simple, about creating a web service to return data, although you can return scalar values, messages and errors too. The results returned are serialized into Xml. If you have Windows 2003, you don’t have to have IIS installed. Sql server will use the http.sys module in the Win2K3 kernel

SQL Server 2005 Tools - Resources to effectively use SQLCMD
Kimberly L. Tripp
On Tuesday, June 21, I had the pleasure of assisting on a TechNet webcast delivered by Michiel Wories - a Program Manager from the SQL Server Development Team at Microsoft. My assistance was limited as I really just listened and helped answer some of the questions that came up during the session. In fact, there were a few of us fielding questions and in general, there seems to be a lot of excitement around this new tool. The focus of the webcast was a new utitlity called SQLCMD

SMO FAQ
Michiel Wories' WebLog
Q: With which SQL Server versions is SMO compatible? A: SQL Server 2000, and SQL Server 2005.

DMO FAQ
Michiel Wories' WebLog
Q: Is SQL-DMO still supported with SQL Server 2005?

SQL Server 2005 Service Broker Challenge is Over
Niels SQL Server Blog
Solution to BrokerChallenge 0: It has been a week since I posted BrokerChallenge 0 and I am quite happy to see several people successfully cracked it. Still others gave it a shot but were not completely successful. So I decided to post the solution to the challenge. You can get the sample T-SQL script from here and modify it to suit your hostname, port and database name…

Can SQL be Saved from XML?
Michael M. David
IBM, Oracle, Microsoft and every other SQL vendor has a different SQL/XML integration solution. Not only are these solutions incompatible with each other, they do an incomplete job of integrating XML. They concentrate on getting native XML in and out of SQL but offer no hierarchical processing in between. They use proprietary procedures and XML-centric syntax that requires procedural logic in an otherwise pristine ANSI SQL nonprocedural language. These SQL/XML solutions do not use or necessarily follow hierarchical principles. This means there is no guarantee the result will be hierarchically accurate

Full-Text Indexes
Buck Woody
Full-Text searches give you a broader range of text to search with, usually in char or varchar fields. They're used in an optional SQL Server construct called a full-text search. Once you've installed this feature, you can search on complex string functions within a query. And, if you've stored complex binary objects (such as Microsoft Word documents or Excel Spreadsheets) in a field, you can search within that document as if it were a SQL field

SQL Server: Table Partitioning in SQL Server 2005
Michiel Wories' WebLog
Table and Index partitioning is one if the new SQL Server 2005 features that willl improve life for the DBA and application developer quite a bit. It allows Indexes and Tables to be partitioned across multiple file groups. Partitioned tables and indexes, are fully manageable with SMO. Here is a quick sample to get you started, with not too much explanation as speaks for itself, mostly. Let me know if you have questions!

Showing the Count
Thom Robbins .NET Weblog
Question: I am trying to build an InfoPath form that has a bit of a strange requirement. I can’t quite figure out how I should do it and was hoping that you might be able to help? Basically, the requirements of the form require that we provide an ongoing count of the number of rows in a repeating table. So for example, if I have a table that has 10 rows in it, then there should be a display box that says 10. If they delete it then 9 and so on. I would think I could do something with an expression box – but can’t quite figure out what formula I might need? Any ideas would be much appreciated!

All about SQL Server Reporting Services 2000 Logs
Russell Christopher's Semi-Useful BI Musings
There are tons of logs in C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\LogFiles...what do all those files do?

Implementing the SQL Server Multiple Publishers and Central Subscriber Replication Topology
Paul Ibison
This article will describe setting up this arrangement using transactional replication, but it is worthwhile noting that there are alternatives; such a topology can also be set up using merge replication while reversing the server designations i.e. S becomes the publisher and P1 & P2 become subscribers. This is possible because the publisher/subscriber metaphor doesn't really apply to merge replication, and the distinction between publisher and subscriber is not as obvious as with transactional. Still, using this implementation means that you are using merge replication where it is not really required, and if you are replicating a lot of data, performance could suffer unnecessarily. So, let's look at how to set this up using transactional replication

Merge Changes: 1 - Dynamic Filters and Unidirectional Merge
replicationanswers.com
This article begins to take a look at some of the new functionality in merge replication, using the SQL Server 2005 Beta CTP of April 2005. Specifically, I was interested in how to implement two different techniques: dynamic filters and unidirectional merge replication. Why these in particular?

Transactional Changes: 1 - Tracer Tokens
replicationanswers.com
Transactional replication in SQL Server 2005 has a tracer token functionality which gives us a simple method of measuring latency in transactional replication. Basically, a token is written to the transaction log of the publisher. This is treated as a normal replicated command, and passes from the transaction log to the distribution database and then is 'run' by the distribution agent. In actual fact there is nothing really to apply at the subscriber but nevertheless, this technique allows accurate determination of Publisher -> Distributor -> Subscriber time latencies

SQL Server Replication Across Domains and the Internet
Paul Ibison
Replication over the Internet or across non-trusted domains is usually performed using a virtual private network (VPN), and consequently the configuration is much the same as that used on a LAN. This article outlines what to do if such a VPN is not available. While it's true that in almost all cases you wouldn't consider making SQL Server available directly to the Internet, loosely-coupled networks in a hosted environment are commonplace. These systems ensure integrity by the use of firewall rules, resulting in DMZ/ECZ layers and causing serious issues for the would-be replicator. This is very much a 'how-to' guide, as the intricacies of network connectivity setup would otherwise make the article too long

Backup Strategy for SQL Server
Gregory A. Larsen
Having a plan for how you manage your database backups is like having an insurance policy to cover your company’s data assets: With a good database backup policy, your data will always be recoverable with minimal data loss. Every DBA must consider what kind of backup requirements are necessary for each database, so an adequate backup solution can be deployed to meet the backup requirements. This article will discuss different database backup techniques that can be used to help minimize the data loss due to unforeseen database corruption, crash, and/or hardware failure

Cool things in SQL2005 1 - 5 The editor
SimonS' SQL Blog
Most of these are due to the fact that SSMS is based on Visual Studio so most of the nice editor features of VS are present in SSMS. There are some many little great things that productivity is going to eventually increase but initially probably descrease while you find them all and see if you like them.

Triggers in SQL Server 7.0 and 2000 - What's New
Brian Kelley
This is the second of a two part series on how triggers work in the two latest versions of MS SQL Server. The first part dealt with what is common between the two versions. This article will detail what's been added to SQL Server 2000

Well, shoot. I wanted to post a complete CLR example tonight...
The SQL Doctor is In
I spent the last hour cobbling together a CLR object to do random numbers using System.Random, and it works great

Working with the SQL Profiler
Steven Warren
In SQL Server 2000, the SQL Profiler can help you diagnose and fix SQL Server performance issues. This tool lets you trace events and play back the results, which can help you determine application and/or query problems, such as long-running queries or ineffective indexes. Let's take a look at how you can use the SQL Profiler to monitor, analyze, and tune your SQL server

8 Steps to better Transaction Log throughput
Kimberly L. Tripp
On a few of my last trips, I've had the pleasure of doing a lot of customer visits - visiting some of the larger implementations of SQL Server. Many of these implementations are at banks where both performance and recovery are critical. After my trip to Turkey (where I did customer visits prior to presenting at the Microsoft Professional Developers Summit), I received this email

Kimberly Tripp - SQL Server MVP and Microsoft Regional Director
theserverside.net
Kimberly L. Tripp is a SQL Server MVP and a Microsoft Regional Director and has worked with SQL Server since 1990. Since 1995, Kimberly has worked as a Speaker, Writer, Trainer and Consultant for her own company SYSolutions, Inc. In consulting, Kimberly tackles tough real world problems focused mostly on performance, tuning, system availability and minimizing data loss. In writing, Kimberly contributes regularly for SQL Server Magazine and TSQL Solutions Journal, was a technical contributor for the SQL Server 2000 Resource Kit and co-authored the MSPress title SQL Server 2000 High Availability.

Back from DevTeach (EXECUTE AS)
Randy Dyess
I have just arrived back in Seattle after spending the last few days in Montreal for DevTeach. This is a great conference for those who have not attended and should be on your “GoTo” list. I had two great sessions on Execution Plans and EXECUTE AS/Impersonation/Code Signing and another not so great session on Optimizing Stored Procedures.

Analysis Services Locks
Minding My Own Business
In a high stress environment where you are trying to process a partition whilst your users are actively querying the cube you may have reached the situation where Analysis Services appears to lockup and no queries are resolved, and connections are not honoured

Analysis Services Network Performance Part III
Minding My Own Business
Many people have raised a few good points in reply to my last positing. The consensus is that many people would assume that naturally verbose XMLA would be a slower solution than the binary connection protocol that PTS uses

Analysis Services Problems Part II
Minding My Own Business
In my last posting I talked about the trouble that you can get yourself into trying to run PTS in poor network environment. We discussed how to get XMLA as far as the desktop however did not discuss how we can get client tools to consume this data with the minimum of hassle

Analysis Services Problems
Minding My Own Business
Have you ever had a problem with no obvious solution? I inherited a problem like this in my current role. To quickly paint the picture, we have a large Analysis Services deployment which suffers badly from poor network performance caused mostly by the poor infrastructure and compounded by the way that MSAS uses the network

Launching a Corporate Glossary
Bonnie O'Neil
A case study for the development of a corporate glossary that sets the stage for intelligent search and real knowledge management

DTS Gotchas
OLAP/BI/IM stuff
I just had to move a DTS package (along with the db schema and Analysis Services cube) from one machine to another, and there were a few gotchas I hadn't planned on...

Calculate Memory Used by Olap
Denny Lee's MSN Space
To calculate memory, the formula is: DimSize = (M x (61 + 4L + Sa + Sk))) + 4P + Sn where

Olap's Lazy Aggregation Error
Denny Lee's MSN Space
If you get an “Error during lazy aggregation of partition %PartName% in cube %CubeName%, this is typically caused by a lazy aggregation error. To resolve this, you can

How to archive an OLAP database (not using msmdarch.exe)
Denny Lee's MSN Space
To provide an unsupported method to archive an Olap database instead of using msmdarch.exe

Renaming OLAP database (Unsupported)
Denny Lee's MSN Space
Below are the unsupported steps to rename and OLAP database

OLAP Distinct Count - how to make it faster
Denny Lee's MSN Space
To get the full performance out of Analysis Services for distinct count, insure that a distinct count measure is in its own cube and you can perform custom aggregations for the dimensions within the cube. But the most powerful way to improve performance is to use a partitioning strategy

MIssing a Trick
Thoughts of a Freelance Dolphin Trainer
In the world of OLAP tools Analysis Services pretty much sits on top the heap. No one really denies it except a small band of nomadic Oracle developers who cling to the hope that Express will rise like a Phoenix from the ashes. I’m not one of those people who draws a huge line between the Oracle and Microsoft camps denying to the one that the other doesn’t exist and it’s probably something that MS should think about when they are bidding in the area of Business Intelligence

Service Pack 4 Weirdness
Thoughts of a Freelance Dolphin Trainer
Here’s something I’ve been meaning to put on here for a while around a bug that appears after the installation of service pack 4 for Analysis Services

New Cube Design Features - Part 2 - More on Hierarchies
Thoughts of a Freelance Dolphin Trainer
Part 1 further down the page was cut short because I could see that it was going to be one of those 4 page word document blog postings that I would never go back and read let alone someone with any interest in this thing taking any notice of. Anyway, the dimension / hierarchies change thing is pretty huge in 2005 so continuing my piece on Chris Webb’s piece a bit more about attribute hierarchies

Questions and Answers
Yukon BI by the Hitachi Consulting Yukon Team
As classes have completed, we've had more questions rolling in. We'll attempt over the next few posts to provide some answers from both Reed and Stacia to give a couple points of view

Database Coding Standard and Guideline
nyx.net
This document will provide a framework to aid in optimal usability of Microsoft SQL Server 7.0 schema, scripts and stored procedures developed for applications by defining a reasonable, consistent and effective coding style. The qualities of usability as used here include readability by other database technicians, ease of implementation, maintainability, and consistency. The framework will serve to improve the application without unnecessary impact on development and unnecessary controls on personal coding preferences. For these reasons the framework will focus on identifier naming conventions that are intended to be used by all developers, general style guidelines indicating the preferred format and usage of SQL language components, and a definition of the database development methodology

How to remove administrative shares in Windows Server 2003
Microsoft
This step-by-step article describes how to remove default administrative shares, and prevent them from being automatically created in Windows Server 2003

Ballmer: 'We'll catch Google'
Steven Deare
Microsoft CEO Steve Ballmer has confessed the software giant's .Net strategy has come to a standstill, says he's accepted SQL Server's shortcomings and vowed to keep fighting search giant Google

Transact-SQL Cookbook: Chapter 8 - Statistics in SQL
Ales Spetic, Jonathan Gennick
The recipes in this chapter show you how to effectively use SQL for common statistical operations. While SQL was never designed to be a statistics package, the language is quite versatile and holds a lot of hidden potential when it comes to calculating the following types of statistics

Four Rules for NULLs
Michael Coles
In SQL Server 2000 or any relational database, the concept of NULL can be both confusing and hazardess to your employment. Not understanding how to work with NULLs can lead to incorrect responses to queries and poor business decisions being made. New author Michael Coles brings us four rules that can help you work with NULL values in your tables

SQL Server Index Fragmentation and Its Resolution
Randy Dyess
While there is no doubt of the benefits of adding indexes to your tables, and for the most part you have to do little work to keep the indexes maintained, some maintenance is required as indexes can become fragmented during data modifications. This fragmentation can become a source of performance issues with your queries

SQLSecurity FAQ
sqlsecurity.com
How do I restict clients by IP Address? SQL Server has no built-in support for restricting clients by IP address. The most common work-arounds are firewalls, IPSec, or third-party network layer filters to allow only certain source IP addresses and target TCP ports (the port on which SQL Server is listening)

SQL Injection FAQ
sqlsecurity.com
Q. What is SQL injection? A. SQL Injection is simply a term describing the act of passing SQL code into an application that was not intended by the developer. Since this topic is not specifically restricted to SQL Server it is not included in the normal FAQ. In fact, much of the problems that allow SQL injection are not the fault of the database server per-se but rather are due to poor input validation and coding at other code layers. However, due to the serious nature and prevalence of this problem I feel its inclusion in a thorough discussion of SQL Server security is warranted

SQL 2000 Builds
sqlsecurity.com
Version, Link, PSS Only, Patch Level

Generating Sequences in T-SQL
Alexander Netrebchenko
Many T-SQL developers run into situations in which a simple one-column rowset containing sequential numbers (e.g., from 1 to 1000) or a set of sequential dates in a given range would be useful in performing a tricky SELECT operation or populating a table with test data. The most common solution in such cases is to create a temporary table and a simple loop to generate the required values. However, you can use Cartesian product operations to generate number, date, and time sequences without loops, then you can write user-defined functions (UDFs) that use such sequences to create sophisticated queries

Retrieving Objects from SQL Server Using SQLXML and Serialization
Gianluca Nuzzo
This article will describe how to design a data access layer for a set of entities. You'll learn how to write an XSD schema and design two simple helper classes -- one for reading an XML stream from SQL Server using SQLXML and another for deserializing the XML stream

SQL Server Database Coding Conventions, Best Practices, and Programming Guidelines
Vyas Kondreddi
Databases are the heart and soul of many enterprise applications, and it is very essential to pay special attention to database programming. I've seen in many occasions where database programming is overlooked, thinking that it's something easy that be done by anyone. This is wrong

MOM - a solution for the SME Managed Service Provider
Gordon McKenna
The expansion of broadband availability in the UK is having a significant impact on the complexity and penetration of IT systems and technology in the Small to Medium Enterprise (SME) and Small Corporate sectors. Broadband technology such as ADSL and Cable provides fast permanent Internet connections for businesses at significantly lower prices than traditional Leased Lines of equivalent speeds. Smaller businesses can use networking and communications in a way that only a couple of years ago was viable only for larger corporates

Displaying Report Builder to non-admin users in SQL Server Reporting Services 2005
Russell Christopher's Semi-Useful BI Musings
I finally began playing around with how to secure models and/or items within a model, so I needed a "testuser" to launch IE under in order to test my changes

New Features in Reporting Services in SQL 2005
Darren Gosbell's Random Procrastination
I have been asked a couple of times now, “what new features are coming in SQL 2005?” and even by people that have access to, or have seen the CTP. It's true that there have not been a lot of changes in SRS, let's face it, the version released for SQL 2000 was really just a pre-release of the SQL 2005 version. But in the 18 months or so there have been a number of small changes that really to add to the products maturity

SQL Server 2005 - Service Broker
Darren Gosbell's Random Procrastination
Service Broker is a new feature of SQL Server 2005. Even though I have been playing on and off with SQL 2005 since it was “Yukon Beta 1”, I had not heard much about this feature before going to the Melbourne SQL Server SIG session last night. I was not sure if it would have many applications in a Data Warehousing application, which is the area I normally work in.

SQL Server 2005 - SQL Server Integration Services - Part 4
Marcin Policht
In the previous article of this series dedicated to the SQL Server 2005 Integration Services (SSIS), we started exploring features, which provide the ability to reuse packages (without modifying their design) in situations where some of their parameters need to be changed (frequently, this is required as the result of switching from development or testing environments to production). The first method we introduced involved the use of configurations, implemented through Package Configuration Organizer, included in Business Intelligence Development Studio. With its intuitive Wizard-driven graphical interface, it is straightforward to specify variables or properties of SSIS components, which values can then be assigned using external sources of data (such as XML configuration files, registry entries, environment variables, or variables defined in parent SSIS packages).

Stored Procedure Parameters giving you grief in a multi-purpose procedure?
Kimberly L. Tripp
Well... the performance ramifications are... not good! Without seeing more of the proc I'd have to suggest that you avoid this like the plague! I think I can convince you with this simple example which shows why it's better to have multiple procedures and limit the flexibility a bit OR use DSE = dynamic string execution (and unfortunately even recompilation issues don't help - which I talked about here)...

Automate Testing of Your Stored Procedures
James McCaffrey
Many Windows®-based applications have a SQL Server™ back-end component that contains stored procedures. Although techniques to automatically test functions in the front-end code are well known, the techniques to write test automation for stored procedures are not. SQL Server 2005 will provide greatly enhanced integration with the Microsoft® .NET Framework including the ability to write stored procedures in C# and other .NET-targeted languages. This will certainly increase the use of stored procedures and the importance of testing them thoroughly

TRACE FLAGS
transactsql.com
Trace flags are used to temporarily enable or disable specific database functions allowing you to change default database behavior or to observe hidden database behavior. Trace flags will remain in effect until they are either manually turned off or SQL Server is restarted. Most trace flags are undocumented and Microsoft can and will change the behavior of the flag between SQL Server versions, service packs or hotfixes.

SqlXml / MDAC Clarification
Irwin Dolobowsky's Blog
Apparently there's been a bit of confusion out there lately about the list of deprecated technologies in the Data Access Road Map. Both Ken and Bryant blogged about it, and I just wanted to clarify a few things

He's Back Folks!
Irwin Dolobowsky's Blog
I know everyone missed me the last two weeks, but rest assured, I'm back and on top of things. Thanks to all those who were patient in waiting for a response from me. I was bouncing around the East for two weeks in Bermuda and New Jersey, loving every minute of it. Of course, now I'm back in bright, sunny Seattle. Well, I'm back in Seattle at least

Praise XML!
Irwin Dolobowsky's Blog
Read through my RSS items, I found a reference to this post about "The Church of XML". Seems like someone's been burned by this stuff a bit, huh? While the article is a obviously dripping with sarcasm, I actually thought it was a pretty funny read that, at the center, may actually have a few grains of truth. Here's what I seemed to get out of it (putting a little more positive spin on things)

Bulkload Sample Code
Irwin Dolobowsky's Blog
As promised, the sample code for my presentation. The Object Demo was from Andy Conrad's article “Death, Taxes, and Relational Databases, Part 2”. The other demo was mine, and here's the code. Again, the point of this demo was to show how two parties can exchange data from their databases using SqlXml. Each database has a different schema and XML is used to transfer the data. Both parties agree on a common XML schema for the data to to be transfered, and then each create a mapping to that XML schema for their database. An XPath is issued against mapping one to retrieve data and bulkload is then used with the data and mapping two to load the second database

Multiple DISTINCT COUNT measures in SSAS 2005
Marco Russo
Analysis Services has a limitation of one distinct count measure for each measure group; in the past, it was a limitation for the single cube. Each distinct count measure cause an ORDER BY clause in the SELECT sent to the relational data source during processing. I'd like a different approach, but probably this is already a good compromise between all the needs

Rebuild XML indexes when upgrading from Beta 2 to June CTP of SQL Server 2005
SPal's WebLog
Setup upgrade to June CTP of SQL Server 2005 is unavailable. Typically, you would uninstall the existing build of SQL Server 2005, install the June CTP, and attach your database files to the server

Performing XSLT Transforms on XML Data Stored in SQL Server 2005
XQuery Inside SQL Server 2005
A common task when dealing with XML data is to apply an XSLT style-sheet to the raw XML data in order to display it better. In a previous post to this blog, I showed how to append a processing instruction to your XML data in order to get IE to do the transformation of your XML data. This approach required that you know the location of the XSLT transform file and also that you were looking at your data through a file and not extracted directly from the server. Using the integration of the CLR components with SQL Server 2005, we can perform this same transformation within the server process itself and output plain HTML that will be viewable by any browser

XML Web-службы в Microsoft SQL Server 2005
Алексей Ширшов
Компания Microsoft делает все, чтобы превратить SQL Server в полноценный сервер приложений, который на сегодня не может считаться таковым без поддержки XML Web-служб. Можно сказать, что подобная поддержка присутствовала в SQL Server 2000 с момента выхода пакета Microsoft SQLXML 3.0, однако с тех пор прошло немало времени, а развитие технологий, связанных с Web-службами, шло очень активно. SQL Server 2005, или Yukon, представляет революционные новшества как в области поддержки XML на уровне процессора базы данных, так и в области Web-служб

Everybody's favorite topic - NULL
Andrew Conrad's WebLog
In V1 of .net, value types could not be null. Since, this was contradictory to relational databases use of null, the DataSet needed to have a concept of nullable value types – hence DBNull was invented

Howto Connect To Microsoft SQLServer
Matt Pelletier
Unfortunately you can only connect to SQL Server from a Rails instance running on a Windows computer, as the ADO adapter relies on Win32OLE

Tips for Performance Tuning SQL Server Triggers
sql-server-performance.com
The amount of time that a trigger takes to run is mostly a function of the number of tables referenced in the trigger and the number of rows affected by the code inside the trigger. Because of this, always try to minimize the number of tables referenced in a trigger, and minimize the number of rows being affected

How to search all columns of all tables in a database for a keyword?
Narayana Vyas Kondreddi
While browsing the SQL Server newsgroups, every once in a while, I see a request for a script that can search all the columns of all the tables in a given database for a specific keyword. I never took such posts seriously. But then recently, one of my network administrators was troubleshooting a problem with Microsoft Operations Manager (MOM). MOM uses SQL Server for storing all the computer, alert and performance related information. He narrowed the problem down to something specific, and needed a script that can search all the MOM tables for a specific string. I had no such script handy at that time, so we ended up searching manually

Roman's Weekly SQL Server Tip - How to get most recent SQL command executed by a process
Roman Rehak
When you do troubleshooting of production databases, it is often very helpful to determine what statement a particular process just executed. You can get that info from Enterprise Manager by double-clicking on the process in the Process Info node. If you need to get that statement using SQL in Query Analyzer, you can execute the following code to get it

Calculate prime numbers in SQL Server 2005
SimonS' SQL Blog
Thought I would start a challenge. Who can come up with the best way of calculating prime numbers in SQL server. with all the progamability changes in 2005 there must be a really good way of doing it, or is there

Installing and Upgrading to SQL Server 2005
Robert Pearl
If you have not had the chance to work with SQL Server 2005, or even if you have, Robert Pearl brings us some important information about what your upgrade or installation of the next version of SQL Server will bring. This is information every administrator needs to know to get prepared

Many-to-Many Dimensions in Analysis Services 2005
Microsoft
See an example of using the Many-to-Many dimension in SQL Server 2005 Analysis Services to analyze sales data, and get ideas for other uses such as treating medical conditions, software testing, and more

Creating Dot Net Stored Procedures in SQL Server 2005
Yelena Varshal
The CLR in SQL Server 2005 is quite the topic of debate and whether it is a good thing or not. No matter which side you are on, the reality is that you will need to understand how to create, manage, and work with stored procedures based on assemblies in SQL Server 2005. New author Yelena Varshal brings us a basic article and a sample that you can use

New 2005 Feature: Execute As STATEMENT!
The SQL Doctor is In
I considered naming this entry: AUUUUGGGGHHHHH!!! But cooler heads prevailed. Actually I was afraid if I went all Charlie Brown on you that some might desubscribe to my feed since this is so much less painful than losing your kite to the kite-eating tree. But I digress...

Obligatory cheesy conference post
Arpan Desai's WebLog
It seems that most members of the the blogging community succumb to posting a “Yesterday at the -Insert Name- Conference...”, so who am I to rock the boat

A SQL function you just CAN’T live without... (posted by Aaron)
DDITWeb
When SQL functions were first introduced I stumbled across one function in particular that I’ve probably used more than any other. In fact, I doubt I’ve developed too many databases that didn’t use this great little function. It’s really quite simple… but very, very powerful. It’s called… fn_ParseCommaDelimitedList. This simple yet powerful little function allows you to pass in a comma delimited list of integers for use when querying a subset of rows from a table

Which "where" is better in SQL 2005 and Xml, or the difference between knowing and knowing (posted by Paul)
DDITWeb
One of the projects I’m working on is to take performance data generated from our build lab in xml and create nifty visualizations of the data so developers can see what impact the changes they are making have on their product's performance

Account for scope when writing stored procedures
Arthur Fuller
Using data in multiple tables across SQL Server can cause problems. We show you how to get round them

Can't Start Debugging (F5) in VS 2005 Beta 2?
MS.COM Operations Tools Team WebLog
A couple of months ago, after I had just installed the then-new Visual Studio 2005 Beta 2, I could not run any project in the IDE, as it would crash VS. Then I found a workaround using a Visual Studio community feature that I built for MSDN Forums

Report name with spaces and the ReportEmbeddedResource property of the Whidbey Report Viewer control
Russell Christopher's Semi-Useful BI Musings
Ran into an interesting (and I guess understandable) behavior today while playing with the Visual Studio 2005 Report Viewer control

Data Sources, Data Source Views and Deployment
Kirk Haselden
In an earlier blog I covered some aspects of configurations that I think help make them amenable to deployment and also make them easier to manage for multiple packages and for multiple machines. That blog entry is here

Last week for Security Class and NULL values
Randy Dyess
This is my last week here in Redmond for the SQL Server security class design engagement. I have enjoyed this engagement as it allowed me to give my input on what the next round of Microsoft MOC classes will cover. I still think these classes will be beneficial to many DBAs, developers, and database architects and will help take someone’s level of SQL Server knowledge up a step or two. The only thing I am worried about is how Microsoft will find instructors that are experienced enough with SQL Server to actually deliver the class. The outlines for the classes I have seen (including mine) require experienced SQL Server DBAs to deliver the courses not just someone who makes their living teaching

Transactions, Locking, and Concurrency in SQL Server
Rahul Sharma
Although SQL Server is pretty good at handling locking automatically and escalating locks whenever needed for optimal performance, you can design more efficient applications by understanding and customizing locking in your applications

Linked Servers: Creation, Setting Options, and Querying
Rahul Sharma
With SQL Server, we can create links to any OLE DB data source. This linked data source is called as the linked server. Distributed queries access data from multiple heterogeneous data sources, which can be stored in either the same or different computers. Microsoft SQL Server supports distributed queries by using OLE DB, the Microsoft specification of an application programming interface (API) for universal data access

Copying Databases from Server to Server
Rahul Sharma
There are a number of ways you can copy databases from server to server

Tuning Up ADO.NET Connection Pooling in ASP.NET Applications
Dmitri Khanine
Opening a database connection is a resource intensive and time consuming operation. Connection pooling increases the performance of Web applications by reusing active database connections instead of creating a new connection with every request. Connection pool manager maintains a pool of open database connections

How can I do a crosstab function using standard TSQL in SQL Server?
Neil Pike
A. It's obviously easier to use a product that has this sort of functionality built-in - e.g. Excel, but it is possible to do it in standard SQL, though there the query has to be hard-coded to the number of columns/values required

Running SQL Server 2005 in a Virtual PC
Roman Rehak
Over the last few months I went through a lot of frustration trying to run SQL Server 2005 and Visual Studio betas and CTPs in VPC. The main issue was the speed of the guest OS. Installs in particular are pretty bad, just a VS install can take several hours. I've heard from several people that they gave up on VPC and just invested in a second laptop to play with the new stuff.

Data Protection: A tale of preventable loss
Simple Talk
In the race to secure data, one basic measure – encryption – is often overlooked. Philip Basham takes a look at the ramifications of data loss and how it can be prevented.

Import Security event logs using Log parser and SQL Server
Muthusamy Anantha Kumar
In order to satisfy the demands of General-Controls review by public auditors and regulatory agencies, companies should monitor the security events of every production system they have. This article illustrates how to use Microsoft Logparser 2.2, Job Scheduler and SQL Server database to monitor the event logs, and extract Monthly, Weekly Low security event reports from the SQL Server database

How Log Parser 2.2 Works
Gabriele Giuseppini
I have been asked "what does Log Parser do?" many times in the past couple of years. Every time this happens, I find myself in real trouble trying to figure out how to describe this tool. Every time I find a sentence that tries to describe it, I later discover that the sentence leaves out important facets of the tool, and doesn't convey the real essence of its flexibility. Sure, this might be developer's paranoia, but nonetheless, I never feel totally satisfied with my answer

Information on RAID configurations
Raymond Lewallen
RAID stands for Redundant Array of Inexpensive Disks. RAID levels that exists are levels 0 – 7, but the most popular are 0,1,3 and 5. I will give a brief overview of those levels below

Working with Regular Expressions
SQL Server 2005: CLR Integration
One of the many benefits of using CLR Integration in your database applications is the availability of rich .NET Framework libraries. SQL Server provides you with a set of built-in functions that can be used in your queries but with CLR Integration you can enhance this set to any functionality from the list of supported framework libraries for e.g. System.dll

Manipulating file names in command shell script
John Gallardo's Weblog
I have been helping out another team here in the SQL Engine with some of their lab automation. Most of it consists of tons of shell scripts, which isn't necessarily a bad thing, but I am certainly no shell scripting expert. At any rate, I was faced with the following problem: figure out the path to the batch file which is being executed. Now, I am sure that to you shell scripting gurus this doesn't sound like much of a challenge, but like I said already, I am not really up to speed on shell scripting

[В начало]

ФОРУМ SQL.RU

Самые популярные темы недели

Кто на чем пишет клиентов под SQL Server?
Tool Вы знаете что твориться на ваших 10-30+ серверах ?
Новые упражнения на http://sql.ipps.ru
Больше книг хороших и разных!
Помогите с DTS советом!
Прошу голосовать за SQL.RU в конкурсе Интернить 2005
Подулючение к MS SQL Server 2000 по IPX
SQLServer & AD
Еще раз о конфигурации RAID. Как поделить 6 дисков?
Win2003 SP1 & MS SQL Server 2000
Процессы блокируют сами себя, что делать
SP4 - делитесь опытом
Linked Server и Insert
Востановление БД Хелп!
Ошибка при бакапе...
По каким столбцам связываются таблицы Deleted и Inserted
Кто-нибудь разрабатывал стандарты по разработке в SQL?
координатор транзакций чего-то хочет а чего не пойму
откуда это может взяться, если...
set nocount on замедляет работу

[В начало]

Вопросы остались без ответа

Доступен для скачивания: SQL Server 2005 JDBC Driver Beta 1
помогите с репликациями
Как передать sql_variant через XML
Доступен для скачивания Update Rollup 1 для Windows 2000 SP4

[В начало]


Вопросы, предложения, коментарии, замечания, критику и т.п. оставляйте Виталию Степаненко и Александру Гладченко в форуме: Обсуждение рассылки

СЕМИНАРЫ  КОНФЕРЕНЦИИ

МИНИФОРМА
ПОДПИСКИ



ПУБЛИКАЦИИ  АРХИВ


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.winsoft.sqlhelpyouself
Отписаться
Вспомнить пароль

В избранное