假設我知道特定數據庫記錄何時更新。我知道某處存在執行的所有SQL的歷史記錄,可能只能由DBA訪問。如果我可以訪問這個歷史記錄,我可以從中選擇查詢文本是LIKE '%fieldname%'
。儘管這樣可以提取包含我要查找的字段名稱的任何事務性查詢,但這是一個很好的開始,特別是如果我可以將記錄集過濾到特定的日期/時間範圍。有沒有辦法找到在特定時間更新特定字段的SQL?
我發現了dbc.DBQLogTbl
視圖,但它看起來沒有像我期望的那樣工作。是否有另一個視圖包含我正在查找的信息?
假設我知道特定數據庫記錄何時更新。我知道某處存在執行的所有SQL的歷史記錄,可能只能由DBA訪問。如果我可以訪問這個歷史記錄,我可以從中選擇查詢文本是LIKE '%fieldname%'
。儘管這樣可以提取包含我要查找的字段名稱的任何事務性查詢,但這是一個很好的開始,特別是如果我可以將記錄集過濾到特定的日期/時間範圍。有沒有辦法找到在特定時間更新特定字段的SQL?
我發現了dbc.DBQLogTbl
視圖,但它看起來沒有像我期望的那樣工作。是否有另一個視圖包含我正在查找的信息?
它取決於DBA啓用的數據庫查詢日誌記錄(DBQL)的級別。 有些DBA可能不會選擇戰術查詢的詳細信息,因此最好諮詢您的DBA團隊以瞭解所捕獲的內容。您還可以查詢DBC.DBQLRules以確定已啓用哪種日誌記錄級別。
以下數據字典對象將是特別感興趣的你的問題:
這些表格可以通過QueryID
和ProcID
在DBC中連接在一起。還有其他一些表格可以捕獲有關查詢的信息,但超出了這個特定問題的範圍。您可以在Teradata手冊中找到這些信息。
請諮詢您的DBA團隊以確定正在進行的日誌記錄級別以及歷史DBQL數據的保留位置。通常,DBQL數據每晚移動到歷史數據庫,並且數據從緩存刷新到DBC表通常有10分鐘的延遲。您的DBA團隊可以告訴您在哪裏可以找到歷史DBQL數據。
你能否更清楚地回答:哪個表格專門包含此信息「如果已啓用記錄」? – javadba 2013-07-12 04:30:57
做的修改有助於澄清你的不確定性 – 2013-07-12 14:07:39
這樣猜測。 upvoted。 – javadba 2013-07-12 19:07:57