Spec-Zone .ru
спецификации, руководства, описания, API
|
С MySQL 5.6.3, инструментального выполнения оператора Схемы Производительности. События оператора имеют место на высоком уровне иерархии события. Ожидайте вложенное множество событий в пределах событий этапа, который вложенное множество в пределах событий оператора.
Эти таблицы хранят события оператора:
events_statements_current
:
Текущие события оператора
events_statements_history
:
Новые события оператора для каждого потока
events_statements_history_long
:
Новые события оператора повсюду
Контроль оператора начинается с момента, когда сервер видит, что действие требуют на потоке к моменту, когда все действие прекратилось. Как правило, это означает со времени, сервер получает первый пакет от клиента ко времени, которое сервер закончил отправлять ответу. Контроль происходит только для высокоуровневых операторов. Операторы в пределах сохраненных программ и подзапросов не замечаются отдельно.
Запрос от клиента может быть или командой или SQL-оператором:
Команды сервера соответствуют COM_
определенный в xxx
codesmysql_com.h
заголовочный файл и обработанный в sql/sql_parse.cc
. Примеры COM_PING
, COM_QUERY
, и COM_QUIT
. У инструментов для команд есть имена, которые начинаются statement/com
, такой как statement/com/Ping
,
statement/com/Query
, и statement/com/Quit
.
SQL-операторы выражаются как текст, такой как DELETE FROM
t1
или SELECT * FROM t2
. У инструментов для SQL-операторов есть
имена, которые начинаются statement/sql
, такой как statement/sql/delete
и statement/sql/select
.
Есть также специальные инструменты обработки ошибок:
statement/com/Error
учитывает сообщения, полученные
сервером, которые испытывают недостаток полосы. Это может использоваться, чтобы обнаружить команды,
отправленные клиентами, которые не понимает сервер. Это может быть полезно в целях, таких как
идентификация клиентов, которые неправильно конфигурируются или использование версии MySQL, более
свежего чем тот из сервера, или клиенты, которые пытаются атаковать сервер.
statement/sql/error
учитывает SQL-операторы тот сбой,
чтобы проанализировать. Это может использоваться, чтобы обнаружить уродливые запросы, отправленные
клиентами. Запрос, который не в состоянии проанализировать, отличается от запроса, который анализирует,
но перестал работать из-за ошибки во время выполнения. Например, SELECT *
FROM
уродливо, и statement/sql/error
инструмент используется. В
отличие от этого, SELECT *
синтаксические анализы, но сбои с a No tables used
ошибка. В этом случае, statement/sql/select
используется и событие оператора содержит информацию, чтобы указать на природу ошибки.
Детали для запроса не первоначально известны. Например, потому что SQL-оператор отправляется как текст внутри a
COM_QUERY
пакет, надлежащее statement/sql/*
инструмент
не известен в настоящее время, запрос получается. Схема Производительности в первых инструментах такой запрос,
используя событие с EVENT_NAME
из statement/com/Query
.
Затем это изменяется EVENT_NAME
оцените любому допустимое statement/sql/*
назовите, если оператор анализирует, или к statement/sql/error
если это не делает.