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

MS SQL Server

  Все выпуски  

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


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

#089<<  #090
СОВЕТ

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

Join фильтры

Join фильтры позволяют использовать в Merge репликации перекрестные отношениям между таблицами, когда в публикации фильтр по одной таблице основан на значениях из другой таблицы. Join фильтр определяет отношения между двумя таблицами, которые будут использоваться в течение Merge процесса. Это подобно обычному объединению двух таблиц. Join фильтры используют имена двух статей и заданное условие объединения, которое представляет отношения между этими двумя таблицами в публикуемых статьях. Условие объединения задаётся обычно в такой форме:


ARTICLE1_TABLE.COLUMN = ARTICLE2_TABLE.COLUMN

Join фильтры обычно используются вместе с фильтрами строк и позволяют Merge процессу поддерживать ссылочную целостность между этими двумя таблицами. Если таблица, издаваемая с фильтром строк, ссылается на foreign key в другой издаваемой таблице, статья foreign key таблицы должна иметь Join фильтр для обеспечения ссылочной зависимости от статьи primary key таблицы.
Enterprise Manager использует это правило автоматически при создании публикации для того, чтобы предложить объединение с логикой фильтрации для foreign key таблицы, основанной на foreign key ссылках. По этой причине, а также для простоты использования, рекомендуется, чтобы Вы предварительно определили отношения primary key и foreign key, а затем выбрали автоматическую генерацию Join фильтра, при создании публикации средствами Create Publication Wizard.

Обратите внимание: Синтаксис создания ограничений FOREIGN KEY в CREATE TABLE или ALTER TABLE предполагает возможность использования опции NOT FOR REPLICATION. Когда эта опция установлена, Microsoft SQL Server 2000 предполагает, что ссылка была проверена, когда пользователь внёс изменения в данные. Поэтому SQL Server 2000 пропускает дополнительные шаги дальнейшей обработки, в которых проверяется ссылка во время синхронизации данных Merge процессом. Если эта опция включена, должен быть определен Join фильтр, который позволит избежать появление недопустимых по foreign key строк на подписчике.

Join фильтры строго не ограничены отношениями primary key - foreign key. Join фильтр может быть основан на любой логике сравнения, которая сопоставляет данные в двух таблицах статьи, но эта логика должна использовать, если возможно, проиндексированные столбцы для обеспечения более высокой эффективности.
Merge процесс умеет оптимизировать эффективность в зависимости от того, основано ли условие объединения на уникальном столбце, что имеет место, когда Join фильтр представляет foreign key отношения. Если условие объединения основано на уникальном столбце, в целях повышения эффективности, для этой статьи свойство join_unique_key должно быть включено.
Хотя в фильтре строк можно использовать подзапрос, это нельзя ещё считать Join фильтром. Если Вы обновляете строку в таблице упомянутым выше подзапросом, запрос не будет переоценён, и строка не будет включена в репликацию. Join фильтры существуют только в Merge репликации.

Предупреждение: Join фильтры, оперирующие большим количеством таблиц будут существенно снижать эффективность репликации. Не рекомендуется задействовать в Join фильтре более четырёх таблиц.

Определяемые пользователем функции и статические фильтры

Определяемые пользователем функции (UDF), это подпрограммы, составленные из скрытых от пользователя наборов логики Transact-SQL. Вы можете использовать их в статических или динамических фильтрах.
Используя определяемые пользователем функции, Вы увеличиваете возможности фильтрации, т.к. появляется возможность создания фильтров на основе часто используемой логики, управляемой таблицей бизнес-правил или любым набором сложных команд, которые возвращают вычисленные значения.
Вы можете использовать определяемые пользователем функции, которые возвращают скалярные значения (int, char или decimal) при горизонтальной фильтрации (фильтрация строк, копирующая подмножество строк из таблицы) в репликации снимков, репликации транзакций или Merge репликации.
Чтобы создавать определяемую пользователем функцию для использования в фильтре публикации, используйте команду CREATE FUNCTION для базы данных, которая содержит издаваемые данные, и включайте в неё необходимые операторы и команды Transact-SQL. Вы можете использовать функцию в фильтре при создании новый публикации в Create publication Wizard или при конфигурировании существующей публикации через диалоговое окно её свойств. Если публикация уже имеет подписчиков, нужно удалить все её подписки, и только потом создавать или изменять фильтры строк. Вы не должны реплицировать функцию, чтобы использовать её как часть фильтра в публикации.

Определяемые пользователем функции и динамические фильтры

