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

MS SQL Server

  Все выпуски  

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


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

#088<<  #089
СОВЕТ

Фильтрация реплицируемых данных (продолжение)
По материалам статьи Microsoft: Filtering Published Data

Динамические снимки

Динамические снимки (Dynamic Snapshots) обеспечивают хорошую эффективность при применении снимка merge публикации совместно с динамическими фильтрами. Высокая эффективность достигается за счёт использования Microsoft SQL Server 2000 bulk copy, что позволяет оптом применять данные на subscriber вместо последовательного исполнения инструкции INSERT. Создание динамического снимка для подписки позволяет также обеспечить лучшую гибкость и экономичность при передаче снимка на сменных носителях (например, CD- ROM). Такое применение снимка на подписчике с использованием носителя можно выполнить быстрее, чем посредством применения первоначального моментального снимка, передаваемого по медленному коммуникационному каналу.
Когда в merge публикации используются динамические фильтры, данные издаваемой таблицы фильтруются на основе свойств подключения Merge Agent для текущей в течение процесса объединения (merge) публикации. По умолчанию, публикация с динамическим фильтром основывается на операциях вставки (INSERT) данных от издателя, что позволяет применить данные на подписчике, как часть первоначального снимка. Это может стать долгим и ресурсоёмким процессом, потому что Merge Agent должен будет определить строка-к-строке (row-by-row) данные, которые нужно включить в снимок, основываясь на динамических критериях фильтра. Применение динамических снимков обеспечивает более высокую эффективность, за счёт использования механизма SQL bulk copy (bcp) при применении данных на подписчике, т.е. за счёт применения первоначального снимка с использованием динамических фильтров. Когда Вы создаете динамический снимок, Вы, фактически, генерируете моментальный снимок, который будет настроен для заданного подписчика. Поскольку данные будут уже извлечены и скопированы, применяться снимок будет также быстро, как применяется снимок без динамических фильтров. Однако, есть и отрицательные моменты, это дополнительные временные затраты и дополнительное дисковое пространство, которые потребуются при создании и сохранении динамического снимка. Хотя для создания динамического снимка требуется больше времени (по сути, снимок будет генерироваться дважды), процесс применения снимка на подписчиках пройдёт быстрее, чем применение стандартного снимка для merge публикации с динамическим фильтром. Вначале будет сгенерирован стандартный снимок, а динамический снимок создаётся путём фильтрации стандартного снимка.
Динамические снимки можно создавать с помощью Enterprise Manager, с помощью мастеров: Create Publication и Create Dynamic Snapshot Job, с помощью системных хранимых процедур и Transact-SQL скриптов, а также с помощью Microsoft ActiveX controls или SQL-DMO.

Некоторые соображения по поводу Dynamic Snapshot

При планировании merge публикации с динамическими фильтрами и динамическими снимками, нужно учитывать следующие моменты:
1. Динамические снимки могут использоваться со всеми типами подписки. Вы можете создавать динамический снимок, используя Create Dynamic Snapshot Job Wizard и/или запустив Snapshot Agent с соответствующими параметрами. Применение динамического снимка осуществляется с использованием Merge Agent или Merge ActiveX Control и с установкой свойств DynamicSnapshotLocation.
2. Вы можете использовать параметр командной строки - DynamicSnapshotLocation для Merge Agent или свойство DynamicSnapshotLocation в Merge ActiveX Control, чтобы применить предварительно сгенерированный динамический снимок.
3. Динамические фильтры и динамические снимки применяются только с Merge репликацией.
4. Чтобы создать динамический снимок, для публикации должен быть включён динамический фильтр и должен быть создан стандартный снимок.
5. Файлы динамических снимков также будут сжаты, если сжат стандартный снимок. Чтобы сжать стандартный снимок, и соответственно динамический снимок, откройте свойства публикации, и для "Snapshot Location tab" выберете "Generate snapshots in the following location", что бы задать в текстовом поле место расположения снимка, а затем нужно выбрать "Compress Snapshot files in this location".
6. Логин, указанный для входа в систему издателя, должен быть указан в Publication Access List (PAL) или быть членом роли sysadmin публикуемой базы данных или группы DB_owner. Этот логин может быть определен в Create Dynamic Snapshot Job Wizard или при использовании параметра Snapshot Agent -DynamicFilterLogin.
7. Поскольку SQL Server добавляет и удаляет временные логины в Snapshot Agent, логин Snapshot Agent издателя должен быть членом серверной роли securityadmin и быть членом группы DB_owner публикуемой базы данных, чтобы иметь возможность создавать динамические снимки. 8. Логины динамического фильтра, указанные для создания динамического снимка, должны быть включены в соответствующий список доступа публикации (PAL).
9. SQL Server на издателе должен иметь смешанный режим защиты (mixed security mode).
10. Изменение свойств публикации без пересоздания стандартного снимка для публикации с динамическим фильтром сделает не возможным применение всех последующих динамических снимков, которые будут сгенерированы.
11. Не используйте параметры в системной функции SUSER_SNAME(), используемой с динамическими снимками, например: SUSER_SNAME (SID).
12. Функции, которые неявно полагаются на SUSER_SNAME() или текущего пользователя, например: USER_NAME(), CURRENT_USER(), System_USER(), USER_id() или SUSER_SID() не будут правильно работать и не должны использоваться с динамическими снимками (вместо них нужно использовать SUSER_SNAME() или HOST_NAME()).
13. В динамическом фильтре можно использовать определяемые пользователем функции (user-defined functions). Однако, если определяемый пользователем фильтр выдаёт одни и те же значения для всех подписчиков, это - тип статического фильтра, и нет никакой необходимости использовать динамические снимки, потому что все подписчики получат одинаковый снимок данных.
14. Вы можете использовать системную функцию SUSER_SNAME(), вложенную в определяемую пользователем функцию, в критериях динамического фильтра, и можете использовать динамический снимок (например, MyUDF (SUSER_SNAME ()), где MyUDF - определяемая пользователем функция, использующая SUSER_SNAME()). Системная функция должна быть видима в критериях динамического фильтра. Если системная функция существует в определении определяемой пользователем функции, и Вы вводите в динамический фильтр только определяемую пользователем функцию, Вы не сможете использовать динамический снимок.

