Что делает вызов функции ISPALUSER в представлениях Msmerge _ * _ VIEW? - PullRequest
0 голосов
/ 05 августа 2009

Я пытаюсь понять, как работает репликация SQL Server 2005, и я смотрю на представления под названием Msmerge_[Publication]_[Table]_VIEW. Кажется, что эти представления определяют фильтры слияния и довольно просты, за исключением одной строки sql в предложении WHERE:

AND ({fn ISPALUSER('1A381615-B57D-4915-BA4B-E16BF7A9AC58')} = 1)

Что делает функция ISPALUSER? Кажется, я нигде не могу найти его ни по функциям в студии управления, ни по упоминанию об этом в Интернете.

(Причина, по которой я смотрю на эти представления, заключается в том, что у нас возникает проблема с производительностью, когда клиент реплицирует новые записи. Sql, например, if not exists (select 1 from [MSmerge_[Publication]_[Table]_VIEW] where [rowguid] = @rowguid) работает и занимает 10+ секунд на строку , что умышленно убивает производительность, когда у вас больше, чем пара строк идет вверх)

1 Ответ

1 голос
/ 06 августа 2009

Кажется, что он проверяет, есть ли у пользователя особая роль безопасности MSmerge_PAL_role, которая, кажется, определяет, кто имеет доступ к функциям репликации.

Следовательно, ISPALUSER проверяет, находится ли пользователь в этой конкретной роли.

Все еще не уверен, что означает PAL.

...