Sql-Server
如何在查詢儲存中搜尋查詢中的特定單詞或命令?
我有一個 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
啟用了查詢儲存的數據庫上下文中執行確實會記錄在查詢儲存中。