Создание и применение динамических снимков вручную

Запустите Snapshot Agent, чтобы создать стандартную схему снимка и все другие файлы. Используйте стандартные свойства (-Publisher, -PublisherDB, -Publication, и т.д.) при запуске Snapshot Agent. Запустите Snapshot Agent, чтобы создать файлы массовых копий (.bcp) единожды для каждого определенного раздела подписчика. При этом, используйте стандартные свойства и следующие свойства:
-DynamicFilterHostName
-DynamicFilter Login
-DynamicSnapshotLocation

Запустите Merge Agent для каждой подписки, чтобы применить начальный динамический снимок на подписчиках. Используйте стандартные свойства, и добавьте следующие свойства:
-Hostname
-DynamicSnapshotLocation

Сверка информации на подписчике

Merge репликация с динамическим фильтром имеет функцию, которая выдаёт информацию о подписчике. Microsoft SQL Server 2000 проверяет информацию подписчика, основываясь на этой функции до того, как произойдёт каждое объединение. Это гарантирует, что информация будет последовательно разбита на разделы для каждого объединения. Например, когда публикация с динамическим фильтром использует функцию SUSER_SNAME(), Merge Agent применяет начальный снимок к каждому подписчику, основываясь на данных, которые является верными для выражения SUSER_SNAME().
Когда подписчик повторно соединяется с издателем при следующей синхронизации, Merge Agent сверяет информацию подписчика и гарантирует, что будут синхронизированы те разделы, которые были присланы до этого, как часть первоначального снимка. Если Merge Agent обнаруживает, что выражение фильтра возвращает разные значения, объединение оканчивается сбоем. Поскольку значение функции, используемое в динамическом фильтре, изменилось, подписка для подписчика должна быть повторно инициализирована или оригинальный логин или значение host_name должны использоваться до того, как будет разрешена синхронизация. Это предотвратит проблемы, которые могут возникать, если изменены параметры объединения для подписчика.
Вы можете выбирать создание динамического фильтра, а затем сверку информации подписчика при создании публикации, используя Create publication Wizard, или иначе, после того, как публикация создана и определена для динамических фильтров, можно использовать свойства публикации.

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

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

