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


sys.dm_os_sys_info (Transact-SQL)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Возвращает дополнительный набор полезных сведений о компьютере и о ресурсах, доступных и используемых SQL Server.

Примечание.

Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_os_sys_info. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.

Имя столбца Тип данных Заметки о описании и версии
cpu_ticks bigint Указывает текущее количество проверок ЦП. Метки времени ЦП поступают от счетчика процессора RDTSC. Это монотонно увеличивающееся число. Не допускает значения NULL.
ms_ticks bigint Указывает число миллисекунд, прошедших со времени запуска компьютера. Не допускает значения NULL.
cpu_count int Указывает количество логических процессоров в системе. Не допускает значения NULL.

В База данных SQL Azure этот столбец может вернуть количество логических ЦП на компьютере, на котором размещена база данных или эластичные пулы. Чтобы определить количество логических ЦП, доступных для базы данных или эластичного пула, используйте cpu_limit столбец в sys.dm_user_db_resource_governance.
hyperthread_ratio int Указывает количество логических или физических ядер, соответствующих одному физическому пакету процессора. Не допускает значения NULL.
physical_memory_in_bytes bigint Применимо: SQL Server 2008 (10.0.x) и SQL Server 2008 R2 (10.50.x).

Указывает общий объем физической памяти компьютера. Не допускает значения NULL.
physical_memory_kb bigint Применимо: SQL Server 2012 (11.x) и более поздних версий.

Указывает общий объем физической памяти компьютера. Не допускает значения NULL.

В База данных SQL Azure этот столбец возвращает общий объем физической памяти на компьютере с базой данных или эластичным пулом. Чтобы определить объем физической памяти, доступной для базы данных или эластичного пула, используйте process_memory_limit_mb столбец в sys.dm_os_job_object.
virtual_memory_in_bytes bigint Применимо: SQL Server 2008 (10.0.x) и SQL Server 2008 R2 (10.50.x).

Объем виртуальной памяти, доступной процессу в пользовательском режиме. Это значение можно использовать для определения того, был ли запущен SQL Server с помощью 3 ГБ коммутатора.
virtual_memory_kb bigint Применимо: SQL Server 2012 (11.x) и более поздних версий.

Указывает общий объем виртуального адресного пространства, доступного процессу в пользовательском режиме. Не допускает значения NULL.
bpool_committed int Применимо: SQL Server 2008 (10.0.x) и SQL Server 2008 R2 (10.50.x).

Представляет фиксированную физическую память в килобайтах (КБ) в диспетчере памяти. Не включает зарезервированную память в диспетчер памяти. Не допускает значения NULL.
committed_kb bigint Применимо: SQL Server 2012 (11.x) и более поздних версий.

Представляет фиксированную физическую память в килобайтах (КБ) в диспетчере памяти. Не включает зарезервированную память в диспетчер памяти. Не допускает значения NULL.
bpool_commit_target int Применимо: SQL Server 2008 (10.0.x) и SQL Server 2008 R2 (10.50.x).

Представляет объем памяти, в килобайтах (КБ), доступный диспетчеру памяти SQL Server.
committed_target_kb bigint Применимо: SQL Server 2012 (11.x) и более поздних версий.

Представляет объем памяти, в килобайтах (КБ), доступный диспетчеру памяти SQL Server. Целевой объем вычисляется с помощью нескольких входных данных, таких как:

— текущее состояние системы, включая ее нагрузку
— память, запрошенная текущими процессами
— объем памяти, установленной на компьютере
— параметры конфигурации

Если committed_target_kb размер больше committed_kb, диспетчер памяти пытается получить больше памяти. Если committed_target_kb значение меньше committed_kb, диспетчер памяти пытается уменьшить объем памяти, зафиксированный. Всегда committed_target_kb включает украденную и зарезервированную память. Не допускает значения NULL.
bpool_visible int Применимо: SQL Server 2008 (10.0.x) и SQL Server 2008 R2 (10.50.x).

Количество буферов по 8 KБ в буферном пуле, которые непосредственно доступны в виртуальном адресном пространстве процесса. Если не использовать расширения окна адресов (AWE), когда пул буферов получает целевой объект памяти (bpool_committed = bpool_commit_target), значение bpool_visible равно значению bpool_committed. При использовании AWE в 32-разрядной версии SQL Server представляет размер окна сопоставления AWE, bpool_visible используемого для доступа к физической памяти, выделенной буферным пулом. Размер этого окна сопоставления связан адресным пространством процесса, поэтому видимый объем меньше, чем зафиксированная сумма. Это значение может быть дополнительно сокращено внутренними компонентами, потребляющими память, в целях, отличных от страниц базы данных. Если значение bpool_visible слишком низко, может возникнуть ошибка памяти.
visible_target_kb bigint Применимо: SQL Server 2012 (11.x) и более поздних версий.

