Powershell Get-Counter 不傳回 SQL 計數器的值

Powershell Get-Counter 不傳回 SQL 計數器的值

這是來自 dba.stackexchange.com 的交叉帖子:https://dba.stackexchange.com/questions/64898/powershell-get-counter-not-returning-values-for-sql-counters


我嘗試使用 PowerShell 來取得一些 SQL 計數器,但它似乎不再傳回 SQL 特定計數器。我不確定我的伺服器上發生了什麼變化會導致這種情況。

該腳本非常簡單,我不確定我缺少什麼:

## Define some variables
$serverName = "ISOMORPH" # Server we are collecting from

# Define our list of counters
$counters = @(
    "\Memory\Available MBytes",
    "\Memory\Pages/sec",
    "\PhysicalDisk(_Total)\Avg. Disk sec/Read",
    "\PhysicalDisk(_Total)\Avg. Disk sec/Write",
    "\PhysicalDisk(_Total)\Current Disk Queue Length",
    "\PhysicalDisk(*)\Avg. Disk sec/Read",
    "\PhysicalDisk(*)\Avg. Disk sec/Write",
    "\PhysicalDisk(*)\Current Disk Queue Length",
    "\Process(sqlservr)\% Privileged Time",
    "\Process(sqlservr)\% Processor Time",
    "\Processor(*)\% Privileged Time",
    "\Processor(*)\% Processor Time",
    "\SQLServer:Buffer Manager\Buffer cache hit ratio",
    "\SQLServer:Buffer Manager\Buffer cache hit ratio base",
    "\SQLServer:Buffer Manager\Lazy writes/sec",
    "\SQLServer:Buffer Manager\Page life expectancy",
    "\SQLServer:Memory Manager\Memory Grants Pending" ,
    "\SQLServer:SQL Statistics\Batch Requests/sec",
    "\System\Context Switches/sec",
    "\System\Processor Queue Length" 
)


## Get our performance counter data
Get-Counter -Counter $counters -SampleInterval 1 -MaxSamples 1

該腳本將傳回所有計數器,但所有 SQL 計數器都顯示 0 值。我沒有收到任何錯誤,它只是顯示所有 SQL 計數器的值為 0。

如果我手動打開效能監視器,我可以看到這些計數器並且它們具有值。我在安裝了 SQL 2014 Developer Edition 的 Windows 7 筆記型電腦上執行此程式。

進一步的測試使我相信這是作業系統特定的問題。其他人在執行 SQL 2012 的 Windows 8.1 上測試了此腳本,在這種情況下,它也為 SQL 特定計數器傳回 0。

相關內容