Найти в Дзене

Shared memory 1с как включить

Протокол Shared Memory (разделяемая память) используется для ускорения взаимодействия между сервером 1С:Предприятия и сервером СУБД (чаще всего Microsoft SQL Server), если они Установлены на одном физическом или виртуальном сервере. Это позволяет избежать сетевых задержек, так как данные передаются напрямую через оперативную память, а не по сетевым протоколам (например, TCP/IP).

Для включения и проверки использования Shared Memory в связке 1С + MS SQL Server выполните следующие шаги:

1. Включение протокола Shared Memory на SQL Server

Запустите Диспетчер Конфигурации SQL Server (SQL Server Configuration Manager).

Его можно найти через меню "Пуск" (обычно в папке "Microsoft SQL Server <версия> -> Средства настройки").

Настройте клиентские протоколы:

В левой панели разверните "SQL Native Client Configuration" (или "SQL Native Client Configuration (32-bit)" в зависимости от вашей версии и разрядности). Выберите "Client Protocols" (Клиентские протоколы). В правой панели найдите протокол "Shared Memory" (Общая память). Убедитесь, что его статус "Enabled" (Включено). Если нет, кликните правой кнопкой мыши и выберите "Enable". Рекомендуется также проверить приоритет протоколов. Shared Memory должен быть выше TCP/IP, если вы хотите, чтобы он использовался по умолчанию при локальном подключении. Вы можете изменить порядок, перемещая протоколы вверх/вниз.

Настройте серверные протоколы:

В левой панели разверните "SQL Server Network Configuration" (Сетевая конфигурация SQL Server). Выберите "Protocols for <имя_экземпляра_sql_server> " (Протоколы для <имя_экземпляра_sql_server> ). Убедитесь, что протокол "Shared Memory" (Общая память) также "Enabled" (Включено).

Перезапустите службу SQL Server:

В Диспетчере конфигурации SQL Server в левой панели выберите "SQL Server Services" (Службы SQL Server). В правой панели найдите вашу службу SQL Server (обычно "SQL Server (<имя_экземпляра> )"). Кликните правой кнопкой мыши и выберите "Restart" (Перезапустить). Это важно для применения изменений.

2. Настройка 1С:Предприятия для использования Shared Memory

Для того чтобы 1С использовала Shared Memory, когда сервер 1С и SQL Server находятся на одной машине, в настройках информационной базы на сервере 1С:Предприятия (в консоли администрирования или при создании/изменении базы) в качестве имени сервера СУБД необходимо указать:

Localhost или Lpc:имя_вашего_SQL_сервера (например, lpc:SQLSERVER1) или Lpc:127.0.0.1

Использование localhost или lpc: явно указывает 1С на попытку использовать локальное соединение через Shared Memory.

Шаги в консоли администрирования сервера 1С:

Откройте "Консоль администрирования серверов 1С:Предприятия". Разверните "Кластеры" -> ваш кластер -> "Информационные базы". Выберите нужную информационную базу, кликните правой кнопкой мыши и выберите "Изменить". В поле "Сервер баз данных" (Database server) укажите localhost или lpc:имя_вашего_SQL_сервера. Нажмите "ОК".

3. Проверка использования Shared Memory

Существует несколько способов убедиться, что 1С действительно использует протокол Shared Memory:

A. С Помощью SQL Server Management Studio (SSMS):

Подключитесь к вашему SQL Server с помощью SSMS. Откройте новый запрос. Выполните следующий запрос:

SQL

SELECT

s. program_name,

c. net_transport

FROM

sys. dm_exec_sessions AS s

LEFT JOIN

sys. dm_exec_connections AS c ON s. session_id = c. session_id

WHERE

s. program_name LIKE ‘%1C%’ OR s. program_name LIKE ‘%v8%’

ORDER BY

s. program_name;

В результатах запроса в колонке net_transport для соединений от 1С (которые будут иметь program_name вида 1C:Enterprise — <…>) вы должны увидеть значение Shared Memory. Если видите TCP, значит протокол Shared Memory не используется.

B. С помощью SQL Server Profiler (для детального анализа):

Запустите SQL Server Profiler. Подключитесь к вашему SQL Server. Настройте трассировку:

На вкладке "Выбор событий" (Events Selection) включите флаги "Показать все столбцы" (Show all columns) и "Показать все события" (Show all events). Разверните класс событий "Sessions" и включите событие "ExistingConnection". Можно установить фильтр на имя приложения (ApplicationName в "Column Filters"), чтобы видеть только соединения от 1С (например, 1C:Enterprise%).

Запустите трассировку. Зайдите в базу 1С, чтобы установить соединение с СУБД. В окне Profiler вы увидите события. В строке для соединения 1С в столбце Network Protocol должно быть указано LPC (Local Procedure Call), что соответствует использованию Shared Memory.

Важные замечания:

Расположение серверов: Shared Memory работает только тогда, когда Сервер 1С:Предприятия и сервер SQL Server установлены на одной и той же машине. Если они находятся на разных серверах, то будут использоваться сетевые протоколы (TCP/IP или Named Pipes). Версии: Убедитесь, что используемая версия SQL Native Client (устанавливается вместе с SQL Server или как отдельный компонент) совместима с вашей версией 1С. В некоторых случаях для старых версий 1С и новых SQL Server требовался отдельный Native Client. Производительность: Использование Shared Memory может дать существенный прирост производительности, особенно на операциях с большим количеством мелких запросов к СУБД. Однако, если узким местом является не канал связи, а, например, дисковая подсистема или нехватка ОЗУ, то эффект может быть менее заметным. Named Pipes: Другой локальный протокол – Named Pipes (Именованные каналы). Он также работает без сетевых задержек, но Shared Memory обычно считается чуть более быстрым. Приоритет Shared Memory в конфигурации SQL Server обычно выше.

Следуя этим шагам, вы сможете включить и проверить использование Shared Memory для вашей системы 1С + SQL Server.