Spec-Zone .ru
спецификации, руководства, описания, API
|
Инструментальное имя состоит из последовательности компонентов, разделенных '/'
символы. Имена в качестве примера:
wait/io/file/myisam/logwait/io/file/mysys/charsetwait/lock/table/sql/handlerwait/synch/cond/mysys/COND_alarmwait/synch/cond/sql/BINLOG::update_condwait/synch/mutex/mysys/BITMAP_mutexwait/synch/mutex/sql/LOCK_deletewait/synch/rwlock/sql/Query_cache_query::lockstage/sql/closing tablesstage/sql/Sorting resultstatement/com/Executestatement/com/Querystatement/sql/create_tablestatement/sql/lock_tables
У инструментального пространства имен есть древовидная структура. Компоненты инструментального имени слева направо обеспечивают прогрессию от более общего до более определенного. Число компонентов, которые имеет имя, зависит от типа инструмента.
Интерпретация данного компонента на имя зависит от компонентов налево от этого. Например, myisam
появляется на оба из следующих имен, но myisam
в имени связывается с файловым
вводом-выводом, тогда как во втором это связывается с инструментом синхронизации:
wait/io/file/myisam/logwait/synch/cond/myisam/MI_SORT_INFO::cond
Инструментальные имена состоят из префикса со структурой, определенной реализацией Схемы Производительности и
суффиксом, определенным разработчиком, реализующим инструментальный код. Высокоуровневый компонент
инструментального префикса указывает на тип инструмента. Этот компонент также определяет который таймер события
в setup_timers
таблица применяется к инструменту. Для префиксной части
инструментальных имен верхний уровень указывает на тип инструмента.
Суффиксная часть инструментальных имен прибывает из кода для инструментов непосредственно. Суффиксы могут включать уровни, такие как они:
Имя для главного компонента (модуль сервера такой как myisam
, innodb
, mysys
, или sql
) или сменное имя.
Имя переменной в коде, в форме XXX
(глобальная переменная) или
(элемент CCC
::MMM
MMM
в class CCC
).
Примеры: COND_thread_cache
, THR_LOCK_myisam
,
BINLOG::LOCK_index
.
Высокоуровневые Инструментальные Компоненты
idle
: Инструментованное неактивное событие. У этого
инструмента нет никаких дальнейших компонентов.
stage
: Инструментованное событие этапа.
statement
: Инструментованное событие оператора.
wait
: Инструментованный ожидает событие.
Неактивные Инструментальные Компоненты
idle
Неактивный инструмент. Схема Производительности генерирует неактивные события как обсуждено в
описании socket_instances.STATE
столбец в Разделе
20.9.2.5," socket_instances
Таблица".
Инструментальные Компоненты этапа
У инструментов этапа есть имена формы stage/
, где code_area
/stage_name
code_area
значение такой как sql
или myisam
, и stage_name
указывает на этап обработки оператора, такой как Sorting result
или Sending data
. Этапы соответствуют
состояниям потока, выведенным на экран SHOW
PROCESSLIST
или это видимо в INFORMATION_SCHEMA.PROCESSLIST
таблица.
Инструментальные Компоненты оператора
statement/com
: Инструментованная работа команды. У них
есть соответствие имен COM_
операции (см. xxx
mysql_com.h
заголовочный файл и sql/sql_parse.cc
.
Например, statement/com/Connect
и statement/com/Fetch
инструменты соответствуют COM_CONNECT
и COM_FETCH
команды.
statement/sql
: Инструментованная работа SQL-оператора.
Например, statement/sql/create_db
и statement/sql/select
инструменты используются для CREATE
DATABASE
и SELECT
операторы.
Ожидайте Инструментальные Компоненты
wait/io
Инструментованная работа ввода-вывода.
wait/io/file
Инструментованная работа файлового ввода-вывода. Для файлов ожидание является временем,
ожидая работы файла, чтобы завершиться (например, звонок fwrite()
). Из-за кэширования, физический файловый
ввод-вывод на диске не мог бы произойти в пределах этого вызова.
wait/io/socket
Инструментованная работа сокета. У инструментов сокета есть имена формы wait/io/socket/sql/
.
У сервера есть сокет слушания для каждого сетевого протокола, который он поддерживает. У
инструментов, связанных с сокетами слушания для TCP/IP или соединений файла сокета Unix,
есть a socket_type
socket_type
значение server_tcpip_socket
или server_unix_socket
,
соответственно. Когда сокет слушания обнаруживает соединение, сервер передает соединение
с новым сокетом, которым управляет отдельный поток. У инструмента для нового потока
соединения есть a socket_type
значение client_connection
.
wait/io/table
Инструментованная табличная работа ввода-вывода. Они включают доступы на уровне строки к персистентным базовым таблицам или временным таблицам. Операции, которые влияют на строки, являются выборкой, вставляют, обновляют, и удаляют. Для представления, ожидает, связываются с базовыми таблицами, на которые ссылается представление.
В отличие от большинства ожидает, табличный ввод-вывод ожидают, может включать другой,
ожидает. Например, табличный ввод-вывод мог бы включать операции памяти или файловый
ввод-вывод. Таким образом, events_waits_current
для таблицы ожидает ввод-вывод,
обычно имеет две строки. Для получения дополнительной информации см. Раздел
20.6, "Atom Схемы производительности и События Молекулы".
Некоторые операции строки могли бы вызвать многократный табличный ввод-вывод, ожидает. Например, вставка могла бы активировать триггер, который вызывает обновление.
wait/lock
Инструментованная работа блокировки.
wait/lock/table
Инструментованная работа блокировки таблицы.
wait/synch
Инструментованный объект синхронизации. Для объектов синхронизации, TIMER_WAIT
время включает количество времени, блокированное, пытаясь
получить блокировку на объекте, если любой.
wait/synch/cond
Условие используется одним потоком, чтобы сигнализировать к другим потокам, что что-то, чего они ожидали, произошло. Если единственный поток ожидал условия, он может проснуться и продолжиться с его выполнением. Если несколько потоков ожидали, они могут все проснуться и конкурировать за ресурс, которого они ожидали.
wait/synch/mutex
Объект взаимного исключения, используемый, чтобы разрешить доступ к ресурсу (такому как раздел исполняемого кода), препятствуя тому другим потокам получить доступ к ресурсу.
wait/synch/rwlock
Объект блокировки чтения-записи, используемый, чтобы заблокировать определенную переменную для доступа, предотвращая ее использование другими потоками. Совместно используемая блокировка чтения может быть получена одновременно многократными потоками. Монопольная блокировка записи может быть получена только одним потоком за один раз.