Поделиться через


Конфигурация сервера: размер сетевого пакета

Область применения: SQL Server

В этой статье описывается настройка network packet size параметра конфигурации сервера в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Параметр network packet size задает размер пакета (в байтах), который используется во всей сети. Пакеты — это фрагменты данных фиксированного размера, с помощью которых осуществляется передача запросов и ответов между клиентами и серверами. Размер пакетов по умолчанию составляет 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 master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'network packet size', 6500;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

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

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

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

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

Вы можете отслеживать событие "Аудит входа" или событие ExistingConnection в 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 для SQL Server или последнему драйверу Microsoft ODBC для SQL Server .