Включить протокол Shared Memory в 1С

Включить протокол Shared Memory в 1С можно в том случае, когда сервер приложений и сервер СУБД находятся на одном компьютере.

В режиме работы, задаваемом по умолчанию, Microsost SQL Server и сервер приложений «1С:Предприятия» работают друг с другом только через TCP/IP.

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

Но все меняется, когда серверы находятся на одной вычислительной системе: лучше и быстрее использовать оперативную память для обмена данными, используя протокол Shared Memory (общая память). Этот протокол позволяет добиться увеличения скорости обмена данными между серверами за счет отсутствия передачи данных по сети, причем прирост производительности может составлять от 10 до 15%. Особенно заметно ускорение на операциях с частыми вызовами сервера.

С свойствах информационной базы должен быть указан <servername> или <servername>\<instancename>, не указывать ip-адрес, FQDN имен адресации типа sample.gtw-02.office4. example.com

Можно указать протокол в явном виде lpc:<servername>

Протокол Shared Memory должен быть с наивысшим приоритетом, ненужные протоколы отключены или не использоваться. Например если будет tcp:<servername> или использоваться alias, то вы не сможете использовать обмен через память. Есть смысл в отдельных случаях отключить Named Pipes.

Обратите внимание, что в версиях платформы 8.2.17.143 некоторые релизы «переключались» на протокол «именнованых каналов».

Для работы 1С Предприятие 8.2.17 в режиме  Shared Memory с SQL Server 2012 должен быть установлен NativeClient от SQL Server 2008 (backward compatibility  connectivity components из дистрибутива SQL Server 2012 или отдельный пакет)

Включение Shared Memory
Запускаем Диспетчер конфигурации SQL Server.

Производим следующую настройку SQL Native Client – Клиентские протоколы – Общая память – Включено = Да, нажимаем Ok.

Перезапускаем службу SQL сервера

Как проверить что 1С использует Shared Memory?

Существует два способа: 1. С помощью запроса в Management Studio Запускаем на исполнение запрос:

select program_name,net_transport
from sys.dm_exec_sessions as t1
left join sys.dm_exec_connections AS t2 ON t1.session_id=t2.session_id
where not t1.program_name is null

В результате получаем:

Во второй колонке видим результат «Shared Memory», то есть нужный нам протокол работает.

2. С помощью SQL Profiler

  • Заходим в базу 1С (для установления соединения с СУБД)
  • Запускаем SQL Profiler и подключаемся к нашему серверу СУБД
  • Включаем сбор события ExistingConnection, выполняя следующее:
  • На закладке «Выбор событий» включаем флаги «Показать все столбцы» и «Показать все события»
  • Выбираем класс событий «Sessions» ибцов» устанавливаем фильтр на имя приложения

При трассировке увидим следующее:

В нижней части окна должна отображаться надпись: «network protocol: LPC», расшифровывается как «Local Procedure Call».

Это говорит о том, что протокол Shared Memory включен и используется.

Данный протокол не начинал работать, пока в качестве сервера СУБД не прописали localhost для информационной базы «1С:Предприятия».