
# 获取SQL模板列表 - QuerySqlTplList
#### 功能介绍
获取SQL模板列表。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-das/das_01_0130.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                     | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | das:clouddba:topSqlList | read | instance    | -   | -  | -      |
     
  
 
#### URI
POST /v3/{project_id}/fullsql/query-sql-tpl-list
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释**： 租户在某一Region下的项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-das/das_01_0036.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为32个字符。 **默认取值：** 不涉及。 |
   
#### 请求参数
表2请求Body参数 
| 参数              | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| instance_id     | 是    | String           | **参数解释：** 实例ID，实例的唯一标识。可通过查看实例列表或者实例详情获取实例ID信息。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为36个字符。 **默认取值：** 不涉及。                                                                             |
| node_id         | 否    | String           | **参数解释：** 节点ID。实例节点的唯一标识。可通过查看实例详情节点列表获取节点ID信息。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为36个字符。 **默认取值：** 不涉及。                                                                              |
| start_at        | 是    | Long             | **参数解释：** 开始时间。 **约束限制：** Unix timestamp，单位：毫秒。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                |
| end_at          | 是    | Long             | **参数解释：** 结束时间。 **约束限制：** Unix timestamp，单位：毫秒。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                              |
| operation       | 否    | String           | **参数解释：** 操作类型。 **约束限制：** 可组合，用逗号分隔。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                        |
| db_name_list    | 否    | Array of Strings | **参数解释：** 数据库。 **约束限制：** 不涉及。                                                                                                                                                                                                                                                                                              |
| keyword         | 否    | String           | **参数解释：** 关键字。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                  |
| sql_template_id | 否    | String           | **参数解释：** SQL模板ID。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                |
| sort            | 否    | String           | **参数解释：** 排序字段。 **约束限制：** executeNum:执行次数, totalCost:总耗时, avgCost:平均耗时, totalScan: 总扫描行数, avgScan:平均扫描行数。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                    |
| asc             | 否    | Boolean          | **参数解释：** 排序顺序。 **约束限制：** 不涉及。 **取值范围：** - true：正序  - false：逆序   **默认取值：** 不涉及。 |
| size            | 否    | Integer          | **参数解释：** 数量，默认30。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                              |
   
#### 响应参数
**状态码： 200**
表3响应Body参数 
| 参数       | 参数类型                                                     | 描述                                                                                                                           |
|:---|:---|:---|
| tpl_list | Arrays of [表4] Objects | **参数解释：** SQL模板列表。 **取值范围：** 不涉及。 |
   
 表4tpl 
| 参数                   | 参数类型              | 描述                                                                                                                              |
|:---|:---|:---|
| template_id          | String            | **参数解释：** SQL模板ID。 **取值范围：** 不涉及。     |
| sql_template         | String            | **参数解释：** SQL模板。 **取值范围：** 不涉及。    |
| sql_sample_string    | String            | **参数解释：** SQL样例。 **取值范围：** 不涉及。       |
| db_name              | String            | **参数解释：** 数据库名称。 **取值范围：** 不涉及。      |
| db_names             | Arrays of Strings | **参数解释：** 数据库列表。 **取值范围：** 不涉及。               |
| sql_type             | String            | **参数解释：** SQL类型。 **取值范围：** 不涉及。       |
| execute_num          | Long              | **参数解释：** 执行次数。 **取值范围：** 不涉及。        |
| total_cost           | Double            | **参数解释：** 总执行耗时 ms。 **取值范围：** 不涉及。      |
| avg_cost             | Double            | **参数解释：** 平均执行耗时 ms。 **取值范围：** 不涉及。          |
| max_cost             | Double            | **参数解释：** 最大执行耗时 ms。 **取值范围：** 不涉及。      |
| avg_rows_sent        | Double            | **参数解释：** 平均返回行数。 **取值范围：** 不涉及。       |
| max_rows_sent        | Double            | **参数解释：** 最大返回行数。 **取值范围：** 不涉及。   |
| avg_rows_affected    | Double            | **参数解释：** 平均影响行数。 **取值范围：** 不涉及。        |
| max_rows_affected    | Double            | **参数解释：** 最大影响行数。 **取值范围：** 不涉及。        |
| avg_lock_time        | Double            | **参数解释：** 平均锁等待时间。 **取值范围：** 不涉及。    |
| max_lock_time        | Double            | **参数解释：** 最大锁等待时间。 **取值范围：** 不涉及。 |
| total_rows_examined  | Double            | **参数解释：** 总扫描行数。 **取值范围：** 不涉及。     |
| avg_rows_examined    | Double            | **参数解释：** 平均扫描行数。 **取值范围：** 不涉及。      |
| max_rows_examined    | Double            | **参数解释：** 最大扫描行数。 **取值范围：** 不涉及。          |
| tunable              | Boolean           | **参数解释：** 是否支持诊断。 **取值范围：** 不涉及。       |
| total_cost_ratio     | String            | **参数解释：** 执行耗时占比。 **取值范围：** 不涉及。         |
| total_examined_ratio | String            | **参数解释：** 扫描行数占比。 **取值范围：** 不涉及。        |
| execute_num_ratio    | String            | **参数解释：** 执行次数占比。 **取值范围：** 不涉及。        |
   