То же самое, что committed_target_kbи . Не допускает значения NULL.
stack_size_in_bytes int Задает размер стека вызовов для каждого потока, созданного SQL Server. Не допускает значения NULL.
os_quantum bigint Представляет такт времени для задач без вытеснения, выраженный в миллисекундах. Quantum (в секундах) = os_quantum / скорость ЦП. Не допускает значения NULL.
os_error_mode int Указывает режим ошибки для процесса SQL Server. Не допускает значения NULL.
os_priority_class int Задает класс приоритета для процесса SQL Server. Допускает значение NULL.

32 = обычный. Журнал ошибок говорит, что SQL Server начинается с обычной базы приоритета (7).
128 = высокий. Журнал ошибок говорит, что SQL Server работает на базе высокого приоритета (13).

Дополнительные сведения см. в разделе "Настройка приоритета" (параметр конфигурации сервера).
max_workers_count int Представляет максимальное число исполнителей, которые могут быть созданы. Не допускает значения NULL.
scheduler_count int Представляет количество планировщиков пользователей, настроенных в процессе SQL Server. Не допускает значения NULL.
scheduler_total_count int Представляет общее количество планировщиков в SQL Server. Не допускает значения NULL.
deadlock_monitor_serial_number int Указывает идентификатор текущей последовательности монитора взаимоблокировок. Не допускает значения NULL.
sqlserver_start_time_ms_ticks bigint ms_tick Представляет номер при последнем запуске SQL Server. Сравнение с текущим ms_ticks столбцом. Не допускает значения NULL.
sqlserver_start_time datetime Указывает дату и время последнего запуска SQL Server локальной системы. Не допускает значения NULL.

Информация во многих других динамических представлениях SQL Server включает только действия с момента запуска последнего ядра СУБД. Используйте этот столбец, чтобы найти последнее время запуска SQL Server ядро СУБД.
affinity_type int Область применения: SQL Server 2008 R2 (10.50.x) и более поздних версий.

Задает текущий используемый тип привязки процесса к процессорам. Не допускает значения NULL. Дополнительные сведения см. в разделе ALTER SERVER CONFIGURATION (Transact-SQL).

1 = MANUAL
2 = AUTO
affinity_type_desc nvarchar(60) Область применения: SQL Server 2008 R2 (10.50.x) и более поздних версий.

Описывает affinity_type столбец. Не допускает значения NULL.

MANUAL = сходство было задано по крайней мере для одного ЦП.
AUTO = SQL Server может свободно перемещать потоки между ЦП.
process_kernel_time_ms bigint Область применения: SQL Server 2008 R2 (10.50.x) и более поздних версий.

Общее время в миллисекундах, затраченное всеми потоками SQL Server в режиме ядра. Это значение может быть больше, чем время одного процессора, поскольку оно включает в себя время всех процессоров сервера. Не допускает значения NULL.
process_user_time_ms bigint Область применения: SQL Server 2008 R2 (10.50.x) и более поздних версий.

Общее время в миллисекундах, затраченное всеми потоками SQL Server в пользовательском режиме. Это значение может быть больше, чем время одного процессора, поскольку оно включает в себя время всех процессоров сервера. Не допускает значения NULL.
time_source int Область применения: SQL Server 2008 R2 (10.50.x) и более поздних версий.

Указывает API, с помощью которого SQL Server используется для получения времени на стены. Не допускает значения NULL.

0 = QUERY_PERFORMANCE_COUNTER
1 = MULTIMEDIA_TIMER
time_source_desc nvarchar(60) Область применения: SQL Server 2008 R2 (10.50.x) и более поздних версий.

Описывает time_source столбец. Не допускает значения NULL.

QUERY_PERFORMANCE_COUNTER= API QueryPerformanceCounter извлекает время на часах.
MULTIMEDIA_TIMER = API мультимедийного таймера , который получает время настенных часов.
virtual_machine_type int Область применения: SQL Server 2008 R2 (10.50.x) и более поздних версий.

Указывает, работает ли SQL Server в виртуализированной среде. Не допускает значения NULL.

0 = NONE
1 = HYPERVISOR
2 = OTHER
virtual_machine_type_desc nvarchar(60) Область применения: SQL Server 2008 R2 (10.50.x) и более поздних версий.

Описывает virtual_machine_type столбец. Не допускает значения NULL.

