21.6.15.22 Таблица ndbinfo locks_per_fragment
Таблица locks_per_fragment предоставляет информацию о количестве запросов на получение блокировок и результатах этих запросов для каждого фрагмента, являясь таблицей-спутником для operations_per_fragment и memory_per_fragment. Данная таблица также отображает общее время ожидания блокировок, успешно и безуспешно, начиная с создания фрагмента или таблицы или с последнего перезапуска.
Таблица locks_per_fragment содержит следующие столбцы:
-
fq_nameПолное имя таблицы
-
parent_fq_nameПолное имя родительского объекта
-
typeТип таблицы; см. текст для возможных значений
-
table_idID таблицы
-
node_idID узла отчета
-
block_instanceID экземпляра 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 — это внутренний ID таблицы, сгенерированный NDB. Это тот же внутренний ID таблицы, что и в других таблицах 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
Таблица locks_per_fragment была добавлена в NDB 7.5.3.
© 2025 Oracle
Licensed under the GPLv2 License.