Отправляет email-рассылки с помощью сервиса Sendsay

MS SQL Server

  Все выпуски  

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


Служба Рассылок Subscribe.Ru

#068<<  #069

СОВЕТЫ

Установка Merge репликации: Пошаговое руководство
По материалам статьи Alexander Chigrik на SWYNK.COM: " Setting Up Merge Replication: A Step by Step Guide"

В этой статье рассматриваются некоторые важные темы организации репликации Microsoft SQL Server: топология репликации, типы и агенты репликации. Также обсуждается Merge репликация: как создать необходимые условия для этого типа репликации и как резервировать и восстановить базы данных при таком сценарии репликации. Во время иллюстрации этой концепции, предлагается пошаговое руководство по установке процесса Merge репликации.
Поскольку это только демонстрационный пример, автор использовал только один сервер для репликации данных между publisher и subscriber, а также для размещения базы данных distributor, все они постоянно находились на одной и той же машине.
Репликация - это процесс, посредством которого данные копируются между базами данных, находящимися на том же самом сервере или на других серверах, связанных через LAN, WAN или Internet. Репликация Microsoft SQL Server использует метафоры: publisher, distributor и subscriber.
Publisher - сервер или база данных, которая посылает данные на другой сервер или в другую базу данных.
Subscriber - сервер или база данных, которая получает данные от другого сервера или другой базы данных.
Distributor - сервер, который управляет потоком данных через систему репликации. Этот сервер содержит специализированную базу данных: Distribution database.
Publisher содержит публикацию/публикации. Публикация - это совокупность одной или более статей, которые посылаются серверу подписчику (subscriber) или базе данных. Статья (Article) - основной модуль репликации и это может быть таблица или подмножество таблицы. Подписка (subscriptions) - это группа данных, которые сервер или база данных получает. Существует push и pull subscriptions. Push subscription - это подписка, когда сервер издатель будет периодически помещать транзакции на подписавшиеся сервера или базы данных. Pull subscription - это подписка, когда подписавшийся сервер будет периодически соединяться с тиражируемой информацией и перемещать её из Distribution database. Distribution database - это системная база данных, которая хранится на дистрибуторе (distributor) и не содержит никаких пользовательских таблиц. Эта база данных используется для хранения снимков заданий и всех транзакций, ожидающих распределения подписчикам.

Топология репликации

Microsoft SQL Server поддерживает следующие топологии репликации:
- Центральный publisher
- Центральный subscriber
- Центральный publisher с отдаленным distributor
- Центральный distributor
- Издающий subscriber

Центральный publisher
Это одна из наиболее используемых топологий репликации. В этом сценарии, один сервер исполняет роли publisher и distributor, а другой сервер/серверы определяется, как подписчик/подписчики.
Центральный subscriber
Это обычная топология складирования данных. Несколько серверов или баз данных копируют свои данные на центральный сервер в одну или более базы данных.
Центральный publisher с отдаленным distributor
В этой топологии база Distribution постоянно находится на сервере, отличном от сервера, где располагается publisher. Эта топология используется для повышения эффективности, когда объём репликации увеличивается, а также, если сервер или сетевые ресурсы ограничены. Это уменьшает загрузку publisher, но увеличивает сетевой трафик. Эта топология требует отдельных инсталляций Microsoft SQL Server для publisher и для distributor.
Центральный distributor
В этой топологии, несколько издателей используют только один distributor, который постоянно находится на отличном от издателей сервере. Это одна из наиболее редко используемой топологии репликации, потому что имеет уязвимую точку (на сервере с центральным distributor), и если сервер distributor потерпит неудачу, сценарий репликации будет разрушен полностью.
Издающий subscriber
Это топология двойственной роли. В ней, два сервера издают те же самые данные. Сервер издатель посылает данные на subscriber, и затем subscriber издает данные на любе число подписчиков. Это полезно когда publisher должен послать данные подписчикам по медленной или дорогой линии связи.

Типы репликации

Microsoft SQL Server 7.0/2000 поддерживает следующие виды репликации:
- Snapshot
- Transactional
- Merge

Snapshot репликация является самой простой. При этом, все копируемые данные (точная копия) будут копироваться из базы данных publisher в базу(ы) данных subscriber/subscribers на периодической основе. Snapshot репликация является лучшим методом копирования данных, которые нечасто изменяется и когда размер копируемых данных не очень большой.
При Transactional репликации, SQL Server фиксирует (делает моментальные снимки) все изменения, которые были сделаны в статье, и сохраняет, как: INSERT, UPDATE и DELETE инструкции в базе Distribution. Эти изменения посылаются подписчикам от Distribution и применяются к расположенным в них данным.. Transactional репликации лучше использовать, когда копируемые данные часто изменяются или когда размер копируемых данных достаточно велик и нет необходимости поддержать автономные изменения реплицируемых данных относительно publisher и относительно subscriber.
Merge репликация является наиболее трудным типом репликации. Она предоставляет возможность автономных изменений реплицируемых данных и на publisher и на subscriber. При Merge репликации, SQL Server фиксирует все накопившиеся изменения не только в источнике данных, но и целевых базах данных, и урегулирует конфликты согласно правилам, которые Вы предварительно конфигурируете, или посредством определённого Вами resolver-ра. Merge репликацию лучше использовать, когда Вы хотите обеспечить поддержку автономных изменений реплицируемых данных относительно publisher и относительно subscriber.

Агенты Репликации

Microsoft SQL Server 7.0/2000 поддерживает следующих агентов репликации:
- Snapshot Agent
- Log Reader Agent
- Distribution Agent
- Merge Agent

