在SAP HANA中提取查询历史记录

时间:2014-12-16 08:35:21

标签: sql hana

我一直在使用SAP HANA数据库实例,并且已经对此运行了多个查询。我需要提取查询历史记录,最好是从系统表或其他地方。如果可能的话,请告诉我这是否可行以及任何指示,如果可能的话。

2 个答案:

答案 0 :(得分:4)

如果需要执行查询的详细历史记录,则需要激活HANA SQL跟踪。您可以找到更多信息in the HANA documentation。当然,这不会追溯。因此,您必须先激活跟踪,然后然后运行您想要查看的查询。

此外,SQL Plan Cache还提供有关过去查询的聚合信息。它由预准备语句聚合,并提供运行时信息,如平均执行时间和结果大小。监视视图为SYS.M_SQL_PLAN_CACHE

答案 1 :(得分:0)

  1. 您可以通过查询SYS模式中的M_EXECUTED_STATEMENTS视图来跟踪DDL语句,请注意,您的用户需要对此视图具有选择权限才能进行查询
  2. 您可以在hana studio中启用将执行的SQL语句转储到平面文件中,然后对bash中的这些平面文件使用grep或查询M_TRACEFILE_CONTENTS视图(再次从SYS模式中进行一次访问)
  3. 请注意,跟踪文件非常混乱,您需要具备适当的grep技能才能从中提取执行的SQL语句-我还不知道如何配置HANA数据库以生成漂亮的跟踪文件

方便的grep命令forc 查找跟踪文件:

# find / -name *.trc # finding trace files
$ grep -n -B 5 -A 1 '^.*select.*$' flatfile # displays matches in a flatfile with context and line numbers ( surrounding five lines above and 1 line below ) 
$ grep -n -B 5 -A 1 '^.*select\|84443781510009.*$' flatfile # <- or statement for keywords with \| characters
  1. hana studio允许您将配置应用于跟踪行为(仅针对给定的用户,对象等进行跟踪),最好从hana studio / hdbsql级别更改此行为

  2. 如前所述,M_SQL_PLAN_CACHE和M_SQL_PLAN_CACHE_RESET系统视图可方便地查询和检索已执行的sql语句及其统计信息。