Реинженеринг предприятия на основе имитационной модели
Автор: Тельнов Ю.Ф.
Современные технологии бизнеса характеризуются высокой динамичностью, связанной с постоянно изменяющимися потребностями рынка, ориентацией производства товаров и услуг на индивидуальные потребности заказчиков и клиентов, непрерывным совершенствованием технических возможностей и сильной конкуренцией. В этих условиях требуется разработка систем управления предприятием, которые оперативно отражают состояние экономических объектов с целью принятия своевременных решений об изменениях в бизнес-процессах... [подробнее]
Корпоративные информационные системы (КИС): не повторяйте пройденных ошибок
Автор: Геннадий Верников.
В течение последних лет значительная часть дискуссий, касающихся развития корпоративного менеджмента, относится к сфере практического применения современных информационных технологий. Проблематика построения комплексных управленческих систем выросла в отдельную ветвь науки об управлении и стала причиной развития целой отрасли высоких технологий. При этом иногда складывается впечатление, что все нынешнее информационное изобилие развивалось и продолжает развиваться таким образом, что становится способным ввести в заблуждение не только неподготовленных читателей, но и самих специалистов в области управления. С одной стороны, это не удивительно, если подходить к данной проблеме с научной точки зрения, так как для любых дисциплин на первоначальном этапе развития характерно отсутствие единой системы терминов и понятий, наличие принципиально разных научных школ и подходов, а также масса других недостатков, вызванных отсутствием достаточного практического опыта. Однако, если принимать во внимание интересы всех существующих и потенциальных заказчиков информационных систем, на предприятиях которых производятся дорогостоящие и зачастую плачевные опыты по обкатке и адаптации существующих решений, то фокус необходимо сместить из научно-методической области в область бизнеса. Постараемся в рамках этой статьи хотя бы частично разобраться в путанице определений терминов, понятий и аббревиатур... [подробнее]
Моделирование AS-IS: за и против
Автор: Дорин Эндрюс.
Следует ли мне строить модели AS-IS (моделирование существующего положения)? Невозможно ответить до того, как вы сначала не спросите себя, почему вы взялись за этот проект... [подробнее]
Программное создание базы данных с помощью ADOX
Автор: Иноземцев Руслан.
В данной статье будут рассмотрены приемы программного создание баз данных с помошью библиотек ADOX... [подробнее]
Знакомство с естественными XML-базами данных
Автор: Кимбро Стэйкин.
Практика обработки и хранения XML потребовала создания новых типов программных инструментальных средств, одним из которых является "естественные XML-базы данных" (в дальнейшем мы будем пользоваться сокращением NXD, Native XML Database). В данной статье описываются основные принципы таких баз данных... [подробнее]

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

FIX: Data Mining Messages Are Displayed in English After You Apply Fix (Q318582)
PRB: Cannot Connect Through Analysis Manager Although a Member of Administrator Group (Q307365)
PRB: 6.5 SP4 May Affect Replication Performance (Q184492)
PRB: Error While Running SQL Cluster Setup.exe (Q186114)
PRB: User: _ Not Defined as a Valid User of Trusted Connection (Q186314)
How to Obtain SQL Server 6.5 Programmer's Toolkit and Vbsql.ocx (Q186893)
BUG: SQL Setup Does Not Change Security and Network Support Options with SVS (Q189037)
INF: How to Move Tempdb to a Different Device (Q187824)
INF: Frequently Asked Questions - SQL Server 7.0 - Failover (Q195761)
INF: Installation Order for SQL Server 2000 Enterprise Edition on Microsoft Cluster Server (Q243218)
INF: Clustered SQL Server Do's, Don'ts and Basic Warnings (Q254321)
INF: Frequently Asked Questions - SQL Server 2000 - Failover Clustering (Q260758)
PRB: Error Message Occurs When You Create or Expand a Database on a FAT32 Partition (Q281220)
FIX: Reading Perflib Registry Values Terminates SQL Server Startup with Fatal Exception (Q294388)
FIX: MSDE Installation Fails on Systems That Have SQL Server 2000 Service Pack 1 or 2 Installed (Q299351)
PRB: Connection Timeout Occurs When Connecting to a Remote OLAP Server Using an ADO Connection (Q301334)
BUG: DTC Transactions May Fail When SQL Server Is Running in Lightweight Pooling Mode (Q303287)
FIX: OLAP DTS Processing Task Fails with Error Code -2146828087 (800A00C9) (Q318721)
FIX: Insertion of NULL Values into NTEXT Columns May Cause Application Instability (Q315889)
INF: Performance Considerations for an Upgrade from SQL Server 6.5 (Q297864)
INF: Workaround for Changing the File Path of a Report in SQL Web Publishing (Q317862)
PRB: A Full-Text Search May Not Return Any Hits If It Fails to Index a File (Q308771)

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

помогите девушке
Жуткий OFF: Достал SQL, Вы же умные и разносторонние люди! Неужели болбше неочем?
Нынче по небу правильно солнце идет
Вариации на тему "Identity"
1c через OLE из t-sql :-(
И еще один вопрос - передача Null через datacombo (ADO ) ?
SQL7.0 не использует индексы
Почему в SQL2K пользователь домена видит даже то что нельзя
Джентльмены, кто аботал с SQL mail?
Сравнение структуры БД
Некорректное округление
Не разрешает публиковать таблицы Create Publication Wizard
тип image
Наведем порядок с грамматикой (хотя бы)
SQL mail

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

Где взять SOUNDEX алгоритм для русских строк ?
Чем протестировать производительность Эс-Ку-Эль серверов?
Как поведет себя Merge replication если для одной из баз сделать Restore
проблемы COLLATE и прилинкованный сервер
Сжатие файлов перед передачей в БД
Народ! Как через SP закачать данные более 32 Kb?
SQL Запрос и Excel
Update
Не могу помочь. Подключайтесь
DTS
Insert/Update из браузера через XML
SQL Server 2000 Personal Edition
BCP и строки в кавычках
Поможите люди добрыя - ошибка 3129(причём не стого не с сего!!)

#088<<  #089

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

sql.ru

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




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

В избранное