# 查询InnoDB锁等待快照 - QueryWaitLocksSnapshot
#### 功能介绍
查询InnoDB锁等待快照。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DAS/doc?api=LogoffBuiltInAccount)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-das/das_01_0130.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                          | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | das:clouddba:listInnodbLock | list | instance   | -      | -    | -       |
     
  
 
#### URI
GET /v3/{project_id}/connections/{connection_id}/instance/query-waiting-locks-snapshot
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| project_id   | 是   | String | **参数解释**： 租户在某一Region下的项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-das/das_01_0036.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为32个字符。 **默认取值：** 不涉及。 |
| connection_id | 是      | String  | **参数解释：** 连接ID。用户使用数据库账号与数据库建立的连接ID（数据库用户ID由[创建实例连接](https://support.huaweicloud.com/api-das/das_01_0070.html)创建）。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字、中划线组成，且长度为36个字符的UUID。 **默认取值：** 不涉及。      |
   
表2Query参数 
| 参数  | 是否必选 | 参数类型     | 描述                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| id | 是  | Integer | **参数解释：** InnoDB锁等待快照ID。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
#### 请求参数
无。
#### 响应参数
**状态码： 200**
表3响应Body参数 
| 参数                          | 参数类型                                                              | 描述                                                                                                                                   |
|:---|:---|:---|
| trx                       | Array of [表4] objects | **参数解释：** InnoDB锁对应的事务的信息。                                                                               |
| lock_waits_infos             | Array of [表6] objects        | **参数解释：** InnoDB锁等待信息。                                                                                 |
| wait_lock_count             | Integer                                                           | **参数解释：** 等待锁的会话的数量。 **取值范围：** 不涉及。          |
| hold_lock_count            | Integer                                                        | **参数解释：** 持有锁的会话的数量。 **取值范围：** 不涉及。     |
| time_greater_than_count      | Integer                                                          | **参数解释：** 等锁时间大于阈值的会话的数量。 **取值范围：** 不涉及。 |
| lock_wait_threshold_second | Long                                                             | **参数解释：** InnoDB锁等待时间阈值。 **取值范围：** 不涉及。  |
   
 表4InnodbTrxInfo 
| 参数                         | 参数类型                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| trx_id                   | String                                                | **参数解释：** 事务ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                      |
| trx_state                 | String                                                 | **参数解释：** 事务状态。 **取值范围：** - RUNNING：运行中  - LOCK WAIT：等待锁  - ROLLING BACK：正在回滚  - COMMITTING：正在提交   |
| trx_started                | String                                                 | **参数解释：** 事务开始时间。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                 |
| trx_started_timestamp        | Long                                                  | **参数解释：** 事务开始时间戳。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                 |
| trx_requested_lock_id     | String                                                 | **参数解释：** 事务当前正在等待锁的Id。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                             |
| trx_wait_started          | String                                                  | **参数解释：** 事务开始等待时间。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                        |
| trx_wait_started_timestamp | Long                                                   | **参数解释：** 事务开始等待时间戳。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                             |
| trx_weight                | String                                                | **参数解释：** 事务权重。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                |
| trx_mysql_thread_id        | String                                                 | **参数解释：** 会话ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                 |
| trx_query                  | String                                                 | **参数解释：** 事务正在执行的SQL语句。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                        |
| trx_operation_state        | String                                                  | **参数解释：** 事务当前操作状态。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                           |
| trx_tables_in_use          | String                                                 | **参数解释：** 当前事务执行的SQL中使用的表个数。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                     |
| trx_tables_locked         | String                                                | **参数解释：** 当前执行SQL的行锁数量。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                           |
| trx_lock_structs           | String                                                  | **参数解释：** 事务保留的锁数量。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                            |
| trx_lock_memory_bytes     | String                                                 | **参数解释：** 事务锁住的内存大小。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                           |
| trx_rows_locked          | String                                                | **参数解释：** 事务锁住的行记录数。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                            |
| trx_rows_modified           | String                                                | **参数解释：** 事务更改的行数。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                              |
| trx_concurrency_tickets     | String                                                | **参数解释：** 事务并发票数。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                           |
| trx_isolation_level        | String                                                 | **参数解释：** 当前事务的隔离级别。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                               |
| trx_unique_checks           | String                                                  | **参数解释：** 是否打开唯一性检查的标识。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                        |
| trx_foreign_key_checks      | String                                                  | **参数解释：** 是否打开外键检查的标识。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                       |
| trx_last_foreign_key_error | String                                                | **参数解释：** 最后一次的外键错误信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                         |
| trx_adaptive_hash_latched  | String                                                  | **参数解释：** 自适应散列索引是否被当前事务锁住的标识。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                |
| trx_adaptive_hash_timeout  | String                                                  | **参数解释：** 是否立刻放弃为自适应散列索引搜索 LATCH 的标识。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                           |
| wait_locks                 | Array of [表5] Object | **参数解释：** 等待的锁列表。                                                                                                                                                                                                                                                                                                                                                                                                        |
| hold_locks                | Array of [表5] Object  | **参数解释：** 持有的锁列表。                                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表5InnodbLockInfo 
| 参数            | 参数类型    | 描述                                                                                                                            |
|:---|:---|:---|
| lock_id      | String | **参数解释：** 锁ID。 **取值范围：** 不涉及。        |
| lock_trx_id | String  | **参数解释：** 拥有锁的事务ID。 **取值范围：** 不涉及。  |
| lock_mode    | String   | **参数解释：** 锁模式。 **取值范围：** 不涉及。          |
| lock_type      | String  | **参数解释：** 锁类型。 **取值范围：** 不涉及。      |
| lock_table  | String   | **参数解释：** 锁定表。 **取值范围：** 不涉及。       |
| lock_index   | String    | **参数解释：** 锁定的索引。 **取值范围：** 不涉及。    |
| lock_space    | String  | **参数解释：** 锁定行的表空间ID。 **取值范围：** 不涉及。 |
| lock_page    | String | **参数解释：** 锁定页。 **取值范围：** 不涉及。      |
| lock_rec     | String  | **参数解释：** 锁定行的数量。 **取值范围：** 不涉及。       |
| lock_data   | String | **参数解释：** 锁定行的主键。 **取值范围：** 不涉及。     |
   
 表6InnodbLockWaitsInfo 
| 参数               | 参数类型      | 描述                                                                                                                             |
|:---|:---|:---|
| requesting_trx_id | String  | **参数解释：** 请求事务的ID。 **取值范围：** 不涉及。  |
| requested_lock_id | String | **参数解释：** 等待的锁ID。 **取值范围：** 不涉及。     |
| blocking_trx_id  | String | **参数解释：** 阻塞事务的ID。 **取值范围：** 不涉及。   |
| blocking_lock_id | String | **参数解释：** 持有的锁ID。 **取值范围：** 不涉及。 |
   
#### 请求示例
```
GET https://das.cn-north-1.myhuaweicloud.com/v3/054e292c9880d4992f02c0196d3ea468/connections/179e525e-0e9c-4dcc-9dd7-ee2f36121e23/instance/query-waiting-locks-snapshot?id=1
```
#### 响应示例
**状态码： 200**
Success.
```
{
    "trx": [],
    "lock_waits_infos": [],
    "wait_lock_count": 0,
    "hold_lock_count": 0,
    "time_greater_than_count": 0,
    "lock_wait_threshold_second": 10
}
```
#### 状态码
| 状态码 | 描述            |
|:---|:---|
| 200 | Success.      |
| 400  | Client error. |
| 500 | Server error. |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-das/das_01_0035.html)。
