Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#237<< #238 |
СОДЕРЖАНИЕ Репликация столбцов Identity в SQL Server - Настройка репликации
По материалам статьи Muthusamy Anantha Kumar:
Replicating Identity columns in SQL Server - Customizing replication
Репликация транзакций может использоваться для обеспечения высоких требований к доступности
системы, например, если Вы хотите, чтобы приложения обращались к серверу-подписчику, когда
нет связи с первичным сервером-издателем баз данных. В этом случае, одним из препятствий для
администраторов базы данных SQL Server при конфигурировании репликации являются таблицы со
столбцами identity.
В процессе настройки репликации будет получено следующее сообщение [См. рис. 1.0]. Это сообщение означает, что свойство identity не будет сохранено на подписчике. Кроме того, ограничения целостности так же будут потеряны. По существу, схема базы данных на подписчике будет выглядеть так:
Давайте добавим некоторые строки в базу данных публикации как показано ниже. [См. Рис. 1.1]
Чтобы удостовериться, что все строки реплицировались, давайте сделаем запрос к таблице на Издателе и Подписчике как показано ниже [См. Рис. 1.3 и 1.4].
Давайте пошагово пройдём установку свойств репликации и ограничений целостности на подписной базе данных, чтобы и база данных публикации и подписная база данных были идентичны, чтобы в случае отказа на издателе мы могли переключиться на подписчика. Остановите синхронизацию как показано ниже. [См. Рис. 1.5 и 1.6]
Используя Enterprise Manager, установите свойство identity у таблиц "Emp" и "Dept" на подписанной базе данных как показано ниже [См. Рис. 1.7 и 1.8]
Удалите индекс и добавьте необходимые ограничения как показано ниже.
Измените хранимую процедуру, созданную автоматически во время настройки репликации. При
настраивании репликации, SQL SERVER создает три хранимых процедуры. Одну для вставки, одну
для изменения и одну для удаления. В основном, мы изменяем значение параметров процедуры
вставки и процедуры изменения с "Set identity_insert on" на " Set identity_insert off"
Измените процедуру, используя код, приведенный ниже:
Процедура вставки для стаблицы "Emp" созданная SQL Server:
Процедура изменения для таблицы "Dept" созданная SQL Server:
Запустите Дистрибутора для синхронизации издателя и подписчика. [См. Рис. 1.9]
Измените, а затем удалите на издателе какие-нибудь данные, чтобы удостовериться, что эти действия реплицируются подписчику. [См. Рис. 2.0]
Если Вы настроите репликацию таким образом, то при отказе издателя, Вы можете переключить все приложения, обращающиеся к опубликованной базе данных, к базе данных подписчика, так как опубликованная база данных на издателе и подписная базы данных на подписчике полностью идентичны, включая свойство identity. Так как на подписной базе данных свойство identity доступно и все связи и ограничения созданы, то работа приложений будет непрерывна при обращении к базе данных подписчика. Обзор SQL Server 2005 для разработчика баз данных (продолжение)
По материалам статьи Matt Nunn, Microsoft Corporation:
An Overview of SQL Server 2005 for the Database Developer Содержание
Новая парадигма разработки баз данных Поддержка снапшотной изоляции SQL Server 2005 Beta 2 представляет новый уровень изоляции - снапшотную изоляцию. Снапшотная изоляция - это механизм управления версиями строк, в котором версии данных хранятся для чтения. Этот новый уровень изоляции обеспечивает следующий преимущества:
Например, блокировка может привести к возникновению блокировок между приложениями, которые одновременно читают и записывают одни и те же данные. Если транзакция изменяет строку, то другая транзакция уже не может прочитать эту строку, пока не завершится транзакция записи. При снапшотной изоляции транзакция может получить доступ к предыдущему значению строки. Уровень снапшотной изоляции поддерживается ADO, OLE DB, SQLOLEDB, Shape Provider, SQLODBC, OLE DB Managed Provider и SQL Managed Provider. Объекты управления SQL Объекты управления SQL (SQL Management Objects, SMO) - это объектная модель управления для SQL Server 2005. SMO отражает значительные улучшения в дизайне и архитектуре объектной модели управления SQL. Ее просто использовать, но она является сложной объектной моделью, основанной на управляемом коде .NET Framework. SMO - это главный инструмент для разработки приложений управления базами данных с использованием .NET Framework. SMO используется каждым диалоговым окном в SQL Server Management Studio, и любое действие по администрированию, которое Вы можете выполнить в SQL Server Management Studio, Вы также можете выполнить с помощью SMO. Новая объектная модель SMO и Microsoft Windows Management Instrumentation (WMI) API заменяют SQL-DMO. Где это возможно, SMO включает в себя для простоты использования такие же объекты, как и в SQL-DMO. Вы еще можете использовать SQL Server 2005 Beta 2 с SQL-DMO, но SQL-DMO не будет обновляться для управления специфическими особенностями SQL Server 2005. SMO и SQL-DMO Объектная модель SMO - это логическое продолжение проделанной в SQL-DMO работы. Модель SMO совместима с SQL-DMO и содержит множество тех же объектов. Где это возможно, сохраняется исходный дизайн SQL-DMO, но SMO имеет несколько дополнительных возможностей помимо возможностей SQL-DMO. Для максимального покрытия языка определения данных (data definition language, DDL) и административных возможностей SQL Server 2005 в SMO добавлено более 150 новых классов. Основными преимуществами модели SMO являются ее производительность и масштабируемость. SMO имеет кэшированную объектную модель, которая позволяет Вам изменять несколько свойств объекта перед сохранением изменений в SQL Server. В результате SMO производит меньше обращений к серверу и делает свои объекты более гибкими. SMO также имеет оптимизированную загрузку объектов. Это означает, что Вы можете загружать объекты частично или полностью. Вы можете быстро загружать множество объектов, не загружая все их свойства. В отличие от SQL-DMO, который имеет единственную корневую папку приложения, в которой содержатся ссылки на все созданные объекты на сервере, SMO позволяет Вам создать множество корневых папок для серверов без установки нового соединения. SMO выполняет расширенное многофазное скриптование в дополнение к стилевому скриптованию в SQL-DMO. Вы также можете переключать объект в режим захвата и захватывать любой DDL, который будет сгенерирован для этого объекта без внесения изменений на сервере. SQL-DMO также имеет управляемый объект, который упрощает интерфейс с WMI для поддержки мониторинга WMI и конфигурирования сервера через интерфейс объекта SMO. XML стал обычным форматом для хранения и передачи размеченной, структурированной или полуструктурированной информации. Примерами таких данных являются текст (размеченный для определения структуры документа и подчеркивания его отдельных частей), иерархические (структурированные) объекты и данные разной природы, которые могут менять свою структуру от одного элемента к другому (полуструктурированные). XML также является важным и широко распространенным стандартом для обмена данными между разными приложениями по локальным сетям и Internet. Microsoft SQL Server 2000 поддерживает использование XML через Microsoft SQLXML, что позволяет Вам конвертировать реляционные данные в формат XML и хранить данные XML в реляционных таблицах. Microsoft SQL Server 2005 Beta 2 расширяет эту функциональность, включив XML в типы данных, а также предоставив новый язык запросов для документов XML, позволяя Вам выполнять модификации над этими документами. Для лучшей поддержки нужд пользователей, работающих с данными XML, был введен новый тип данных - XML. В этом типе есть методы - query(), exist(), value(), nodes() и modify() - которые являются важным подмножеством спецификации XML Query (XQuery) последней редакции. Фактически эта спецификация была расширена в SQL Server 2005 Beta 2 путем добавления конструкций модификации данных XML. Для поддержки типа данных XML были добавлены ключевые слова для регистрации и управления схемами XML. Также были сделаны изменения в FOR XML и OPENXML, которые были добавлены в SQL Server 2000 для генерации XML из реляционных данных, и наоборот. Теперь они расширены поддержкой типа данных XML. Тип данных XML XML может моделировать сложные данные вместо того, чтобы ограничиваться скалярными значениями, которые поддерживает SQL Server. Поэтому встроенные строковые типы данных, такие, как char или varchar, не подходят для полного и эффективного использования функциональности и многих преимуществ XML. Например, если XML хранится в строке, Вы можете вставлять или выбирать целый документ, или даже получать из него некоторые части, но Вы не можете делать запросы по содержимому самого документа. Обеспечивая поддержку XML, SQL Server 2005 позволяет Вам делать запросы к части документа XML, проверять, что документ соответствует схеме XML, и даже изменять содержимое документа XML прямо в столбце. Это также позволяет объединить традиционные, реляционные данные с данными в неструктурированных или полуструктурированных документах XML, что невозможно в SQL Server 2000. В SQL Server 2005 данные XML хранятся в виде больших двоичных объектов (binary large objects, BLOBs) во внутреннем представлении, что позволяет проводить эффективный анализ содержимого и выполнять некоторое сжатие данных. Коллекция схем XML может быть ассоциирована со столбцом типа XML. Это обеспечивает проверку для ограничений, вставки и обновлений, и типизацию значений в хранимых данных XML, как и оптимизацию хранения данных и обработки запросов. SQL Server 2005 также предоставляет несколько команд DDL для управления схемами на сервере. Получение и запись XML SQL Server 2005 Beta 2 также включает некоторое расширение функциональности FOR XML и OPENXML, которые впервые появились в SQL Server 2000. FOR XML Команда FOR XML в SQL Server 2000 не дает возможности сохранить результаты XML на сервере. Вы не можете сохранить результаты XML в таблице (без возвращения их к клиенту, конечно) или переменной. SQL Server 2005 Beta 2 расширяет FOR XML, добавив в него поддержку типа данных XML и дав возможность сохранять XML на сервере. Это делается путем добавления директивы TYPE в FOR XML. Например, результаты команды SELECT...FOR XML TYPE создают экземпляр данных XML, который может быть сохранен в локальной переменной XML или использован в последующей команде INSERT для заполнения столбца XML. Опция PATH определяет путь в дереве XML, где должно появиться значение столбца. Опции TYPE и PATH, включенные в FOR XML, упрощают создание сложного XML и более удобны в использовании, чем запросы FOR XML EXPLICIT. FOR XML также работает со столбцами XML в SQL Server 2005 Beta 2. OPENXML SQL Server 2000 в основном рассматривал выражение FOR XML и функцию набора строк OPENXML в качестве противоположностей. Действительно, с помощью FOR XML Вы можете получать реляционные данные в виде XML; с помощью OPENXML Вы можете превращать XML в реляционные данные, для которых Вы можете создавать join или выполнять запросы. SQL Server 2005 Beta 2 расширяет функциональность OPENXML. Кроме типа данных XML также теперь поддерживаются нескольких новых типов данных, как, например, пользовательские типы (user-defined types, UDT). Вы можете использовать их в выражении OPENXML WITH, а также можете передавать экземпляр XML в sp_preparedocument. Поддержка XQuery Язык запросов XML, или XQuery, является развитым и гибким языком, который оптимизирован выполнять запросы над всеми типами данных XML. Используя XQuery, Вы можете выполнять запросы по переменным и столбцам XML, используя методы XML. XQuery развивает World Wide Web Consortium (W3C), как и многие стандарты XML. XQuery развился из языка запросов Quilt, который сам базировался на XML Path Language (XPath) версии 1.0, XQL и SQL. Он также содержит в себе XPath 2.0 как подмножество. Поэтому если Вы знаете XPath 1.0, то Вам не придется учить абсолютно новый язык запросов. Однако в XQuery существует множество возможностей, которых не было в XPath 1.0, таких, как типизирование, специальные функции, лучшая поддержка итерации, сортировки результатов и моделирования. SQL Server 2005 Beta 2 поставляется с большими возможностями XQuery, что позволяет выполнять манипуляции с объектами XML на уровне данных. SQL Server поддерживает статически типизированное подмножество XQuery 1.0 Working Draft от 15 ноября 2003. Расширения DML Спецификация XQuery в настоящее время содержит синтаксис и семантику для выполнения запросов, но не модификации документов XML. Язык модификации данных XML (XML Data Modification Language, DML) является расширением возможностей XQuery по модификации данных. SQL Server 2005 Beta 2 добавляет три ключевых слова: insert, update и delete. Каждое из этих ключевых слов используется в методе modify() типа данных XML. ПРОДОЛЖЕНИЕ СЛЕДУЕТ Статьи на русском языке
Некоторые мысли по поводу оптимального выбора кластерного индекса в MS SQL 2000
SQL Server 2000 hotfix update for SQL Server 2000 Service Pack 3 and 3a Самые популярные темы недели
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
BDE and LinkedServers Приглашаем вас принять участие в бесплатном семинаре «Дни разработчика Весна'05», который состоится в рамках серии семинаров «Дни Microsoft». Даты проведения «Дней разработчика»
Программа семинаров
Регистрация на семинар |
Вопросы, предложения, коментарии, замечания, критику и т.п. оставляйте Виталию Степаненко и Александру Гладченко в форуме: Обсуждение рассылки
|
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.winsoft.sqlhelpyouself |
Отписаться |
В избранное | ||