Производительность запросов Microsoft Sync Framework - PullRequest
4 голосов
/ 12 ноября 2008

Мы разрабатываем продукт, использующий Microsoft Sync Framework для синхронизации данных в клиентском приложении и на сервере. Мы заметили, что при синхронизации около 16 таблиц и ~ 2200 записей это займет около 4 минут, что недопустимо.

Используя SQL Server Profiler, мы обнаружили, что он использует sp_executesql для выполнения запросов. при запуске без sp_executesql конкретный запрос выполняется за <1 с, но при этом он занимает более 10 с. </p>

Итак, вопрос в том, что мы делаем неправильно, и можем ли мы что-то сделать, чтобы ускорить его.

Ответы [ 2 ]

2 голосов
/ 04 декабря 2008

sp_executesql использует динамический sql. каждая строка обрабатывается по отдельности.

4 минуты кажутся довольно длинными, вы должны посмотреть на дизайн ваших 16 таблиц и проверить их производительность. Попробуйте использовать план выполнения, чтобы увидеть, где может возникнуть узкое место.

проверить эту ссылку, которая охватывает основы:

Основы плана выполнения SQL

Попробуйте прокрутить вниз до конца статьи, где есть скриншоты реального графического интерфейса в SQL Management Studio. В этой статье есть некоторые скучные части, но вы можете хотя бы увидеть графический план выполнения и его преимущества.

0 голосов
/ 01 ноября 2009

Улучшения производительности перечислены в MSDN в разделе «Что нового» для Sync Framework 2.0 .

Улучшения производительности

Новые поставщики баз данных в этом выпуске были тщательно протестированы в большом масштабировать сценарии, в которых один сервер поддерживает тысячи клиентов с сотнями одновременных синхронизация операций. это тестирование привело к большому количеству внутренние улучшения производительности включить базу данных Sync Framework поставщики, чтобы работать так же, как и другие Технологии Microsoft, такие как Remote Доступ к данным (RDA), предлагая широкий спектр возможностей, которые конкурировать с комплексными решениями, такими как репликация слиянием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...