Snapshot Agent - это агент репликации, который создаёт файлы снимков, хранит снимки на distributor и производит запись информации о состоянии синхронизации в Distribution database. Snapshot Agent используется во всех типах репликации (Snapshot, Transactional и Merge) и может управляться из SQL Server Enterprise Manager.
Log Reader Agent - это агент репликации, который перемещает транзакции, отмеченные для репликации из transaction log, находящегося на publisher, в Distribution database. Этот агент репликации не используется в Snapshot репликации.
Distribution Agent - это агент репликации, который перемещает обрабатывающие снимки задания из Distribution database к подписчикам и перемещает все транзакции, ожидающие распределения на подписчиков. Distribution Agent используется в Snapshot и Transactional репликациях и может управляться с помощью SQL Server Enterprise Manager.
Merge Agent - это агент репликации, который применяет первоначальные, обрабатывающие снимки задания по таблицам базы данных publication на подписчиках, и потом объединяет возможные последующие изменения данных, которые произошли после создания первоначального снимка. Merge Agent используется только в Merge репликации.

Проверка необходимых условий

Проверьте соблюдение следующих необходимых условий для установки Merge репликации:
1. Учетная запись Localsystem не имеет никакого доступа к ресурсам сети. Поэтому, если Вы хотите установить репликацию, Вы должны изменить учетную запись, от имени которой стартуют: сервисы MSSQLServer и SQLServerAgent, на учетную запись домена Windows NT/Windows 2000. Для этих операционных систем, Вы можете создавать учётную запись Windows NT/Windows 2000 и включить её локальную группу Administrators, в группы пользователей домена (Domain Users) и предоставить набор разрешение для "Log in as a service". Windows 9x не поддерживает сервисы Windows NT, поэтому Вы не сможете создать подобную учетную запись.
2. Только члены роли сервера sysadmin могут устанавливать и конфигурировать репликацию, так если Вы не имеете эти права, Вы не можете устанавливать репликацию.
3. Не забывайте запускать сервис SQLServerAgent (и, конечно, службу MSSQLServer).
4. Вы должны выделить адекватное дисковое пространство для Distribution database.
5. Вы должны выделить адекватное дисковое пространство для баз данных подписчиков и publisher. SQL Server 7.0/2000 использует столбец uniqueidentifier для идентификации каждой строки в течение Merge репликации, причём, если ваша таблица не имеет столбца uniqueidentifier со свойством ROWGUIDCOL, Microsoft SQL Server 7.0/2000 сам добавит этот столбец к таблице. Поэтому, Вы должны выделить дополнительное дисковое пространство, необходимое для хранения ваших данных.
6. Вы не можете копировать в одиночку таблицу с foreign key constraints; Вы должны включить в публикацию все связанные таблицы.
7. Вы должны обеспечить, что бы сервер, который реплицируется, был определен как удалённый сервер.

Пошаговый пример настройки Merge репликации

В этом примере, я буду использовать только один сервер, который будет участвовать в репликации данных, как publisher, subscriber и обслуживать базу данных distributor. Я буду использовать Merge репликацию с push подпиской. Чтобы устанавливать Merge репликацию, Вы можете использовать GUI интерфейс SQL Server Enterprise Manager. Кроме того, имея права администратора можно выполнять системные хранимые процедуры SQL Server. Но поскольку первый путь проще и более понятен, я буду использовать именно его.

ШАГ - 1

Прежде всего, Вы должны зарегистрировать новый удаленный сервер, который нужно реплицировать. Поскольку я использую в репликации только один сервер, я не должен этого делать.
На этом шаге, с помощью Enterprise Manager, Вы должны определить новый Remote server, открыв папку Security вашей базы данных. В этом примере, я буду реплицировать данные из базы данных pubs в базу данных pubs _copy.
Для этого, вторым шагом, выберете пункт меню Enterprise Manager "Tools", а в нём пункт "Replication" и далее "Configure Publishing, Subscribers, and Distribution...". Вы попадёте в окно - приглашение Publishing and Distribution Wizard. Щёлкнув кнопку "Next", вы попадёте в следующее окно, назначение которого в определении дистрибутора (distributor). В нашем случае мы оставляем предлагаемую по умолчанию установку, поскольку сервер только один.
В следующем окне, Вы можете настроить запуск сервиса SQLServerAgent автоматически, при включении или перезагрузке компьютера, отметив галочкой пункт: "Yes, configure the SQL Server Agent service to start automatically".
После нажатия кнопки "Next", появится следующее окно (Specify snapshot folder), в котором Вы должны определить папку для снимков, используя полностью квалифицированный сетевой путь. При этом, сервер может запросить у Вас подтверждения осознанности этой операции.
Далее, нажав в очередной раз кнопку "Next", Вы можете приступить к настройке публикации и параметров дистрибутора, или выбрать эти параметры по умолчанию (окно: Customize the Configuration). Для параметров по умолчанию нужно выбрать ответ: "No, use the following default settings".
Нажав после этого кнопку "Next", Вы получите окно сообщения сервера о том, что настройка публикации и дистрибутора может быть завершена при нажатии кнопки "Finish". В то же время, Вы ещё будете иметь возможность вернуться к устанавливаемым в предыдущих окнах параметрам, воспользовавшись кнопкой "Back".
После нажатия кнопки "Finish", появится окно статистики исполнения шагов применения Ваших настроек и закончится этот процесс должен выводом на экран окна успешности определения Вашего сервера, как дистрибутора. вашей базы данных. Microsoft SQL Server создаал Distribution database, определил публикацию и установил distributor-а. После нажатия кнопки "OK", появится сообщение о том, что в дерево объектов Вашего сервера (в Enterprise Manager) был добавлен монитор репликации. После этого можно нажать кнопку "Close".

