Настройка размера сетевого пакета (параметр конфигурации сервера)

Применимо к:SQL Server

В этой статье описывается настройка параметра конфигурации сервера размера сетевого пакета в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Параметр размера сетевого пакета задает размер пакета (в байтах), который используется во всей сети. Пакеты — это фрагменты данных фиксированного размера, с помощью которых осуществляется передача запросов и ответов между клиентами и серверами. Размер пакетов по умолчанию составляет 4096 байт.

Примечание.

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

Параметр вступает в силу немедленно, без перезапуска сервера.

ограничения

  • Максимальный размер сетевого пакета для шифрованных соединений составляет 16 383 байта.

Примечание.

Если функция MARS включена, поставщик SMUX добавляет в пакет 16-байтовый заголовок перед шифрованием TLS, уменьшая максимальный размер сетевого пакета до 16 368 байт.

Рекомендации

  • Это расширенный параметр, и изменять его следует только опытным администраторам баз данных или сертифицированным по SQL Server специалистам.

  • Если приложение осуществляет массовое копирование или отправляет/получает большие объемы данных типа text или image, увеличение размера пакета может повысить эффективность работы системы за счет сокращения числа сетевых операций чтения и записи. Если приложение отправляет и получает небольшие объемы информации, размер пакета можно уменьшить до 512 байт, чего в большинстве случаев достаточно.

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

  • Для запроса на изменение размера пакета также используются функции OLE DB, ODBC и DB-Library. Если сервер не может поддерживать запрошенный размер пакета, ядро СУБД отправит клиенту предупреждение. В некоторых ситуациях изменение размера пакета может привести к ошибке в канале связи, например следующей:

    Native Error: 233, no process is on the other end of the pipe.

Разрешения

sp_configure Разрешения на выполнение без параметров или только с первым параметром предоставляются всем пользователям по умолчанию. Чтобы выполнить sp_configure оба параметра для изменения параметра конфигурации или запуска инструкции RECONFIGURE, пользователю необходимо предоставить разрешение ALTER SETTINGS на уровне сервера. Разрешение ALTER SETTINGS неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin .

Использование SQL Server Management Studio

  1. В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.

  2. Щелкните узел Дополнительно.

  3. На вкладке Сетьвыберите значение в поле Размер сетевого пакета .

Использование Transact-SQL

  1. Соединитесь с ядром СУБД .

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере описывается использование хранимой процедуры sp_configure для задания значения параметра network packet size равным 6500 байт.

USE AdventureWorks2022;
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'network packet size', 6500;
GO
RECONFIGURE;
GO

Дополнительные сведения см. в разделе Параметры конфигурации сервера (SQL Server).

Настройка размера сетевого пакета на стороне клиента

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

Клиентская библиотека Вариант По умолчанию
ODBC SQL_ATTR_PACKET_SIZE Использование серверной стороны
JDBC setPacketSize(int packetSize) 8000
ADO.NET — Microsoft.Data.SqlClient PacketSize 8000
ADO.NET — System.Data.SqlClient PacketSize 8000
OLEDB SSPROP_INIT_PACKETSIZE 0 (используйте сторону сервера)

Вы можете отслеживать событие "Аудит входа" или событие "Существующий Подключение ion" в SQL Profiler, чтобы определить размер сетевого пакета подключения клиента.

Примечание.

Если строка подключения приложения содержит значение размера сетевого пакета, то это значение используется для обмена данными. Если строка подключения не содержит значения, драйверы используют значения по умолчанию для размера сетевого пакета. Например, как описано в предыдущей таблице, приложения SqlClient используют размер пакета по умолчанию 8000, а приложения ODBC используют размер пакета, настроенный на сервере.

Важно!

Собственный клиент SQL Server (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Поставщик OLE DB собственного клиента SQL Server (SQLNCLI или SQLNCLI11) и устаревший поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) не рекомендуется для новой разработки. Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server или последний драйвер Microsoft ODBC для SQL Server .

См. также