#### 请求示例
```
POST https://das.cn-north-1.myhuaweicloud.com/v3/054e292c9880d4992f02c0196d3ea468/fullsql/query-sql-tpl-list 
{
    "start_at": 1763648255940,
    "end_at": 1763691455940,
    "sort": "avgCost",
    "asc": false,
    "instance_id": "bcfa975193f1402fa11a6d4fd6baf5fbin01",
    "operation": "",
    "db_name_list": [],
    "keyword": "",
    "size": 50
}
```
#### 响应示例
**状态码： 200**
Success.
```
{
    "tpl_list": [
        {
            "template_id": "919257EF4DE7B678",
            "sql_template": "SELECT k.table_schema AS table_schema, k.table_name AS table_name, k.constraint_name AS constraint_name, k.column_name AS column_name, k.ordinal_position AS ordinal_position\n\t, k.referenced_table_schema AS referenced_table_schema, k.referenced_table_name AS referenced_table_name, k.referenced_column_name AS referenced_column_name, r.match_option AS match_option, r.update_rule AS update_rule\n\t, r.delete_rule AS delete_rule\nFROM information_schema.referential_constraints r\n\tJOIN information_schema.key_column_usage k\n\tON k.table_schema = r.constraint_schema\n\t\tAND k.table_name = r.table_name\n\t\tAND k.constraint_name = r.constraint_name\nWHERE r.constraint_schema = ?\n\tAND r.table_name IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
            "sql_sample_string": "/* sql from das ent */SELECT k.table_schema as table_schema, k.table_name as table_name, k.constraint_name as constraint_name, k.column_name as column_name, k.ordinal_position as ordinal_position, k.referenced_table_schema as referenced_table_schema, k.referenced_table_name as referenced_table_name,  k.referenced_column_name as referenced_column_name, r.match_option as match_option, r.update_rule as update_rule, r.delete_rule as delete_rule FROM information_schema.referential_constraints r JOIN information_schema.key_column_usage k ON k.table_schema = r.constraint_schema AND k.table_name = r.table_name AND k.constraint_name = r. constraint_name WHERE r.constraint_schema = 'testdb' AND r.table_name in ('air_quality','cs_permission_api','shopping','t_mp_forward_proxy_record','t_mp_product_apply','t_mp_product_apply_002','t_product_flow_501','student','t_datetime','t_model_config','t_table','t_table_1','t_vehicle_model','test_tb')",
            "db_names": [
                "testdb"
            ],
            "sql_type": "select",
            "db_name": "testdb",
            "execute_num": 7,
            "total_cost": 426,
            "avg_cost": 60.86,
            "max_cost": 98,
            "avg_rows_sent": 0,
            "max_rows_sent": 0,
            "avg_rows_affected": 0,
            "max_rows_affected": 0,
            "avg_lock_time": 0,
            "max_lock_time": 0,
            "total_rows_examined": 0,
            "avg_rows_examined": 0,
            "max_rows_examined": 0,
            "tunable": true,
            "total_cost_ratio": "1.14%",
            "total_examined_ratio": "0.00%",
            "execute_num_ratio": "0.07%"
        }
    ]
}
```
#### 状态码
| 状态码 | 描述            |
|:---|:---|
| 200 | Success.      |
| 400 | Client error. |
| 500 | Server error. |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-das/das_01_0035.html)。