ШАГ - 2

Теперь мы готовы начать создание публикаций и статей.
Для этого, выбираем в горизонтальном меню Enterprise Manager пункт "Tools", в нём пункт "Replication", а затем "Create and Manage Publications" Вы увидите диалоговое окно Manage publications, где нужно выбрать базу данных pubs, и щелкнуть кнопку "Create Publication". Вы попадёте в окно - приглашение "Create Publication wizard", после нажатия кнопки "Next" в котором, Вам будет предложено выбрать публикуемую базу данных.

Замечание автора перевода: если Вы в качестве дистрибутора выбрали SQL Server 7.0, а реплицировать собираетесь SQL Server 2000, у Вас появится не это окно, а окно, предлагающее выбрать другой сервер для дистрибутора, т.к. такой вариант репликации не поддерживается.. Далее процесс настройки дистрибутора будет схож с описанным выше.

Выберите базу данных pubs, и после нажатия кнопки "Next", выбираете Merge publication, опять же нажав после этого кнопку "Next" в окне "Select Publication Type". В следующем окне (Select Subscribers Types), выделите всё из имеющихся там типы подписчиков, от которых ожидается оформление подписки на эту публикацию (publication) и опять щёлкните кнопкой "Next". В окне "Specify Articles" поставьте галочку в чекбоксе "Publish All", что приведёт к изданию всех таблиц базы данных pubs и щёлкните кнопкой "Next".
В окне "Article Issues", лучше согласится с предлагаемым по умолчанию вариантом добавления столбца uniqueidentifier во всех таблицах базы данных "pubs", а не второй вариант, устанавливающий опцию NOT FOR REPLICATION на столбец IDENTITY содержащих его таблиц. Для этого достаточно, не внося изменений, сразу нажать кнопку "Next". В следующем окне присвойте имя "pubs_article" для вновь созданной публикации и нажмите "Next". В следующем окне "Customize the Properties of the Publication", Вы можете определить фильтры для данных, но в этом примере, мы не будем использовать никаких фильтров. Для нас сгодится вариант "No, create the publication as specified", после выбора которого можно нажать "Next" и "Finish" в следующем окне, чтобы завершить процедуру создания публикации. Вам на экран должно быть выведено сообщение о том, что публикация "pubs_article" была успешно создана, после чего можно нажать "Close".

ШАГ - 3

Теперь Вы можете создавать подписку. Щелкните кнопку "Push New Subscription" в окне "Create and Manage Publications", которое появилось на экране после завершения создания публикации. Будет запущен "Push Subscription Wizard", в следующем окне которого (Coose Subscribers) нужно щёлкнуть по "SQL Server Group" выделить всех подписчиков в имеющихся у меня группах CHIGRIK и CHIGRIK\SQL2000, после чего - "Next".
Далее, выберите в окне "Coose Destination Database) базу данных "pubs_copy", в качестве подписываемой базы данных, и щелкните кнопку Next. В следующем окне "Set Merge Agent Shedule",определите, как часто Distribution Agent будет обновлять подписку (в моём примере, каждый день, каждые 30 минут между 9:00:00 и 18:00:00) и нажмите "Next". Задайте "Start the Merge Agent to initialize the subscription immediately" в следующем окне "Initialize Subscription" и "Next". Теперь Вы можете установить приоритет подписки, который определяет победителя при разрешении противоречивых изменений данных. В нашем примере, мы выберем "Use the Publisher as a proxy for the Subscriber when resolving conflicts" и нажмём таки "Next".
Для запуска SQLServerAgent, щелкните "Next" в следующем окне "Start Required Services", что необходимо для последующих операций. После этого, Вы попадёте в окно завершения работы мастера "Push Subscription Wizard", где также можно подтвердить завершение подписки с параметрами, которые Вы определили в предыдущих шагах, нажатием кнопки "Finish". Появится окно отчёта об исполнении вашей конфигурации, по завершении которых можно нажать кнопку "Close". Далее, можно закрыть окно "Create and Manage Publications…", щёлкнув по "Close".

ШАГ - 4

Последний шаг, который рекомендуется сделать при установке Merge репликации, предполагает создание сценария конфигурации Ваших текущих параметров репликации. Это может быть полезно при восстановлении этих параметров в случае отказа сервера. Для этого нужно выбрать в пункте "Tools", пункт из выпадающего меню "Replication", а в его окошке пункт "Generate SQL Script...".

Стратегии резервирования и восстановления

Резервное копирование и восстановление отличаются для каждого из типов репликации. Здесь, я хочу описать стратегии резервирования и восстановления для Merge репликации. Поскольку Merge репликации более сложная, чем Snapshot или Transactional репликации, и обычно используется, когда Вы хотите обновить данные относительно и publisher и подписчиков, Вам придётся потратить большее времени и внимания на планирование стратегий резервирования и восстановления. Есть четыре главных стратегии поддержки и восстановления Merge репликации:

- Резервирование publisher, master и model. баз данных.
- Резервирование publisher, distributor, master и model баз данных.
- Резервирование publisher, subscriber, master и model баз данных.
- Резервирование publisher, distributor, subscriber, master и model баз данных.