Вы можете повысить гибкость фильтрации Merge публикации и повысить эффективность динамической фильтрации используя определяемые пользователем функции для создания разделов данных. Динамические фильтры позволяют определять разделы одной публикации, передаваемые разным подписчикам.
Динамические фильтры могут использовать встроенные функции (например: SUSER_SNAME()), которые выдают разные значения на каждом подписчике публикации. Разные разделы данных копируются разным подписчикам, в зависимости от значений, возвращаемых функцией.
Определяемые пользователем функции расширяют возможности фильтрации, за счёт использования функций в динамическом фильтре. Это позволяет определять бизнес-правила, скалярные или табличные значения, используемые при выделении разделов издаваемых данных в динамическом фильтре.

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

Информационные технологии в управлении качеством процессов
Автор: С.А.Калихман.
Международный стандарт ISO 9000:2000 определил процесс как «Совокупность взаимодействующих видов деятельности, преобразующих входы в выходы, для которых определены цели, критерии эффективности и «хозяин» процесса (лицо ответственное за эффективность)»...[подробнее]
Истоки сегодняшних продуктов OLAP
Автор: Найгель Пендс.
Идея обработки многомерных данных не является новой. Фактически она восходит к 1962 году, когда Кен Айверсон опубликовал свою книгу "Язык программирования" ("A Programming Language" - APL). Первая практическая реализация APL была осуществлена в конце шестидесятых компанией IBM. APL - это математически определённый язык с многомерными переменными и изящными, хотя и довольно абстрактными операторами. Он предназначался больше для описания многомерных преобразований, нежели для использования в качестве практического языка программирования. Так, например, в нем не уделялось внимания таким приземленным вопросам, как работа с файлами или вывод на печать. В очень сжатой нотации языка использовались греческие символы. В действительности, тексты программ получались весьма компактными. Он стал известен, как "язык только для написания", потому что было гораздо легче переписать заново программу, нежели исправить ранее сохраненный текст... [подробнее]
Что следует понимать под термином OLAP?
Автор: Найгель Пендс.
Проблема, которая встала перед нами с самого начала исследований OLAP, заключалась в решении того, какой продукт правомерно относить к категории OLAP. Решить является ли продукт "именно OLAP" становилось все сложнее в связи с тем, что все больше и больше поставщиков утверждали, что они имеют "именно OLAP", в то время как это могло означать все что угодно. Нельзя было полагаться на собственные описания поставщиков независимо от их членства в Совете OLAP (OLAP Council). Такое членство не являлось надежным индикатором того, что компания действительно производит OLAP продукт. Например, несколько известных поставщиков OLAP не являются членами Совета, в то же время существуют члены Совета, которые не являются поставщиками OLAP... [подробнее]
Редактирование данных в DataGrid
Автор: Dimon aka Manowar.
В элемент управления DataGrid (как впрочем и в DataList) встроена мощная поддержка возможности редактирования связанных с этим элементом данных. Оба этих элемента управления позволяют управлять отображением выбранной или редактируемой записи, а также обновлять связанные данные. И все это при минимальном программировании. Например, для того, чтобы установить в режим редактирования пятую строку DataGrid необходимо присвоить свойству EditItemIndex элемента управления DataGrid значение 4 (нумерация строк в DataGrid начинается с 0). Соответственно для того, чтобы выйти из режима редактирования необходимо свойству EditItemIndex присвоить значение -1. Наиболее сложной операцией при редактировании DataGrid является извлечение введенных данных и запись их в источник данных, но эта операция сложна только по сравнению с прочими простейшими операциями редактирования. Впрочем вскоре мы в этом убедимся...
ЕRP в России: полноценных внедрений пока нет
Автор: Лев Звонарев, Евгений Корзун.
Три-четыре года назад в России довольно интенсивно стали открываться представительства западных компаний - разработчиков ЕRР-систем. Собственных разработок такого класса у нас еще не было. В то время считалось, что внедрение системы такого типа (SAP/R3, BAAN, ORACLE APPLICATION и т.д.) разом решит все проблемы управления и очень хорошо скажется на экономических показателях деятельности предприятия. Главное же - просто выбрать подходящую для этого предприятия систему. Тогда цены на программное обеспечение были по карману далеко не каждому предприятию, а после финансового кризиса 1998 года они стали практически недоступными многим предприятиям... [подробнее]
Работа с данными. Вчера, сегодня, завтра...
Автор: Сергей Воронцов.
Не хотелось бы делать очередное глобальное сравнение двух различных технологий, двух различных подходов и что самое важное двух эпох в методах доступа к данным. Этими сравнениями пестрят все настоящие книги по ADO.Net. Но, к сожалению, для того, что бы действительно по настоящему понять, что по настоящему отличает технологии ADO и ADO.Net мне все же придется сделать краткий экскурс в эту область. И особенно это будет полезно для тех, кто имеет опыт разработок под ADO / OLE DB... [подробнее]

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

