Поток - это задача виртуального процессора, точно так же, как виртуальный процессор является задачей центрального процессора (CPU). Виртуальный процессор - это задача, выполнение которой на CPU запланировано операционной системой; поток сервера баз данных - это задача, обработка которой запланирована внутри виртуального процессора. Потоки иногда называют облегченными процессами, так как они похожи на процессы, но предъявляют меньше требований к операционной системе.
Виртуальные процессоры сервера баз данных являются многопоточными, так как на них выполняются несколько параллельных потоков.
Потоки имеют следующую природу.
| Операционная система | Действие |
|---|---|
| UNIX | Поток - это задача, обработка которой запланирована внутри виртуального процессора. |
| Windows | Поток - это задача, обработка которой запланирована внутри виртуального процессора. Поскольку виртуальный процессор реализуется как поток Windows, потоки сервера баз данных выполняются внутри потоков Windows. |
Виртуальный процессор выполняет потоки от имени клиентских программ SQL (потоки сеансов), а также для выполнения внутренних требований (внутренние потоки). В большинстве случаев для каждого соединения клиентской программы сервер баз данных запускает по одному потоку сеанса. Сервер баз данных выполняет внутренние потоки для обработки ввода/вывода базы данных, ввода/вывода журнала, очистки страниц, выполнения административных задач, а также прочих задач. Информацию о тех случаях, когда сервер баз данных выполняет несколько потоков сеансов для одного клиента, смотрите в разделе Параллельная обработка.
Пользовательский поток - это поток сервера баз данных, который обслуживает требования, поступающие от клиентских программ. К пользовательским потокам относятся потоки сеансов, именуемые потоками sqlexec, которые представляют собой первичные потоки, выполняемыми сервером баз данных для обслуживания клиентских программ.
К пользовательским потокам также относятся потоки, обслуживающие требования утилиты onmode, потоки восстановления, потоки сканера B-дерева и потоки чистильщиков страниц.
Чтобы просмотреть активные пользовательские потоки, используйте команду onstat -u. Более подробную информацию о мониторинге сеансов и потоков смотрите в публикации IBM Informix Performance Guide.