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