
# 审核文件详情
#### 操作场景
查看上传的审核文件详细信息。
#### 前提条件
有已上传的审核文件。
#### 操作步骤
1. [登录UGO控制台。](https://console.huaweicloud.com/ugo/#/console/dashboard)
2. 单击左侧导航栏"SQL审核 \> 语句审核 \> 审核文件"，进入审核文件页面。
3. 单击待查看任务"操作 \> 审核详情"。显示该任务的审核文件信息、索引推荐信息及采集出的 SQL 语句列表，也可"导出"SQL 语句。
4. 查看审核文件详情，显示上传的文件名、任务审核状态、数据源信息等。 
   图1审核文件详情   
   ![](https://support.huaweicloud.com/usermanual-ugo/zh-cn_image_0000002171899377.png)
   - 单击"描述"后的图标![](https://support.huaweicloud.com/usermanual-ugo/zh-cn_image_0000002171741129.png)，可修改描述信息。
   
   - 单击"规则模板"后的值，可跳转到具体的模板信息。
   
   
   
   
5. 查看索引推荐信息，可单击页签切换列表分别查看推荐索引、冗余索引、风险 SQL 信息。 
   - 表总数：上传文件中可以推荐索引的表总数。
   
   - 推荐索引总数：对上传文件中所有表推荐的索引总数。分为不存在索引、存在索引、不一致索引、其他。
   
   
   ![](https://support.huaweicloud.com/usermanual-ugo/public_sys-resources/note_3.0-zh-cn.png)
   - 仅当创建审核文件任务时启用了"是否推荐索引"开关时，才展示索引推荐信息。
    
   - 单击"推荐索引"页签，查看根据上传文件内 SQL 语句中出现的表推荐的索引列表。列表显示表名、推荐索引列、状态、创建语句。
     图2推荐索引列表   
     ![](https://support.huaweicloud.com/usermanual-ugo/zh-cn_image_0000002136619960.png)
     ![](https://support.huaweicloud.com/usermanual-ugo/public_sys-resources/note_3.0-zh-cn.png)
     - 状态分为：存在、不存在、不一致、表不存在。
       - 存在：数据库中已存在相同的索引。
       
       - 不存在：数据库中不存在相同的索引。
       
       - 不一致：数据库中存在与当前索引第一列一致的索引。
       
       - 表不存在：数据库中不存在当前索引对应的表。
        
     
     - 在筛选下拉框中选择 Schema 及对应的表名后，[步骤 6]中SQL 列表联动显示对应表的 SQL 语句。
     
     - 如果创建任务时未选择数据源并且SQL语句的对象名前没有schema，在 Schema 下拉框中展示为"--"。
       
   
   - 单击"冗余索引"页签，查看在数据库中，上传文件内 SQL 语句中出现的表存在的冗余索引列表。列表显示表名、索引名称、索引字段。
     图3冗余索引列表   
     ![](https://support.huaweicloud.com/usermanual-ugo/zh-cn_image_0000002136461888.png)
     ![](https://support.huaweicloud.com/usermanual-ugo/public_sys-resources/note_3.0-zh-cn.png)
     - 如果创建任务时未选择数据源或者选择的数据源没有创建任何索引信息，则冗余索引列表中没有数据。
     
     - 如果创建任务时未选择数据源并且SQL语句的对象名前没有schema，在 Schema 下拉框中展示为"--"。
       
   
   - 单击"风险 SQL"页签，查看上传文件内 SQL 语句中存在条件列即使为其创建索引也不会提升查询效率的风险 SQL 列表。显示表名、条件列。
     图4风险 SQL 列表   
     ![](https://support.huaweicloud.com/usermanual-ugo/zh-cn_image_0000002171899537.png)
     ![](https://support.huaweicloud.com/usermanual-ugo/public_sys-resources/note_3.0-zh-cn.png)
     - 在筛选下拉框中选择 Schema 及对应的表名后，SQL 列表联动显示对应表的 SQL 语句。
     
     - 如果创建任务时未选择数据源并且SQL语句的对象名前没有schema，在 Schema 下拉框中展示为"--"。
     
     - 选择序号前的![](https://support.huaweicloud.com/usermanual-ugo/zh-cn_image_0000002171741173.gif)，[步骤 6]中 SQL 列表联动展示此行数据对应的 SQL 语句。
       
   
   
   
   
6. 查看 SQL 列表，列表展示 SQL ID、SQL语句、SQL 说明、风险级别、状态等。
   
   图5SQL 列表   
   ![](https://support.huaweicloud.com/usermanual-ugo/zh-cn_image_0000002136619968.png)
   其中"状态"显示当前语句的审核状态，语句审核状态包含新建、分析完毕、分析失败、审核错误和忽略：
   - 新建：刚采集出来的 SQL，等待审核。
   
   - 分析完毕：审核完成。
   
   - 分析失败：SQL 语句解析失败。
   
   - 审核错误：审核过程出现异常。
   
   - 忽略：暂不支持该 SQL 语句的审核或单条 SQL 语句大小超出阈值。默认阈值为 100KB。
   
   
   解析失败原因：
   - line:1, position:14, token:table：表示 SQL 语句中存在关键字"table"。
   
   - line:1, position:3, token:\<EOF\>：表示 SQL 语句未输入完整。
   
   
   导出：选定待导出的单/多条 SQL 语句后单击"导出"，可将所选的 SQL 语句导出为 .tar.gz 的压缩包文件。
   - 默认导出全部 SQL 文件，也可勾选复选框导出选定的 SQL 文件内容，或者通过筛选框进行条件筛选后导出 SQL 文件。
   
   - 导出默认勾选"导出的 Excel 中包含原始 SQL"，若原始"SQL 语句"较大建议不勾选此选项。
   
   - 导出的 SQL 文件中，原始的"SQL 语句"较大时，则将原始的"SQL 语句"以单独的文件进行保存，Excel 文件中的"SQL 文本"列显示保存的文件名。
   
   - 导出的 Excel 文件最多包含 5000 条数据，数量超过 5000 条则以多个 Excel 文件进行保存。
   
   - 导出的依赖表结构超过 30000 字符时，会额外导出为 SQL 文件。
   
   
   
   
7. 单击具体 SQL 语句后的"审核详情"。显示该 SQL 语句的基本信息、违反规则与表结构等。 
   - 若采集到多条 SQL 语句，可单击"上一条"或"下一条"切换查看。
     图6SQL 语句审核详情   
     ![](https://support.huaweicloud.com/usermanual-ugo/zh-cn_image_0000001964302952.png) 
   
   - 基本信息：显示该 SQL 的具体 SQL 语句与 SQL 说明。
   
   - 违反规则：依据所选的规则模板，给出该 SQL 语句违反规则的规则名、风险级别以及建议等。 单击"问题片段"可在审核文本中高亮显示此内容；再次单击即可取消。PL/SQL 可能存在多个问题片段，单击左侧![](https://support.huaweicloud.com/usermanual-ugo/zh-cn_image_0000002136461896.png)，展示所有问题片段。
     
   
   - 未匹配规则：因为未选择数据源、数据源连接失败、用户权限不足、Schema 选择错误、或者表不存在原因，导致依赖源库相关的规则项未能匹配。展示信息包括：规则名、风险级别、未匹配原因等。
   
   - 表结构：展示审核 SQL 语句中依赖的表结构信息，包括对象名、对象类型、属主等。
   
   - 执行计划：展示 SELECT、UPDATE、DELETE、INSERT 语句的执行计划。
     ![](https://support.huaweicloud.com/usermanual-ugo/public_sys-resources/note_3.0-zh-cn.png)
     用户需要有系统表和系统视图读取的权限才能获取表结构。
     - GaussDB 会从以下系统表中获取依赖的表结构：tables，pg_class，pg_namespace，relnamespace，pgxc_class，pg_settings，pg_get_viewdef，columns，pg_tables，pg_index，table_constraints，pg_partition，pg_get_tabledef，check_constraints，key_column_usage，pg_get_keywords，gs_package，db_constraints，adm_ind_columns 等。
     
     - MySQL 会从以下系统表中获取依赖的表结构：information_schema.tables，information_schema.columns，information_schema.statistics，information_schema.table_constraints 等。
     
     - PostgreSQL 会从以下系统表中获取依赖的表结构：pg_class、pg_namespace、information_schema、pg_index、pg_inherits、pg_attribute 等。
       
   
   
   
   
 
