Teradata 有没有办法找到在特定时间更新特定字段的SQL?

Teradata 有没有办法找到在特定时间更新特定字段的SQL?,teradata,Teradata,假设我知道某个特定的数据库记录是何时更新的。我知道某个地方存在着所有执行的SQL的历史记录,可能只有DBA才能访问。如果我可以访问此历史记录,我可以从中选择查询文本的位置,如“%fieldname%”。虽然这几乎可以调出任何包含我正在寻找的字段名的事务查询,但这是一个很好的开始,特别是如果我可以将记录集过滤到特定的日期/时间范围 我发现了dbc.DBQLogTbl视图,但它似乎并不像我预期的那样工作。是否还有另一个视图包含我要查找的信息?它取决于DBA启用的数据库查询日志记录(DBQL)级别。

假设我知道某个特定的数据库记录是何时更新的。我知道某个地方存在着所有执行的SQL的历史记录,可能只有DBA才能访问。如果我可以访问此历史记录,我可以从中选择查询文本
的位置,如“%fieldname%”
。虽然这几乎可以调出任何包含我正在寻找的字段名的事务查询,但这是一个很好的开始,特别是如果我可以将记录集过滤到特定的日期/时间范围


我发现了
dbc.DBQLogTbl
视图,但它似乎并不像我预期的那样工作。是否还有另一个视图包含我要查找的信息?

它取决于DBA启用的数据库查询日志记录(DBQL)级别。 一些DBA可能会选择不提供战术查询的详细信息,因此最好咨询您的DBA团队,以了解捕获的内容。您还可以查询DBC.DBQLRules以确定启用了哪一级别的日志记录

您的问题将特别关注以下数据字典对象:

  • DBC.QryLog包含有关用户、会话、应用程序、语句类型、CPU、IO以及与特定查询关联的其他字段的查询详细信息
  • DBC.QryLogSQL包含SQL语句。如果一条SQL语句超过了一定的长度,它将被拆分为多行,这些行由该表中的一列表示。如果将其加入到主查询日志表中,则在聚合查询日志表中的数据和度量时必须小心。虽然更常见的情况是,如果要将查询日志表连接到SQL表,则不进行任何聚合
  • DBC.QryLogObjects包含特定查询使用的对象及其使用方式。这包括特定查询引用的表、列和索引
这些表可以通过
QueryID
ProcID
在DBC中连接在一起。还有一些其他表捕获了有关查询的信息,但超出了这个特定问题的范围。您可以在Teradata手册中找到这些内容


与您的DBA团队一起检查,以确定正在进行的日志记录的级别以及历史DBQL数据的保留位置。通常,DBQL数据每晚都会移动到历史数据库中,从缓存到DBC表的数据刷新通常会延迟十分钟。DBA团队可以告诉您在何处查找历史DBQL数据。

这取决于DBA启用的数据库查询日志记录(DBQL)级别。 一些DBA可能会选择不提供战术查询的详细信息,因此最好咨询您的DBA团队,以了解捕获的内容。您还可以查询DBC.DBQLRules以确定启用了哪一级别的日志记录

您的问题将特别关注以下数据字典对象:

  • DBC.QryLog包含有关用户、会话、应用程序、语句类型、CPU、IO以及与特定查询关联的其他字段的查询详细信息
  • DBC.QryLogSQL包含SQL语句。如果一条SQL语句超过了一定的长度,它将被拆分为多行,这些行由该表中的一列表示。如果将其加入到主查询日志表中,则在聚合查询日志表中的数据和度量时必须小心。虽然更常见的情况是,如果要将查询日志表连接到SQL表,则不进行任何聚合
  • DBC.QryLogObjects包含特定查询使用的对象及其使用方式。这包括特定查询引用的表、列和索引
这些表可以通过
QueryID
ProcID
在DBC中连接在一起。还有一些其他表捕获了有关查询的信息,但超出了这个特定问题的范围。您可以在Teradata手册中找到这些内容


与您的DBA团队一起检查,以确定正在进行的日志记录的级别以及历史DBQL数据的保留位置。通常,DBQL数据每晚都会移动到历史数据库中,从缓存到DBC表的数据刷新通常会延迟十分钟。您的DBA团队可以告诉您在何处查找历史DBQL数据。

您能否回答得更清楚一些:哪个表专门包含此信息“如果已启用日志记录”?这些修订是否有助于澄清您的不确定性您能否回答得更清楚一些:哪个表专门包含此信息“如果已启用日志记录”?修订是否有助于澄清您的不确定性