Резервирование publisher, master и model. баз данных - это самая простая стратегия. Эта стратегия имеет как преимущества, так и недостатки. Преимуществом является то, что задействуется наименьшее количество ресурсов памяти и не требуется координации резервной копии с резервными копиями других серверов. Главный недостаток этой стратегии - это то, что придётся заново устанавливать репликацию в случае отказа distributor или publisher. В этой стратегии, Вы должны резервировать базу данных publication после её изменений, после добавления новой публикации, или всякий раз, когда сделаны изменения в копируемой схеме объектов (например, добавлен или удалён столбец).
Резервирование publisher, distributor, master и model баз данных. - эта стратегия используется реже, чем предыдущая, потому что в большинстве случаев, нет необходимости восстановить Distribution database, при восстановлении из резервной копии базы данных publication. Это обусловлено тем, что Distribution database не хранит никаких данных, используемых при отслеживании изменений, и не подразумевает временное хранение данных. Главный недостаток этой стратегии - это то, что Вы должны резервировать базы данных publisher и distributor практически одновременно. Это может отвлекать значительные вычислительные ресурсы и память, даже больше, чем первая стратегия.
Резервирование publisher, subscriber, master и model баз данных. используются, когда некоторые изменения могут быть сделаны на subscriber, и Вам нужно, что бы эти изменения были синхронизированы с базой данных publication.
Резервирование publisher, distributor, subscriber, master и model баз данных - это наиболее сложная стратегия. Главное преимущество этой стратегии в том, что в случае отказа publisher, distributor или subscriber, Вы можете быстро восстановить базу данных без того, чтобы переустанавливать репликацию с самого начала. Недостаток этой стратегии в том, что Вы должны резервировать базы данных publisher и distributor максимально одновременно. Эта стратегия также требует наиболее значительного отвлечения вычислительных ресурсов и памяти.
Для каждой из стратегий Вы должны резервировать базы данных msdb и master на publisher, distributor и subscriber. База данных msdb используется SQL Server Agent для планирования сообщений и заданий, а база данных master - главная системная база данных, содержащая записи для каждого subscriber, для каждой учетной записи и для системных параметров и настроек конфигурации и так далее.
Примечание: Настоятельно рекомендую Вам сохранять текущие сценарии настройки репликации. Это может быть полезно при восстановлении репликации в случае отказа сервера.

Литература
1. SQL Server Books Online.
2. How Merge Replication Works
3. Planning for Merge Replication
4. Enhancing Merge Replication Performance
5. Merge Replication
6. Strategies for Backing Up and Restoring Merge Replication
7. Replication Types

Репликация транзакций, выполняющаяся в Non-Continous режиме
По материалам статьи Andy Warren на SWYNK.COM: "Transactional Replication - Running in Non-Continous Mode"

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

Push Subscription Wizard/Set Distribution Agent Sedule/Using the following shedule:

Я предполагаю, что большинство подписчиков используют непрерывную работу этого агента, главным образом потому, что этот вариант предлагается по умолчанию. Изменение этой опции позволяет осуществлять репликацию по расписанию, что уменьшает загрузку сервера, пока агент находится в состоянии ожидания.
Интересно, что независимо от Вашего выбора, log reader будет работать в непрерывном режиме. Представленная ниже командная строка взята из задания планировщика подписки:

-Publisher [ANDY] -PublisherDB [DEADLOCK] -Distributor [ANDY] -DistributorSecurityMode 1 -Continuous

Обратите внимание на параметр '-Continuous'. Это означает, что после того, когда Вы определили подписку, чтобы распределить транзакции подписчику, log reader не перестанет контролировать журнал транзакций и записывать транзакции базы данных дистрибутора (издателя). Каждый log reader агент (logread.exe, один на публикацию) использует приблизительно 1700КБ памяти. Это - не большое отвлечение ресурсов, но высвобождение их положительно скажется на распределение памяти и уменьшит загрузку сервера.
При запуске log reader потери транзакций не происходит. Даже если зарегистрированные в журнале записи будут усекаться в результате прохождения контрольной точки, транзакции относящиеся к репликации остаются в журнале, пока log reader не сможет их обработать.
Если Вы можете позволить какое то время распределяемым транзакциям подождать, просто отредактируйте каждое задание для log reader, и удалите '-Continuous' в конце второго шага. После этого можете проследить за вашим log reader и агентом дистрибуции, которые уже не будут выполняться непрерывно. В идеале Вам нужно откорректировать график так, чтобы log reader выполнялись поочерёдно, один за другим. Таким образом Вы добьетесь самой низкой загрузки сервера при сохранении обслуживания ваших подписчиков, модифицируемых довольно часто но не немедленно.

Новости проекта SQL.RU

Есть хорошая новость - скоро будет выходить печатный вариант журнала SQL Server Online, пока в виде приложения к Windows 2000. Распространяться он будет только по подписке. Первое время содержание печатного и cетевого вариантов не будут пересекаться, но приблизительно через квартал статьи, напечатанные в журнале, будут выкладываться в сеть, дополняя сетевую версию журнала.

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