NONE = SQL Server не выполняется внутри виртуальной машины.
HYPERVISOR = SQL Server выполняется внутри виртуальной машины, размещенной под управлением ос под управлением гипервизора (ос узла, использующей аппаратное виртуализацию).
OTHER = SQL Server выполняется внутри виртуальной машины, размещенной операционной системой, которая не использует аппаратный помощник, например Microsoft Virtual PC.
softnuma_configuration int Область применения: SQL Server 2016 (13.x) и более поздних версий.

Указывает способ настройки узлов NUMA. Не допускает значения NULL.

0 = OFF указывает, что оборудование по умолчанию
1 = автоматизированное soft-NUMA
2 = вручную soft-NUMA через реестр
softnuma_configuration_desc nvarchar(60) Область применения: SQL Server 2016 (13.x) и более поздних версий.

OFF = функция Soft-NUMA отключена
ON = SQL Server автоматически определяет размеры узлов NUMA для Soft-NUMA
MANUAL = вручную настроено soft-NUMA
process_physical_affinity nvarchar(3072) Область применения: начиная с SQL Server 2017 (14.x).

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
sql_memory_model int Область применения: SQL Server 2012 (11.x) с пакетом обновления 4 (SP4), SQL Server 2016 (13.x) с пакетом обновления 1 (SP1) и более поздних версий.

Указывает модель памяти, используемую SQL Server для выделения памяти. Не допускает значения NULL.

1 = обычная модель памяти
2 = блокировка страниц в памяти
3 = большие страницы в памяти
sql_memory_model_desc nvarchar(60) Область применения: SQL Server 2012 (11.x) с пакетом обновления 4 (SP4), SQL Server 2016 (13.x) с пакетом обновления 1 (SP1) и более поздних версий.

Указывает модель памяти, используемую SQL Server для выделения памяти. Не допускает значения NULL.

CONVENTIONAL = SQL Server использует обычную модель памяти для выделения памяти. Это по умолчанию ядро СУБД модель памяти, если у учетной записи службы SQL Server нет привилегий блокировки в памяти во время запуска.
LOCK_PAGES = SQL Server использует блокировку страниц в памяти для выделения памяти. Это диспетчер памяти по умолчанию ядро СУБД, если учетная запись службы SQL Server имеет привилегию "Блокировка страниц в памяти" во время запуска SQL Server.
LARGE_PAGES = SQL Server использует большие страницы в памяти для выделения памяти. SQL Server использует средство выделения памяти только с корпоративным выпуском, если у учетной записи службы SQL Server есть привилегия "Блокировка страниц в памяти" во время запуска сервера и включение флага трассировки 834.
pdw_node_id int Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)

Идентификатор узла, на который находится данное распределение.
socket_count int Область применения: SQL Server 2016 (13.x) с пакетом обновления 2 (SP2) и более поздних версий.

Указывает количество сокетов процессора, доступных в системе.
cores_per_socket int Область применения: SQL Server 2016 (13.x) с пакетом обновления 2 (SP2) и более поздних версий.

Указывает количество процессоров на сокет, доступный в системе.
numa_node_count int Область применения: SQL Server 2016 (13.x) с пакетом обновления 2 (SP2) и более поздних версий.

Указывает количество узлов NUMA, доступных в системе. Этот столбец включает физические узлы NUMA и мягкие узлы NUMA.
container_type int Область применения: SQL Server 2017 (14.x) и более поздних версий.

Указывает тип контейнера SQL Server, запущенного внутри. Не допускает значения NULL.

0 (по умолчанию) = NONE
1 = LINUX CONTAINER
2 = WINDOWS SERVER CONTAINER
3 = HYPER-V CONTAINER
container_type_desc nvarchar(60) Область применения: SQL Server 2017 (14.x) и более поздних версий.

Описывает container_type столбец. Не допускает значения NULL.

NONE = SQL Server не выполняется в контейнере.
LINUX CONTAINER = SQL Server выполняется в контейнере Linux.
WINDOWS SERVER CONTAINER = SQL Server выполняется в контейнере Windows Server.
HYPER-V CONTAINER = SQL Server выполняется в контейнере Hyper-V.

Разрешения

Для SQL Server 2019 (15.x) и более ранних версий и Управляемый экземпляр SQL требуется VIEW SERVER STATE разрешение.

В SQL Server 2022 (16.x) и более поздних версиях требуется VIEW SERVER PERFORMANCE STATE разрешение на сервере.

Для целей службы База данных SQL Azure Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader## роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE в базе данных или членство в роли сервера ##MS_ServerStateReader##.