INF: SQL Server 2000 Windows CE Edition Version 1.1 Service Pack 1 Readmesp1.txt Addition (Q316901)
HOW TO: Log Data Transformation Services Package Execution to a Text File (Q316043)
FIX: Parallel Query May Cause an Access Violation in CBitSet::Incl (Q318874)
INF: How to Troubleshoot Orphaned Connections in SQL Server (Q137983)
PRB: Client Login Does Not Time Out If the Server Is Offline (Q176257)
INF: Administering Earlier SQL Server Versions from SEM (Q225545)
INF: How to Convert an Access Database to SQL Server (Q237980)
INF: How to Run a DTS Package as a Scheduled Job (Q269074)
PRB: BCP 'in' May Cause Exception When Input File Last Column Is Datatype DATETIME (Q274472)
PRB: Installing SQL Server 7.0 Fails If SQL Server 2000 Is Already Installed (Q278612)
FIX: Unhandled Exception Error Querying with the Data Mining Provider from ADO+ and C# (Q297728)
HOW TO: Send E-Mail Without Using SQL Mail in SQL Server (Q312839)
INF: How to Obtain the Latest SQL Server 2000 Windows CE Edition 1.1 Service Pack (Q316498)
FIX: Setup to Named Instance of SQL Server 2000 Fails with General Network Error (Q317261)
HOW TO: Enable Replication Agents for Logging to Output Files in SQL Server (Q312292)
FIX: Installation of Microsoft Desktop Engine (MSDE) Service Pack 1 over Later MSDE Service Pack Appears to Succeed (Q308836)
FIX: CREATE INDEX Statement with Parallel Plan May Stop Responding If Disk Space Is Almost Full (Q317710)
BUG: Xp_sendmail with @Query Parameter on a Cluster Generates Error 17969 (Q310822)
BUG: Xp_sendmail with Attachment Option Does Not Include All Results in Attachment (Q317797)
PRB: Member Key Column for Parent-Child Dimensions Must Be Unique (Q317258)
FIX: Xp_msver Returns Null for Most of the Properties of a Non-English SQL Server Installation (Q319455)
PRB: SQL Server Full-Text Search Does Not Populate Catalogs (Q317746)
FIX: Error 3314 May Occur with Simultaneous DDL and DML Statements on SQL Server 2000 Service Pack 1 (Q310468)
PRB: ANSI Warnings May Incorrectly Show Replication Agents As Failed (Q304535)

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

Жуткий OFF: Достал SQL, Вы же умные и разносторонние люди! Неужели болбше неочем?
Вариации на тему "Identity"
Случайное число
Может ли быть в схеме данных кольцо?
Шмат из нутрей
Джентльмены, кто работал с SQL mail?
База данных адресов
Некорректное округление
SQL вешает систему на 2х-процессорной тачке :(
IE 6.0 IE 5.5 - Где сохраняется текст, который набирается в полях для отправки форм????
Наведем порядок с грамматикой (хотя бы)
Сравнение структуры БД
Создание Calculated Member в Analysis Services
SQL mail
Execute &Return
Проблемы с быстродействием
Срочно нужен образец триггера ....
OpenQuery - не получается...
Использование DTS, как путь в сумасшедший дом
параметры подключения к серверу
Запуск dll от лица чайника.
Помогите сделать DistictCount !
Каким образом порядок критериев в предложении WHERE влияет на скорость выполнения запроса SELECT?
Как дать права на xp_cmdshell??
восстановление базы после краха носителя
Как добиться NOLOCK или ROWLOCK

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

Посоветуйте, плиз, книги по MSSQL 2000
Для чего предназначен оператор T-SQL COLLATE?
Администрирование SQL Server 2000 ???????
Identity и репликация
Подключение табл из зашифрованного MS Access
Есть вопрос по LOGINS, может кто сталкивался с подобным
Восстановление утерянного коннекта
Как реализвать вывод фотографии сохраненной в MsSQL 2000 в поле типа image в php?
TAdoQuery возвращает не верное кол-во записей
Загрузка процессоров при работе с 1С
Как сжать базу под Merge репликацией?
Export в Excel2000 ограничен размером таблицы .xls???
Проблемы с кириллицей при доступе к MSSQL из Perl под FreeBSD
почему sp_msforeachtable 'sp_spaceused "?"' возвращает отрицательные значения после dbcc dbreindex ?
Параметры подключения через ADO
Помогите сделать Restore базы сбекапенной в SQL-Server с другим collation (Рус, Укр)?
Репликация с 1С
Upgrade
вопросик(по merge-репликации) от brainbench
ERROR !! DBNETLIB???

#089<<  #090

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

sql.ru

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




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

В избранное