Понятие "Качество данных" и его значение для информационных технологий
Автор: по материалам DM Review.
Качество данных (или качество информации) можно определять по-разному. В данном случае мы будем определять это понятие как информацию, полностью соответствующую требованиям потребителя. Более детально это понятие можно определить как процесс компоновки информации (включающей имена, адреса реальной и электронной почты, телефонные номера, коды комплектующих, SSN и SKU, в логически согласованном порядке), очистки и усовершенствования данных, а также объединения соответствующих записей с целью устранения дублирования элементов...[подробнее]
Размерность программного пространства и модель триггера
Автор: Беляев М.В. "Судя по всему, на программирование надвигается новый переворот...", - писал известный компьютерный публицист Рубен Герр (PC MAGAZINE/RUSSIAN EDITION, 10/98) в рецензии на книгу А. А. Шалыто "SWITCH-технология. Алгоритмизация и программирование задач логического управления". Пока это пророчество не сбылось, но парадигма автоматного программирования (АП) по-прежнему подает надежды и продолжает привлекать все новых сторонников. В последнее время отечественные адепты АП "тусуются" на сайте www.softcraft.ru. Знакомство с материалами этого сайта навело меня на размышления по поводу автоматного программирования, продуктом которых стала настоящая заметка. Я разделяю оптимизм сторонников автоматной парадигмы, но хотел бы развеять некоторые мифы, вызревшие под сенью этого благородного древа...[подробнее]
Администрирование SQL Server и дисковое пространство
Автор: N/A.
Администратор SQL Server отвечает за использование дискового пространства базами данных. Он обязан, с одной стороны, обеспечить это пространство, с другой – контролировать его использование. Естественно, возникает необходимость в технологии и инструментах для управления механизмом выделения дискового пространства. С помощью таких инструментов администратор определяет, сколько и когда нужно добавить в базу дискового пространства, и при необходимости высвобождает избыточное пространство. В SQL Server 2000 предусмотрены средства для решения этой задачи как автоматически, так и вручную. В предлагаемой статье я хочу дать краткий анализ имеющихся средств и перечислить дополнительные возможности, непосредственно не предназначенные для управления файлами базы данных. Статья будет полезна тем администраторам, которые хотят контролировать использование дискового пространства не только посредством консоли Enterprise Manager, но и с помощью дополнительных средств...[подробнее]
.NET по шагам
Автор: Каев Артем.
Первые шаги...[подробнее]
Пять основных "загрязнителей" унаследованных данных, порождающих проблемы при перемещении данных в Хранилище
Автор: Vality Technology, Inc..
Если необходимо переписать OLTP-приложение или наполнить унаследованными данными новую информационную систему, следует обязательно учесть описанные ниже "загрязнители" данных. Без предварительного реинжениринга данных, защищающего от таких загрязнений, пользователям придется столкнуться с ошибочной и недостаточной информацией по наиболее важным клиентам и бизнес-объектам вашей организации...[подробнее]
Crystal Reports 8.0 — бизнес-информация во всемирной паутине
Автор: Денис Матвеев.
Генератор отчетов Crystal Reports предоставляет разработчикам огромные возможности по созданию различных документов — от самых простых до сложнейших отчетов, работающих с корпоративными данными, которые хранятся в любом формате. Кроме того, для интеграции отчетности с корпоративными приложениями существует множество механизмов, обеспечивающих встраивание отчетов в конечные приложения. Одним из механизмов распространения отчетов является набор компонентов, позволяющий размещать документы в Интернете быстро и без применения сложного кодирования...[подробнее]
Поставщики OLAP-инструментов помогают пользователям создавать приложения
Автор: N/A.
Мы неоднократно писали о том, что в настоящее время компании, независимо от области их деятельности, приходят к выводу о существенных преимуществах пакетных приложений и универсальных инструментов над создаваемыми на заказ программами. Динамика конкуренции, изменения законодательной базы, колебания спроса и цен, а также многое другое все чаще и чаще ставит в тупик заказные приложения, не способные обрабатывать незапланированные запросы. В таких системах, несмотря на рационализацию процесса сбора и хранения информации, доступ к ней ограничивается заранее заданным набором отчетов и практически исключается для случаев сложных структур данных...[подробнее]
Как повысить производительность SQL Server
Автор: Кэлен Дилани.
Сегодня я хочу предложить читателям 10 рекомендаций по настройке, которые помогут увеличить производительность SQL Server на 90%....[подробнее]
Хранение и поиск текстов в базах данных SQL Server 2000
Автор: Татьяна Крамарская.
В предлагаемой статье кратко описаны особенности хранения и поиска текстовых данных в базах SQL Server 2000. Она адресована администраторам и разработчикам, которые планируют реализовать такой тип хранения....[подробнее]
Проблема создания современных бизнес-приложений СУБД
Автор: Андреев А. М., Березкин Д. В., Кантонист...
Одна из важнейших целей современного информационного бизнеса - создание информационной системы, охватывающей виртуальное предприятие с доступом к архиву документов, управление бизнес-процессами, получение адекватной инфомации для поддержки принятия решений, планирование, мониторинг контактов с внешним миром. Абсолютно обязательно условие обеспечить доступ работника к ресурсам виртуального предприятия независимо от того, где он находится - на рабочем месте, дома, в командировке. Такая система, помимо всего прочего, должна обладать простыми, но эффективными средствами администрирования...[подробнее]
Загрузка XML в объект
Автор: Андрей Чудин.
После того, как мы рассмотрели возможность превода данных объекта в XML следует перейти к следующей задаче. Задача состоит в реализации обратного процесса, а именно - загрузки XML данных в объект...[подробнее]
Crystal Reports 8.0 — бизнес-информация во всемирной паутине
Автор: Денис Матвеев.
Очень часто корпоративные пользователи хотят иметь возможность не только работать с Web-приложениями, но и получать доступ к различным отчетным формам, не покидая браузер. Существует огромное количество технологий создания подобных отчетов, но в ряде случаев либо получаемые документы не полностью удовлетворяют предъявляемым к ним требованиям, либо процесс их создания слишком трудоемкий и занимает много времени, что мешает быстрой разработке систем, применяющих такие отчеты. Поэтому необходим инструмент, который позволит быстро создавать документы любой сложности, работающие с данными из корпоративных источников информации, и распространять их без серьезных затрат на программирование. Одним из средств решения таких задач является профессиональный генератор отчетов Crystal Reports версии 8.0 производства компании Crystal Decisions (ранее Seagate Software), который стал стандартом де-факто для многих корпоративных систем обработки и хранения информации...[подробнее]
Centura/Gupta Roadmap - Product Plan
Автор: Interface Ltd.
Целью этого обзора является анализ сравнительных характеристик подходов Roadmap и Product Plan, а также обеспечение своевременного обновления информации о каждом из них...[подробнее]
Выбирают из того, что стоит на столе
Автор: Interface Ltd.
Практические советы по выбору решений OLAP дают специалисты Учебно-консалтингового центра Interface Ltd...[подробнее]
SQL Server 2000 - дополнительные возможности для вашего бизнеса
Автор: Корпорация Microsoft.
Полное описание продукта для потенциальных покупателей....[подробнее]
Некоторые правила построения баз данных
Автор: Сергей Катков.
В предыдущих уроках мы имели возможность убедиться, что "не боги горшки обжигают", т.е. ничего нет сложного в том, чтобы создать свою таблицу, или несколько таблиц, задать ключевые поля, связи между ними и получить, таким образом, базу данных. Не буду никого разубеждать, это действительно не сложно. Вот только база базе рознь. От того, как вы продумаете структуры данных будет многое зависеть. Это касается программирования вообще, а не только баз данных, но здесь это проявляется сильнее всего. И чем больше даных в вашей базе, тем серьезнее надо отнестись к проработке ее структуры. Существуют стандартные приемы, методы, следование которым позволяет получить хороший результат. Наиболее известными, пожалуй, являются нормализация и индексирование...[подробнее]
Понятия базы данных, отношения, ключи и др.
Автор: Сергей Катков.
Для начала нам следут разобраться с понятиями - весьма модная нынче тема. Я имею ввиду разборки и понятия. ;) Нам следует убедиться, что мы будем правильно понимать друг друга и называть одинаковые вещи одинаковыми именами. Поэтому определимся с терминами. В нашем случае мы будем рассматривать упрощенный набор терминов. Вообще, реляционная теория в чистом виде содержит очень много терминов и понятий. Но в реальных системах управления базами данных (СУБД) никто никогда ее полностью не придерживался. Всегда что-то упрощается, что-то добавляется свое. Так как мы рассматриваем не голую теорию, а реально работающие Delhi, или MS SQL Server, то нас интересует теория, которая относится именно к ним. Для желающих изучить теорию реляционных баз данных в чистом виде могу порекомендовать книжку "Введение в системы баз данных." Автор К. Дж. Дейт...[подробнее]
XML и безопасность
Автор: Пит Линдстрем.
Документы XML, безусловно, следует ограждать от любопытных глаз и «дурного» влияния Internet, однако язык XML сам может стать средством обеспечения безопасности для многих приложений...[подробнее]
Очистка данных: проблемы и актуальные подходы
Автор: Erhard Ram,Hong Hai Do.
Очистка данных (data cleaning, data cleansing или scrubbing) занимается выявлением и удалением ошибок и несоответствий в данных с целью улучшения качества данных. Проблемы с качеством встречаются в отдельных наборах данных - таких, как файлы и базы данных, - например, как результат ошибок при вводе, утери информации и других загрязнений данных. Когда интеграции подлежит множество источников данных, например - в Хранилищах, интегрированных системах баз данных или глобальных информационных Интернет-системах, - необходимость в очистке данных существенно возрастает. Это происходит оттого, что источники часто содержат разрозненные данные в различном представлении. Для обеспечения доступа к точным и согласованным данным необходима консолидация различных представлений данных и исключение дублирующейся информации...[подробнее]
Обзор генераторов отчетов : Анализ от TPrinter до Crystal Reports
Автор: Деннис П. Батлер.
Разработка и реализация отчетов для приложений обычно рассматривается как одна из многих связанных с разработкой задач. Кто захочет тратить много времени на форматирования, тестирования и работу с целым рядом отчетов, когда есть более интересные идеи, которые могут быть реализованы в продукте? Хотя это и не самая любимая часть процесса разработки приложения, однако часто критичным оказывается интерфейс между данными, загружаемыми приложением, и ее пользователем. Многоярусные, многошаговые, многоязычные приложения работающие под многочисленными операционными системами на разных континентах не выполнят свои задачи, если конечный пользователь, нажав кнопу "Print.." не удовлетворится видом отчета и выкинет его в мусорную корзину...[подробнее]

