Sql-Server

如何檢查模型數據庫上的查詢儲存設置?

  • September 9, 2021

可以在模型數據庫上啟用查詢儲存,並確保每個新數據庫都具有與模型數據庫相同的設置。

缺少 GUI 選項

GUI 中缺少查詢儲存選項

但可以使用 TSQL 啟用它

ALTER DATABASE model
SET QUERY_STORE = ON (OPERATION_MODE = READ_WRITE);

由於沒有 GUI,我無法檢查那裡的預設設置。

再次使用 TSQL

USE model;
select * from sys.database_query_store_options;

返回空結果

模型數據庫查詢儲存設置的空結果

當我創建一個新數據庫時(使用模型作為模板並查詢設置,它會顯示結果)

create database TestQs;
go
use TestQs;
select * from sys.database_query_store_options;

TestQS 數據庫的查詢儲存選項

此外,設置必須保存在某處,因為當我更改查詢儲存選項時,更改會傳播到新數據庫

ALTER DATABASE model
SET QUERY_STORE (INTERVAL_LENGTH_MINUTES = 22);

我嘗試使用 SMO 找到這些選項,但沒有運氣。

$SqlServer = New-Object Microsoft.SqlServer.Management.Smo.Server -ArgumentList 'localhost'
$sqlServer.Databases['TestQs'].QueryStoreOptions

數據庫 TestQS 返回選項

但是對模型數據庫的相同查詢沒有產生任何結果

$SqlServer = New-Object Microsoft.SqlServer.Management.Smo.Server -ArgumentList 'localhost'
$sqlServer.Databases['model'].QueryStoreOptions

數據庫模型返回空選項

有沒有辦法在不創建新數據庫並在那裡檢查的情況下檢查模型數據庫上的**查詢儲存設置?

有沒有辦法在不創建新數據庫並在那裡檢查的情況下檢查模型數據庫上的查詢儲存設置?

不支持,不支持。不應在系統數據庫上啟用 QDS,例如,工作負載不應在主數據庫或模型中執行。我理解這裡的觀點,它有助於自動化,儘管我不是將事物放入模型(或就此而言的大師)的個人粉絲,並且不會使用這種方法,而是一種程式方法,因此配置漂移不會’不會在創建時發生(根據變數,創建後可能會發生持續漂移)。不過,我明白你的案例和觀點。

這對我來說似乎是一個錯誤。

$$ … $$- 埃里克·達林

您沒有得到任何回報的原因是因為不應在系統數據庫上啟用 QDS,因此不會返回任何行集。這不是一個錯誤,它是這樣實現的。

如果你真的想讓它工作,你可以編輯二進製文件以禁用檢查,或者使用調試器進行熱更新檔,但我不會呼叫那些支持的選項。

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