25.6.17.42 Таблица ndbinfo locks_per_fragment
Таблица locks_per_fragment предоставляет информацию о количестве запросов на захват блокировок и результатах этих запросов на фрагмент, являясь таблицей-компаньоном к operations_per_fragment и memory_per_fragment. Эта таблица также показывает общее время ожидания блокировок, успешно и безуспешно, начиная с создания фрагмента или таблицы или с последнего перезапуска.
Таблица locks_per_fragment содержит следующие столбцы:
-
fq_nameПолное имя таблицы
-
parent_fq_nameПолное имя родительского объекта
-
typeТип таблицы; см. текст для возможных значений
-
table_idИдентификатор таблицы
-
node_idИдентификатор узла отчета
-
block_instanceИдентификатор экземпляра LDM
-
fragment_numИдентификатор фрагмента
-
ex_reqЗапущенные запросы на эксклюзивные блокировки
-
ex_imm_okЗапросы на эксклюзивные блокировки, немедленно предоставленные
-
ex_wait_okЗапросы на эксклюзивные блокировки, предоставленные после ожидания
-
ex_wait_failЗапросы на эксклюзивные блокировки, не предоставленные
-
sh_reqЗапущенные запросы на общие блокировки
-
sh_imm_okЗапросы на общие блокировки, немедленно предоставленные
-
sh_wait_okЗапросы на общие блокировки, предоставленные после ожидания
-
sh_wait_failЗапросы на общие блокировки, не предоставленные
-
wait_ok_millisВремя ожидания запросов на блокировку, которые были предоставлены, в миллисекундах
-
wait_fail_millisВремя ожидания запросов на блокировку, которые не были предоставлены, в миллисекундах
Примечания
block_instance относится к экземпляру ядра блока. Вместе с именем блока это число можно использовать для поиска данного экземпляра в таблице threadblocks.
fq_name — это полное имя объекта базы данных в формате database/schema/name, например, test/def/t1 или sys/def/10/b$unique.
parent_fq_name — это полное имя родительского объекта (таблицы) этого объекта.
table_id — это внутренний идентификатор таблицы, сгенерированный NDB. Это тот же внутренний идентификатор таблицы, который показан в других таблицах ndbinfo; он также отображается в выводе ndb_show_tables.
Столбец type отображает тип таблицы. Это всегда одно из значений System table, User
table, Unique hash index, Hash index, Unique ordered
index, Ordered index, Hash
index trigger, Subscription
trigger, Read only constraint, Index trigger, Reorganize
trigger, Tablespace, Log
file group, Data file, Undo file, Hash map, Foreign key definition, Foreign key
parent trigger, Foreign key child
trigger или Schema transaction.
Значения, показанные во всех столбцах ex_req, ex_req_imm_ok, ex_wait_ok, ex_wait_fail, sh_req, sh_req_imm_ok, sh_wait_ok и sh_wait_fail, представляют собой совокупное количество запросов с момента создания таблицы или фрагмента или с последнего перезапуска этого узла, в зависимости от того, что произошло позже. Это также верно для значений времени в столбцах wait_ok_millis и wait_fail_millis.
Каждый запрос на блокировку рассматривается как находящийся в процессе выполнения или как завершенный каким-либо образом (то есть, как успешный или неудачный). Это означает, что следующие соотношения верны:
ex_req >= (ex_req_imm_ok + ex_wait_ok + ex_wait_fail)
sh_req >= (sh_req_imm_ok + sh_wait_ok + sh_wait_fail)
Количество запросов, которые находятся в процессе выполнения, — это текущее количество незавершенных запросов, которое можно найти следующим образом:
[exclusive lock requests in progress] =
ex_req - (ex_req_imm_ok + ex_wait_ok + ex_wait_fail)
[shared lock requests in progress] =
sh_req - (sh_req_imm_ok + sh_wait_ok + sh_wait_fail)
Неудачное ожидание указывает на прерванную транзакцию, но прерывание может быть или не быть вызвано истечением времени ожидания блокировки. Вы можете получить общее количество прерываний при ожидании блокировок, как показано ниже:
[aborts while waiting for locks] = ex_wait_fail + sh_wait_fail
© 2025 Oracle
Licensed under the GPLv2 License.