Новые технические статьи Microsoft

FIX: Inconsistent Results Reported by TOP N Using Full-Text CONTAINSTABLE (Q309450)
FIX: Use of the Copy Database Wizard to Copy a Database Disables Full-Text Indexing on the Source Database (Q303224)
BUG: Query Containing LIKE NULL May Not Return Correct Results (Q308370)
FIX: sp_MSexpandnotbelongs May Be Called at Publisher Due to Invalid Evaluation of Join Filter (Q300180)
INF: How to Rebuild the MASTER Database on a Virtual SQL Server 2000 Instance (Q298568)
PRB: Index Corruption Occurs in a Database That Is Upgraded to SQL Server 2000 (Q298806)
BUG: WMI MSSQL_Table.ExportData Always Uses Standard Security (Q295021)
INF: Supported Windows Versions for SQL Server (Q122352)
INF: Reading ODBC SQL Server Driver Network Messages (Q137634)
INF: Relationship of the ODBC Driver to INSTCAT.SQL (Q137636)
INF: How to Upgrade SQL Server 7.0 Evaluation Edition to Retail Version (Q237303)
BUG: Changed Locale Settings in Extended Stored Procedure May Cause Incorrect Results (Q246199)
INF: SQL Server 7.0 Automatically Rebuilds a Missing LDF File After Restarting SQL Server (Q251628)
FIX: DTS Object Transfer Does Not Transfer BLOB Data Greater Than 64 KB (Q257425)
FIX: Optimizer Selects Table Scan Instead of Index Covering the ORDER BY Clause for a Single Table Select (Q260700)
FIX: Snapshot Agent for a Merge Publication Might Fail with Error Message 4408 or 50007 (Q261216)
FIX: Service Pack Installation May Save Standard Security Password in File (Q263968)
HOWTO: Retrieve XML Data by Using an XPath Query in a Visual Basic Client (Q271619)
HOWTO: Retrieve XML Data by Using a SQL XML Query in a Visual Basic Client (Q271620)
HOWTO: Retrieve XML Data with a Template File from a Visual Basic Client (Q271621)
SAMPLE: How To Retrieve XML Data Using an SQL XML Query with ADO in Visual C++ (Q271780)
SAMPLE: How To Retrieve XML Data Using an XPath Query with ADO in Visual C++ (Q271782)
SAMPLE: How to Retrieve XML Data Using a Template File with ADO in Visual C++ (Q272180)
INF: SQL Server 7.0 Service Pack 3 Fixlist (Q274797)
SAMPLE: How to Retrieve Data Using a Template File in ATL OLE DB (Q272181)
SAMPLE: How to Retrieve Data Using a SQL XML Query in ATL OLE DB (Q272185)
HOWTO: Retrieve XML Data by Using a SQL XML Query in an ASP Client (Q272269)
FIX: Only One SQL Server Performance Condition Alert Is Treated As Active (Q275145)
INF: How to Use KEEPFIXED PLAN to Disable Stored Procedure Recompilations (Q276220)
FIX: Msxml2.dll Fails to Register on 32-Processor Computer During MDAC 2.6 Installation (Q276426)
PRB: Sqldiag Utility Exits if SQL Server Service Is Not Started (Q279080)
PRB: Application Errors Occur After You Run Xmlinst.exe on Production Servers (Q278636)
INF: How to Upgrade to SQL Server 2000 Retail Version After SQL Server 2000 Evaluation Edition Expires (Q281574)
PRB: Converting Datetime to Another Datatype May Result in Inaccurate Value (Q281676)
FIX: XML Parsing Error 6603 or Truncated Text Data with OPENXML (Q285006)
INF: List of Bugs Fixed in SQL Server 2000 Service Pack 1 (1 of 2) (Q290212)
FIX: Crash in SQLXMLX Hangs Web Service Threads (Q291838)
FIX: OPENXML May Leak Worktables in Memory (Q295053)
PRB: Attributes Are Not Generated for Fields That Contain a NULL Value When ADO Recordset Is Persisted in XML (Q296393)
HOW TO: Prebuild a SQL Server CE Database (Q301217)
FIX: Error 644 Using Two Indexes on a Column with Uppercase Preference Sort Order (Q300194)
INF: List of Bugs Fixed in SQL Server 2000 Service Pack 1 (2 of 2) (Q300538)
SQLOLEDB: Unenlisting From Active Transaction Against SQL Server 7.0 Causes Hang and Drain Abort Entry (Q301953)
FIX: Upgrade to SQL Server 2000 Cluster Does Not Add All SQL Server Resource Dependencies (Q303119)
INF: Support for Network Database Files (Q304261)
PRB: OSQL Error Message Leaves Out ODBC Header Information (Q305192)
BUG: Paging an Operator May Not Work After You Apply Service Pack 1 (Q305354)
FIX: SQL Server 2000 May Be More Aggressive with Read-Ahead Than SQL Server 7.0 (Q305377)
FIX: Abort of DTC Transaction in tempdb May Cause 7105 Errors, Assertions, and Possible Shutdown of SQL Server (Q304847)
PRB: SQL Server 7.0 Acmsetup.exe Setup Application Fails (Q305680)
PRB: Database/Object Transfer Scheduled Task Fails After Owner's Password Changes (Q305824)
FIX: SQLTrace Start and Stop is Now Reported in Windows NT Event Log for SQL Server 2000 (Q307538)
FIX: Error 1203 and Failed Assertion Occurs When You Run a Query with a Parallel Plan (Q307541)
FIX: SQL Server CE Subscribers May Receive Duplicate Changes on Synchronization (Q306487)
PRB: Migrating a Stand-alone SQL Server to a Clustered SQL Server in an Active Directory Environment (Q306529)
PRB: Duplicate Rows in Dimension Tables Inflate Measures (Q307748)
BUG: Distribution Agent Parameters Listed After -QuotedIdentifier Are Ignored (Q307930)
BUG: SQL Profiler Truncates Seconds and Milliseconds for Datetime RPC Parameter (Q307946)
FIX: SQL Mail Attachments Contain Leading Space Before First Column of Each Result Row (Q307948)
FIX: sp_configure 'network packet size' Not Functional in SQL Server 7.0 SP3 and SQL Server 2000 (Q308016)
PRB: Hide Server Option Cannot Be Used on Multiple Instances of SQL Server 2000 (Q308091)
BUG: DTS Copy Objects Task (DMO) Breaks Transaction Log Backup Chain By Switching Recovery Mode to Simple During Transfer (Q308267)
PRB: Server Level Post Handlers Cannot Remove Themselves with srv_post_handle (Q308270)
BUG: Execution of Stored Procedure That Uses a TEXT Parameter in Cursor Definition Causes AV (Q308398)
FIX: SELECT DISTINCT from Table with LEFT JOIN of View Causes Error Messages or Client Application May Stop Responding (Q308547)
PRB: SQLMail Is Not Supported When You Run the Server in Fiber Mode (Q308604)
FIX: Execution of Sp_addsynctriggers Results in Syntax Error After ALTER TABLE (Q309251)
PRB: Slow DELETE or UPDATE Against Non-SQL Linked Server (Q309182)
FIX: Nondynamic Snapshot Performs Poorly for Partitioned Merge Publication (Q308984)
FIX: Incorrect Result Occurs with Unary Operator When You Execute Query on the Server (Q309385)
INF: How to Check for 64 K Children Before You Process a Dimension (Q307008)
INF: How to Carry Balances Forward for Display in a Balance Sheet. (Q307945)
Support WebCast: Accessing and Manipulating Data in Microsoft SQL Server 2000 Databases by Using SQLXML UpdateGrams
Support WebCast: Introducing New Features in Microsoft SQL Server 2000 Transactional Replication
INF: List of Version Numbers of ODBC Driver Manager and SQL Server (Q171221)
INFO: Microsoft Data Access Components (MDAC) Release History (Q231943)
FIX: "Incorrect Syntax near the Keyword 'by' " Error Message with Column Names of "C", "CA" or "CAS" (Q273813)
FIX: SQL Server ODBC Driver Reuses Incorrect Parameter Length (Q280294)
BUG: SQLDescribeParam Causes Syntax Error or Access Violation (Q293790)
Support WebCast: New Features in XML for Microsoft SQL Server 2000 Web Release 2
FIX: Buffer Latch Timeouts or Server Sluggishness Occurs When You Remove Procedures From Cache (Q309093)
BUG: SP_Processmail @set_user Parameter Defaults to Guest Instead of the Security Context of the Current User (Q303666)
FIX: sp_mergemetadataretentioncleanup Does Not Clean Generations with ArtNick=0 (Q308878)
PRB: NOLOCK Optimizer Hint May Cause Transient Corruption Errors in the SQL Server Errorlog (Q308886)
BUG: Incorrect Results Returned When Query Compares Large Precision and Scale Decimal Value with Integer (Q308736)
FIX: AV on DECLARE CURSOR with Correlated Subquery and KEYSET or DYNAMIC Cursor Type (Q308881)
BUG: Unicode Wildcard Comparisons with Latin1_general_CI_AS May Return Incorrect Results (Q308772)
BUG: ANSI Outer Join is Changed into an Inner Join in INSTEAD OF Trigger (Q308436)
BUG: Select Query That Compares a Tinyint to a Converted Int in the Where Clause Fails to Find Valid Row (Q308810)
INF: Refresh of Current Activity in SEM May Cause "Error 1222: Lock Request time out period exceeded" Error Message (Q308518)
FIX: French Installation of Desktop Engine Fails with Microsoft Installer (Q307837)
FIX: Replication in Turkish Collation Fails with Error Message: "Error 21112: '-PollingInterval' is not a valid parameter for the Log Reader Agent" (Q295325)
FIX: sp_MsHelpmergeconflictcounts Returns No Row Against the Chinese Name Table on English Windows 2000 (Q298923)
SAMPLE: How To Retrieve Relational Data Using OpenXML with ADO in Visual C++ (Q271775)
PRB: Scheduled DTS Package Fails With "Permission Denied: CreateObject" (Q298725)
INF: How to Use OLAP Number Formats with Office Web Components (Q301456)
FIX: Unable to Connect to SQL Server 2000 When Certificate Authority Name Is the Same As the Host Name of the Windows 2000 Computer (Q302409)
FIX: Incorrect Cardinality Estimate And Bad Plan for Query with OR and AND on Same Column (Q302615)
HOW TO: Implement Forms-Based Authentication in Your ASP.NET Application Using Visual Basic .NET (Q308157)

