sql-server - PowerShell SQL Server 处理器性能计数器
问题描述
我想监视具有 8 个 SQL 实例的服务器上的处理器负载。我发现了正确的计数器:
get-counter -listset processor | select -expandproperty counter
我得到类似: \Processor(*)% Processor Time 和 \Process(sqlsrv#1...sqlsrv#XX) 我很感兴趣。我现在可以声明我的计数器:
$counter="\Process(sqlsrv#1)\% Processor Time"; Get-counter -counter $counter -sampleInterval 3
但是我怎么知道哪一个 SQL 实例隐藏在“sqlsrv#1”..“sqlsrv#8”后面?
解决方案
实际上,我认为我们没有直接的方法可以做到这一点......但是
假设 - 如果您的服务器中有 3 个实例(进程将是sqlservr、sqlservr#1和sqlservr#2)。正确的 ?
您可以使用下面的计数器名称ID 进程在进程对象中找到每个进程的 PID
\Process(sqlservr)\ID Process
\Process(sqlservr#1)\ID Process
\Process(sqlservr#2)\ID Process
电源外壳
Get-counter -counter "\Process(sqlservr)\ID Process"
Get-counter -counter "\Process(sqlservr#1)\ID Process"
Get-counter -counter "\Process(sqlservr#2)\ID Process"
获得 PID 后,您可以在任务管理器中比较 PID 并找到“用户名”选项卡将具有实际的实例名称
注意:后缀为名为InstanceIndex的进程的数字
推荐阅读
- java - Java文件未写入输出格式化程序文件
- python - 为什么 Pandas 中的 swaplevel() 很慢?
- c# - System.Net.Http - 无法加载文件或程序集,然后无法加载参考程序集以执行
- r - 将相同的功能应用于所有列
- .net - Windows 7 中的 VS2017 “尝试确定 dotnet.exe 的进程 ID 时发生错误”
- javascript - Highcharts Xaxis 删除旧数据并左移
- java - 基于 Java 的产品的身份验证解决方案
- php - laravel: BelongsToMany 有两个不同的 mysql 连接
- c++ - How to visualize 2d array of doubles in vtk?
- java - 如何在网络计算机上连接到 SQL Server 2017(即监听本地端口)