Главная » Microsoft SQL Server, Базы данных » Мониторинг брокера служб

0

Несмотря на отсутствие средств визуализации очередей в Management Studio и сводного отчета для объекта очереди, можно создать выборку непосредственно из очереди. К тому же существуют представления каталогов базы данных, которые могут пролить свет на очереди.

Чтобы просмотреть деморолики работы с Web-службами, брокером служб и хранимыми процедурами, а также средств мониторинга брокера служб, обратитесь к разделу ScreenCast, доступному на Web-сайте книги (www.SQLServerBible.com).

Резюме

Брокер служб является одной из тех технологий, которые нельзя просто “распаковать” и сразу воспользоваться всеми ее преимуществами. Если не приложить усилий к проектированию базы данных с использованием брокера служб, то невозможно будет получить никакой отдачи. Однако если уделить этому вопросу особое внимание, то вы получите существенный прорыв в вопросах масштабируемости, достигаемый благодаря использованию очередей брокера служб.

В следующей главе мы продолжим разговор о расширенных технологиях SQL Server и рассмотрим библиотеку ADO.NET 2.0 с ее мощными методами взаимодействия с базой данных.

Поддержка пользовательских типов данных

Пользовательские типы CLR являются нововведением в версии SQL Server 2005. Не следует путать их с пользовательскими типами данных. СУБД SQL Server уже поддерживала некоторое время пользовательские типы данных в ограниченном контексте. Это расширение языка T-SQL было предназначено в основном для удобства работы с базой данных. Ранее создание новых типов данных не поддерживалось— существовал механизм присвоения псевдонимов существующим типам, таким как integer, char и binary, для обеспечения связности в базе данных. С его помощью было удобнее идентифицировать взаимоотношения типов в столбцах множества таблиц и придавать столбцам, предназначенным для одной цели в нескольких таблицах, одинаковую длину. Например, все такие столбцы могли быть отображены на один пользовательский тип данных. В то же время приложения, ссылающиеся на такие столбцы, видели их с соответствующим “родным” типом данных SQL Server. Приложения фактически не догадывались о существовании созданного пользовательского типа — он не имел смысла вне базы данных, в которой был создан. На уровень приложения действие пользовательских типов данных не распространялось.

Дополнительная Пользовательские типы являются одним из пя- шформация\ ти типов интеграции CLR в SQL Server 2005.

1       — Общее рассмотрение типов интеграции CLR в

SQL Server 2005 см. в главе 27.

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

данных. При реализации в среде .NET пользовательские типы могут включать в себя больше одного примитива. Эти типы могут иметь любых членов классов .NET, таких как свойства, методы и поля. Сам разработчик несет ответственность за то, чтобы пользовательский тип был известен на всех уровнях приложения, которые будут его использовать, не только с помощью определения, лежащего в основе примитива, но и с помощью определения имени и структуры типа. Ссылка на определение пользовательского типа должна присутствовать во всех программах, которые будут его использовать, — как на уровне базы данных, так и на уровне приложения.

Типы интеграции CLR отличаются от объектов базы данных SQL Server, существовавших до выхода версии SQL Server 2005. Хранимые процедуры, функции и методы, созданные в CLR, состоят из одного метода. Эти методы имеют своих двойников в языке Т-SQL; того же нельзя сказать о пользовательских типах.

Пользовательские типы определяются как класс или структура. Когда они создаются как класс, в него внедряется вся функциональность типа. Компания Microsoft высказала несколько обескураживающее предупреждение о том, что пользовательские типы не рекомендуется использовать в качестве бизнес-объектов, в то время как на самом деле пользовательские типы позволяют хранить объекты в базе данных. Возможно, это предупреждение было вызвано тем, что компания Microsoft еще не считает интеграцию CLR полностью готовой для создания бизнес-объектов в базе данных, или тем, что пользовательские типы никогда не смогут обеспечить полноту поддержки таких бизнес-объектов, как клиенты или заказы, в базе данных. Чтобы получить ответ на этот вопрос, необходимо исследовать работу пользовательских типов вне SQL Server 2005.

Аналогично, пользовательские типы нельзя рассматривать как структуры массивов, несмотря на то, что в период бета-тестирования версии SQL Server 2005 существовало множество примеров, где эти типы были обычными массивами. Массив является коллекцией повторяющихся данных, которую можно сравнить со строкой таблицы базы данных. В общем случае массивы меньше таблиц, но имеют срок жизни, ограниченный текущим контекстом выполнения. Если базе данных нужны массивы, подумайте об использовании хранимых процедур или функций CLR, но не о пользовательских типах.

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

Планка для разработчиков Т-SQL и Visual Basic, создающих другие типы интеграции CLR, поднята не так высоко, как для тех, кто стремится “приручить” пользовательские типы. Исключением, пожалуй, являются пользовательские консолидации — далее будет показано, что они являются частным случаем пользовательских типов.

.Дополнительная Пользовательские консолидации являются еще одним типом интеграции CLR, информация введенной в SQL Server 2005.

Остальные типы интеграции CLR дублируют аналогичные объекты базы данных по форме и функциональности. В то же время для пользовательских типов параллель в SQL Server провести нельзя. Все разработчики должны понимать следующее:

?               каковы фундаментальные различия между классом и структурой;

?               какова связь между типами базы данных и типами .NET;

?               как поддерживать пустые значения базы данных в среде .NET Framework;

?               как отлаживать и поддерживать типы интеграции CLR в базе данных;

?               как зависимости пользовательских типов базы данных отличаются от других типов интеграции CLR;

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

Даже самым опытным программистам приложений необходимо провести адекватную экспертизу Т-SQL для функционального тестирования нового типа и — даже если было принято решение реализовать пользовательский тип как класс, а не структуру, — “прогнать” на примерах структуру и членов типа. И наоборот, опытным разработчикам Т-SQL необходимо понимать основы и концепции программирования в среде .NET Framework, от делегирования до публикации.

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии