在对报表数据进行查看或者数据集进行预览数据时,有时可能数据不正确或者需要获得执行的sql语句,以便获得该语句到数据库中进行查询,验证数据是否正确。可通过以下方法获取执行的sql语句。
另外,有时候获取知道sql的执行时间,检测一下sql执行时间是否过长,也可通过以下方式获取执行sql的时长。
方法一:LOG界面
1.先关闭相关报表
2.由于系统中存在缓存,打开报表时不一定执行sql语句,因此需要先清空系统缓存。进入“定制管理”->“系统运维”,点击“清空缓存”,进行清空系统缓存
3.按住组合建 Ctrl+Shift+F2,打开LOG界面。由于某些计算机机型问题,直接按住组合建 Ctrl+Shift+F2无法打开log界面,可以尝试按住组合建组合建 Ctrl+Shift+F2+Fn键
在该LOG界面中可以记录日志,其中四个按钮分别是
(1)Log,勾选则Log界面会记录相关的日志,包含Sql语句
(2)Copy,复制日志信息
(3)Clear,清除当前界面的所有日志记录
(4)Close,关闭LOG界面
4.勾选LOG界面的log选框,进行log记录
4.打开报表,刷新数据。则LOG界面会自动展示日志。如下:
5.在LOG界面找到“Exec SQL”相关记录,即在报表刷新数据时执行的相关SQL语句。前面的Exec SQL:118ms中即此条sql语句的执行时长。
注:组合分析和灵活分析由于默认获取总行数,因此会有两条Exec SQL,其中一条是获取总行数所执行的sql,如下
6.勾除Log按钮,点击“Close”界面,关闭LOG界面(必须勾除Log按钮,否则系统会一直记录相关的log)
方法二:查看操作日志
可以通过“查看操作日志”获取报表或数据集中执行的sql语句。设置如下:
1.记录“执行SQL”
进入“定制管理”-》 “系统运维”-》“系统选项”,找到“操作日志设置”
点击“设置”按钮,勾线“执行SQL”,保存设置
注:该设置勾选上则知识库中t_opreationlog等日志表会记录相关的日志,若不需要时需要勾除该选项,避免知识库日志表过大。
2.由于系统中存在缓存,打开报表时不一定执行sql语句,因此需要先清空系统缓存。进入“定制管理”->“系统运维”,点击“清空缓存”,进行清空系统缓存
3.打开报表进行数据浏览或打开数据集预览数据
4.进入 “定制管理”-》“系统运维”,点击“查看操作日志”
打开操作日志,进行筛选,查看操作报表的时间段的日志记录,找到对应的“执行SQL”类型的记录
点击详细信息一列的按钮
在弹出的窗口中找到对应的SQL语句。第一个属性 执行时长中的 118ms即此sql语句的执行时长。