Rechercher dans le manuel MySQL
27.12.2.3 The setup_instruments Table
The setup_instruments
table lists
classes of instrumented objects for which events can be
collected:
*************************** 1. row *************************** NAME: wait/synch/mutex/pfs/LOCK_pfs_share_list ENABLED: NO TIMED: NO PROPERTIES: singleton VOLATILITY: 1 DOCUMENTATION: Components can provide their own performance_schema tables. ... *************************** 369. row *************************** NAME: stage/sql/executing ENABLED: NO TIMED: NO PROPERTIES: VOLATILITY: 0 DOCUMENTATION: NULL ... *************************** 687. row *************************** NAME: statement/abstract/Query ENABLED: YES TIMED: YES PROPERTIES: mutable VOLATILITY: 0 refined after SQL parsing. ... *************************** 696. row *************************** NAME: memory/performance_schema/metadata_locks ENABLED: YES TIMED: NULL PROPERTIES: global_statistics VOLATILITY: 1 DOCUMENTATION: Memory used for table performance_schema.metadata_locks ...
Each instrument added to the source code provides a row for
the setup_instruments
table, even
when the instrumented code is not executed. When an instrument
is enabled and executed, instrumented instances are created,
which are visible in the
tables, such as xxx
_instancesfile_instances
or
rwlock_instances
.
Modifications to most
setup_instruments
rows affect
monitoring immediately. For some instruments, modifications
are effective only at server startup; changing them at runtime
has no effect. This affects primarily mutexes, conditions, and
rwlocks in the server, although there may be other instruments
for which this is true.
For more information about the role of the
setup_instruments
table in event
filtering, see
Section 27.4.3, “Event Pre-Filtering”.
The setup_instruments
table has
these columns:
NAME
The instrument name. Instrument names may have multiple parts and form a hierarchy, as discussed in Section 27.6, “Performance Schema Instrument Naming Conventions”. Events produced from execution of an instrument have an
EVENT_NAME
value that is taken from the instrumentNAME
value. (Events do not really have a “name,” but this provides a way to associate events with instruments.)ENABLED
Whether the instrument is enabled. The value is
YES
orNO
. A disabled instrument produces no events. This column can be modified, although settingENABLED
has no effect for instruments that have already been created.TIMED
Whether the instrument is timed. The value is
YES
,NO
, orNULL
. This column can be modified, although settingTIMED
has no effect for instruments that have already been created.A
TIMED
value ofNULL
indicates that the instrument does not support timing. For example, memory operations are not timed, so theirTIMED
column isNULL
.Setting
TIMED
toNULL
for an instrument that supports timing has no effect, as does settingTIMED
to non-NULL
for an instrument that does not support timing.If an enabled instrument is not timed, the instrument code is enabled, but the timer is not. Events produced by the instrument have
NULL
for theTIMER_START
,TIMER_END
, andTIMER_WAIT
timer values. This in turn causes those values to be ignored when calculating the sum, minimum, maximum, and average time values in summary tables.PROPERTIES
The instrument properties. This column uses the
SET
data type, so multiple flags from the following list can be set per instrument:global_statistics
: The instrument produces only global summaries. Summaries for finer levels are unavailable, such as per thread, account, user, or host. For example, most memory instruments produce only global summaries.mutable
: The instrument can “mutate” into a more specific one. This property applies only to statement instruments.progress
: The instrument is capable of reporting progress data. This property applies only to stage instruments.singleton
: The instrument has a single instance. For example, most global mutex locks in the server are singletons, so the corresponding instruments are as well.user
: The instrument is directly related to user workload (as opposed to system workload). One such instrument iswait/io/socket/sql/client_connection
.
VOLATILITY
The instrument volatility. Volatility values range from low to high. The values correspond to the
PSI_VOLATILITY_
constants defined in thexxx
mysql/psi/psi_base.h
header file:#define PSI_VOLATILITY_UNKNOWN 0 #define PSI_VOLATILITY_PERMANENT 1 #define PSI_VOLATILITY_PROVISIONING 2 #define PSI_VOLATILITY_DDL 3 #define PSI_VOLATILITY_CACHE 4 #define PSI_VOLATILITY_SESSION 5 #define PSI_VOLATILITY_TRANSACTION 6 #define PSI_VOLATILITY_QUERY 7 #define PSI_VOLATILITY_INTRA_QUERY 8
The
VOLATILITY
column is purely informational, to provide users (and the Performance Schema code) some hint about the instrument runtime behavior.Instruments with a low volatility index (PERMANENT = 1) are created once at server startup, and never destroyed or re-created during normal server operation. They are destroyed only during server shutdown.
For example, the
wait/synch/mutex/pfs/LOCK_pfs_share_list
mutex is defined with a volatility of 1, which means it is created once. Possible overhead from the instrumentation itself (namely, mutex initialization) has no effect for this instrument then. Runtime overhead occurs only when locking or unlocking the mutex.Instruments with a higher volatility index (for example, SESSION = 5) are created and destroyed for every user session. For example, the
wait/synch/mutex/sql/THD::LOCK_query_plan
mutex is created each time a session connects, and destroyed when the session disconnects.This mutex is more sensitive to Performance Schema overhead, because overhead comes not only from the lock and unlock instrumentation, but also from mutex create and destroy instrumentation, which is executed more often.
Another aspect of volatility concerns whether and when an update to the
ENABLED
column actually has some effect:An update to
ENABLED
affects instrumented objects created subsequently, but has no effect on instruments already created.Instruments that are more “volatile” use new settings from the
setup_instruments
table sooner.
For example, this statement does not affect the
LOCK_query_plan
mutex for existing sessions, but does have an effect on new sessions created subsequent to the update:- UPDATE performance_schema.setup_instruments
This statement actually has no effect at all:
- UPDATE performance_schema.setup_instruments
This mutex is permanent, and was created already before the update is executed. The mutex is never created again, so the
ENABLED
value insetup_instruments
is never used. To enable or disable this mutex, use themutex_instances
table instead.DOCUMENTATION
A string describing the instrument purpose. The value is
NULL
if no description is available.
The setup_instruments
table has
these indexes:
Primary key on (
NAME
)
TRUNCATE TABLE
is not permitted
for the setup_instruments
table.
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 26/06/2006, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/mysql-rf-performance-schema-setup-instruments-table.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.