Sql-Server

如何在查詢儲存中搜尋查詢中的特定單詞或命令?

  • September 22, 2018

我有一個 SQL 2016 SP1 企業版,它有一個查詢儲存處於活動狀態的數據庫。

我想在保存的查詢中搜尋特定的單詞或命令。我用Google搜尋了一下,沒有看到任何東西。在這種情況下,我想找到“SHRINK”,但同樣的方法應該適用於儲存查詢中的任何文本。

期待“為什麼?” 評論。我有一個供應商應用程序,它做了很多工作,然後縮小數據庫和日誌文件。我正在嘗試找到執行此操作的查詢。

如何在查詢儲存中搜尋查詢中的特定單詞或命令?

正如sp_BlitzErik在評論中提到的那樣,並且正如我從自己的研究中收集的那樣,您可以在sys.query_store_query_text但不一定總是在SHRINK.

此查詢返回 22,497 個結果:

SELECT  qsqt.*
FROM    sys.query_store_query_text AS qsqt
WHERE qsqt.query_sql_text LIKE '%Select%'

此查詢不返回任何內容,除了我第二次執行它:)

SELECT  qsqt.*
FROM    sys.query_store_query_text AS qsqt
WHERE qsqt.query_sql_text LIKE '%SHRINK%'

上面查詢的基礎來自一個帶有 Bert post 的 SQL

一位同事向我展示了一個查詢,該查詢找到了收縮以及執行此操作的時間和登錄名。因此,對於我的具體問題,我有我需要的東西,但這只是我的問題的一個側面。

我的解決方法使用預設查詢跟踪。它顯示了針對沒有查詢儲存的DBCC Shrinkdatabase ('MyDB', TRUNCATEONLY)數據庫執行的多個最近。

DBCC SHRINKFILE啟用了查詢儲存的數據庫上下文中執行確實會記錄在查詢儲存中。

引用自:https://dba.stackexchange.com/questions/215611