假设我知道特定数据库记录何时更新。我知道某个地方存在所有执行的SQL的历史记录,可能只有DBA才能访问。如果我可以访问此历史记录,我可以从中查询查询文本为LIKE '%fieldname%'
的位置。虽然这几乎可以提取包含我正在寻找的字段名称的任何事务查询,但这是一个很好的开始,特别是如果我可以将记录集过滤到特定的日期/时间范围。
我发现了dbc.DBQLogTbl
视图,但它似乎没有像我期望的那样工作。还有其他视图包含我要查找的信息吗?
答案 0 :(得分:5)
这取决于DBA启用的数据库查询日志记录(DBQL)的级别。 某些DBA可能会选择不提供战术查询的详细信息,因此最好咨询您的DBA团队以了解正在捕获的内容。您还可以查询DBC.DBQLRules以确定已启用的日志记录级别。
以下数据字典对象对您的问题特别感兴趣:
这些表可以通过QueryID
和ProcID
在DBC中连接在一起。还有一些其他表可以捕获有关查询的信息,但超出了这个特定问题的范围。您可以在Teradata手册中找到相关内容。
与您的DBA团队核实,以确定正在完成的日志记录级别以及保留历史DBQL数据的位置。通常,DBQL数据会在夜间移动到历史数据库,并且从缓存到DBC表的数据通常会有十分钟的延迟。您的DBA团队可以告诉您在哪里可以找到历史DBQL数据。