ФОРУМ SQL.RU: САМЫЕ ПОПУЛЯРНЫЕ ТОПИКИ НЕДЕЛИ

Refresh таблиц или аналог IBEvents для MSSQL
Два одинаковых запроса - различный результат !!!
Почему не запускаеться DTS пакет.
Абсолютно ламерский вопрос :)
Помогите с вопросом!!!!Срочно!
Вопорос обязательно ли нужен в таблице первичный ключ?
Альтернативный ключ
Unpivoting table
Приехали с криптованием.....
Переход с NT (7.0) на 2000 (2000). Как лучше провести ?
Тонкости использования предиката '=' с NULL-значениями в SQL
Нужна такая технология!!!
Запрос хитренький
КАК ОРГАНИЗОВАТЬ СИНХРОНИЗАЦИЮ УДАЛЕННЫХ БАЗ SQL ЧЕРЕЗ МОДЕМ ?????????????
1C и MSSQL 2000
Как выполнить xp_cmdshell?
Что лучше 2 процессора Xeon с 2 mb кэшом каждый или 4 с 512?

ФОРУМ SQL.RU: ВОПРОСЫ ОСТАЛИСЬ БЕЗ ОТВЕТА

Как проверить ХП?
Как поведет себя сервер MSSQL7
Запросы к linked server-у !?
DTS. Как узнать Task.Name
Какие ресурсы на сервере?
OLAP сервер
Защита закритпованных процедур и пр...
Обновление
репликация между SQL 7.0 и 6.5
Экзамен
Помогите!!! Срочно нужно решить задачу!
merge репликация через интернет
Парадокс! (запрос работает быстрее.)
Crystal Reports 6.0 Освобождение оперативной памяти
SQL 7.0 & IAS W2k
Как отличить распределенную транзакцию от обычной?
Помогите пожалуйста понять что это такое и как исправить ?
connect to remote SQL server from asp code
Очень нужно решить проблемму с replication

#068<<  #069

Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Александру на адрес: MSSQLHelp@pisem.net

sql.ru

Описание рассылки
 Поиск на SQL.RU
Искать: 
Результатов на странице: Формат:
Тип запроса: Раздел:
МИНИФОРМА
ПОДПИСКИ




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу
Рейтингуется SpyLog

В избранное