partners section

Тюнинг и мониторинг эффективности

Первым шагом в настройке производительности является обеспечение того, аппаратное и программное обеспечение настроен соответствующим образом.

Серверного и сетевого Соображения

  • Убедитесь, что каждый компьютер имеет достаточный подсистему ввода-вывода, и что файлы базы данных правильно выделены.

    Скорость чтения и записи изменений на диск, как правило, более важным, чем скорость сети, поэтому адекватная подсистема ввода-вывода имеет важное значение. Рекомендуется использовать несколько массивов RAID диска, и иметь один выделенный массив каждый на сервере для TEMPDB, пользовательских баз данных и журналов транзакций. TEMPDB, пользовательских баз данных, и журналов транзакций должны быть созданы в отдельных группах файлов. Если один или несколько пользовательских таблиц оказаться узким местом обработки, рассмотреть вопрос о переходе их в отдельные группы файлов.

  • Попробуйте добавить память для компьютеров в топологии синхронизации.

    Это особенно важно для этих серверах, которые участвуют в большом количестве одновременных сеансов синхронизации. Сеансы Синхронизация обычно включают длительных транзакций, поэтому важно иметь значительное количество памяти, которое напрямую адресуются по базе данных сервера. В случае SQL Server, рассмотрите возможность использования ключа / 3GB для 32-битных систем или переход на 64-битной системе. Для получения дополнительной информации см. раздел "адресного пространства процесса" в документации по SQL Server.

  • Установите минимальный и максимальный объем памяти, выделяемой в базу данных сервера.

    Например, по умолчанию, изменяет Database Engine свои требования к памяти динамически на основе доступных системных ресурсов. Чтобы избежать низкую доступность памяти во время деятельности синхронизации, используйте мин памяти сервера возможность установить минимальный объем доступной памяти. Чтобы избежать страницу операционной системы на диск для памяти, вы также можете установить максимальный объем памяти с максимальной памяти сервера опции. Для получения дополнительной информации см. документацию по SQL Server.

База данных и дизайна приложений

  • Следуйте рекомендациям по разработке базы данных.

    База данных участвует в синхронизации обычно выигрывает от тех же оптимизации производительности, как любой подобной базы данных. Для получения дополнительной информации об оптимизации баз данных см. документацию по SQL Server. Будьте в курсе следующих соображений для индексов:

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

    • Таблицы метаданных должны быть проиндексированы надлежащим образом. Платформа Sync Framework добавляет индексы для всех таблиц, которые он создает. Если вы создаете таблицы метаданных для DbSyncProvider см. Как подготовить серверную базу данных для синхронизации совместной работы (Non-SQL Server) , а также для DbServerSyncProvider см. Как Используйте отслеживания изменений системы .

  • Установите соответствующие значения для тайм-аута блокировки базы данных и ожидания запроса.

  • Свернуть конфликты через дизайн публикации и поведения приложений.

    Заявки должны быть разработаны, чтобы избежать конфликтов, если они могут, потому что обнаружение и разрешение конфликтов ввести дополнительные сложности, обработку и сетевой трафик. Наиболее распространенные способы, чтобы избежать конфликтов являются:

    • Обновить таблицу только на одном узле, или

    • Фильтр данные таким образом, что только один узел обновляет конкретный набор строк. Например, в сценарии клиент-сервер, вы можете горизонтально данные раздела через клиентов таким образом, чтобы каждый клиент меняет только один «срез» данных, таких как контактную информацию для клиентов в Вашингтоне.

  • Используйте фильтрацию рассудительно.

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

  • Будьте осторожны с логикой приложения в триггерах и запросов синхронизации.

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

  • Используйте хранимые процедуры для команд баз данных.

    Платформа Sync Framework использует несколько запросов, чтобы выбрать и применить изменений данных и метаданных во время сеанса синхронизации.Если вы создаете эти запросы вручную, инкапсулировать их в хранимых процедурах. Это, как правило, обеспечивает более высокую производительность и удобство обслуживания, а также может помочь для защиты приложений. Если приложение требует встроенный SQL вместо хранимых процедур, не забудьте использовать ADO.NET Подготовьте (метод) для всех команд. Это повышает производительность для встроенного SQL.

  • Используйте объемную применение изменений

    Платформа Sync Framework использует параметры с табличными значениями применять вставки, обновления и удаления с базами данных SQL Azure SQL Server 2008 и. Эта функция позволяет нескольким изменения, которые будут внесены в базу данных с помощью одного хранимую процедуру вызова. Это значительно повышает производительность и уменьшает количество циклов между клиентом и сервером во время применения изменений. Если основная часть приложения не доступен, платформа Sync Framework возвращается использовать одно приложение товаром. Если вы не хотите, чтобы применить изменения в объеме, передать ложное чтобы SqlSyncScopeProvisioning . SetUseBulkProceduresDefault перед вами предоставления вашей базе данных, и объемные процедуры не будет создан.

  • Синхронизация только данные, необходимые в каждом узле.

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

  • Группы синхронизации Дизайн и области Соответственно, и использовать соответствующую направление синхронизации для каждой области.

    Область представляет собой набор таблиц, которые синхронизируются как единое целое. Один или несколько таблиц в рамки могут быть отфильтрованы и таблицы могут быть включены в более чем одной области. Убедитесь, что объемы отражают структуру и использования моделей столов, которые они содержат. Рассмотрим следующие четыре таблицы в приложении торгового персонала:

    • Заказы и OrderDetails

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

    • Ценообразование

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

    • Продукты

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