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.