Token导航 LogoToken导航TokenDH.com
Performance Monitor logo
数据服务未说明官方级别未说明来源级核验

Performance Monitor

MCP Server

一款免费开源的SQL Server性能监控工具,提供实时警报、30多种数据收集器、内置AI分析服务器和本地数据存储功能,适用于SQL Server 2016至2025、Azure SQL托管实例和AWS RDS for SQL Server。

工具数

74

提示词数

0

GitHub Stars

380

资源数

0
C#Claude性能分析ClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

erikdarlingdata

提供方

erikdarlingdata

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

性能监视器

免费、开源的监控,取代了每年每台服务器收费数千美元的工具。 30多个收集器、实时警报、用于AI分析的内置MCP服务器。家里没有电话。您的数据保留在您的服务器和计算机上。

支持: SQL Server 2016–2025 | Azure SQL托管实例| AWS RDS for SQL Server | Azure SQL数据库(仅精简版)

Dashboard landing page with server health cards

Full Dashboard — Resource Overview

______________________________________________________________________

下载

👉 不确定该选哪个版本? 从Lite开始。 一次下载,服务器上没有安装任何东西,数据在5分钟内流动。

|---|---|---| | 它做什么 |安装a PerformanceMonitor 通过SQL代理运行30个T-SQL收集器的数据库。单独的仪表板应用程序连接以查看所有内容。|远程监控的单个桌面应用程序。将数据本地存储在DuckDB+Parquet中。没有任何东西会影响你的服务器。 | | 最适合 |生产24/7监控,长期基线|快速分流,Azure SQL数据库,锁定服务器,顾问,消防| | 需要 |SQL代理正在运行(查看权限) | VIEW SERVER STATE (查看权限) | | 开始 |运行安装程序,打开仪表板|下载,运行,添加服务器,完成|

这两个版本都包括实时警报(系统托盘+电子邮件+网络钩子)、图表和图形、深色和浅色主题、CSV导出,以及内置的MCP服务器,用于使用Claude等工具进行人工智能分析。

所有发布二进制文件都通过以下方式进行数字签名 签名路径 --不再有Windows SmartScreen警告。

______________________________________________________________________

人们在说什么

*“你们让我们DBA看起来像绝对的摇滚明星。我在这里得到了很多赞扬,我所做的就是使用你们的脚本并听从你们的建议。”*
*“替换了SentryOne,并在10分钟内使其运行”*
*“我有足够的时间收集数据并与Claude就此进行交谈。这对VM运行的管理程序的CPU不足问题有很大帮助。It团队目前正在调查主机配置。”*

______________________________________________________________________

所得

🔍 32个专用T-SQL收集器 在具有命名预设(Off、Aggressive、Balanced、Low Impact)的可配置时间表上运行——等待统计数据、查询性能、阻塞链、死锁图、内存授予、文件I/O、tempdb、性能计数器、FinOps/容量等。对于敏感环境,可以为每个收集器禁用查询文本和执行计划收集。使用一对SQL代理作业切换预设,无需编写任何代码即可获得安静时间/夜间窗口。

🚨 实时警报 用于阻塞、死锁和高CPU——系统托盘通知、带完整XML附件的样式化HTML电子邮件和用于外部集成的webhook通知

📊 NOC风格的仪表板 具有绿色/黄色/红色健康卡、自动刷新、可配置时间范围和暗/亮主题

📋 图形平面查看器 具有本机ShowPlan渲染、30规则PlanAnalyzer、操作员级成本细分和独立打开模式 .sqlplan 没有服务器连接的文件

🤖 内置MCP服务器 使用51-63个用于人工智能分析的只读工具——询问Claude Code或Cursor“我的服务器上最常见的等待类型是什么?”并从您的实际监控数据中获得答案

🧰 自动安装的社区工具 --sp_WhoIsActive、sp_BlitzLock、sp_HealthParser、sp_HumanEventsBlockViewer

🔒 你的数据永远不会离开 --没有遥测,没有云依赖,没有打电话回家。使用操作系统级加密存储在Windows凭据管理器中的凭据。

______________________________________________________________________

更多截图

精简版--查询性能

Lite Edition — Query Performance

图形平面查看器

Graphical plan viewer with missing index suggestions and operator analysis

警报通知

Alert notification

MCP服务器——基于AI的分析

MCP server analysis

______________________________________________________________________

快速入门--精简版

  1. PerformanceMonitorLite.exe
  2. 点击 +添加服务器,输入连接详细信息,测试,保存
  3. 双击侧边栏中的服务器进行连接

数据在1-5分钟内开始流动。就是这样。不需要在服务器上安装,不需要代理作业,也不需要系统管理员。

从zip升级? 点击 导入设置 然后 导入数据 在侧边栏中,指向您的旧Lite文件夹。设置导入服务器连接、警报阈值、SMTP配置和计划。数据导入历史DuckDB+Parquet档案。 自动更新用户 (通过Setup.exe安装)自动获取更新,无需手动导入。

始终在AG? 启用 只读意图 在连接设置中,将Lite的监控查询路由到可读的辅助服务器,保持主服务器畅通。启用 多子网故障转移 用于多子网故障转移场景。

Lite收集器

24个收集器按照独立、可配置的时间表运行:

收集器默认值
查询快照1分钟sys.dm_exec_requests + sys.dm_exec_sessions
blocked_process_report1分钟XE环形缓冲区会话
等待任务1分钟sys.dm_os_waiting_tasks
等待开始1分钟sys.dm_os_wait_stats (三角洲)
查询开始1分钟sys.dm_exec_query_stats (三角洲)
procedure_stats1分钟sys.dm_exec_procedure_stats (三角洲)
cpu_utilization1分钟sys.dm_os_ring_buffers 调度监视器
文件_数据1分钟sys.dm_io_virtual_file_stats (三角洲)
memory_stats1分钟sys.dm_os_sys_memory +内存计数器
memory_grant_stats1分钟sys.dm_exec_query_memory_grants
tempdb_stats1分钟sys.dm_db_file_space_usage
性能状态1分钟sys.dm_os_performance_counters (三角洲)
死锁1分钟system_health 扩展活动会话
会话统计1分钟sys.dm_exec_sessions 主动会话跟踪
记忆时钟5分钟sys.dm_os_memory_clerks
内存_压力_事件5分钟sys.dm_os_ring_buffers RING_BUFFER_RESOURCE_MONITOR
query_store5分钟查询存储DMV(每个数据库)
running_jobs5分钟msdb 工作历史记录,包括持续时间与平均值/p95
数据库大小设置15分钟sys.master_files + FILEPROPERTY + dm_os_volume_stats
服务器属性15分钟SERVERPROPERTY() 硬件和许可元数据
server_config连接时sys.configurations
database_config连接时sys.databases
database_scoped_config连接时数据库范围的配置
trace_flags连接时DBCC TRACESTATUS

精简数据存储

所有数据都存储在 %LOCALAPPDATA%\PerformanceMonitorLite\ --与可执行文件分开,因此自动更新不会影响您的数据。

  • 热门数据 在DuckDB 1.5.2中——无阻塞检查点,自由块重用,文件大小稳定,无需定期重置
  • 档案 使用ZSTD压缩的拼花地板(减少约10倍)——每月自动压缩使文件数量保持在较低水平(约75个文件对数千个文件)
  • 保留:3个月日历月滚动窗口
  • 典型大小:每台服务器每周约50-200 MB

精简配置

所有配置都存在于 config/ 文件夹:

文件目的
servers.json服务器连接(Windows凭据管理器中的密码)。可选的 公用事业数据库 对于安装在master外部的社区procs,每台服务器。
settings.json保留、MCP服务器、启动行为、警报阈值、SMTP配置
collection_schedule.json每个收集器的启用/禁用和频率
ignored_wait_types.json默认情况下排除144种良性等待类型

______________________________________________________________________

快速入门-完整版

安装

Windows身份验证:

PerformanceMonitorInstaller.exe YourServerName

SQL身份验证:

PerformanceMonitorInstaller.exe YourServerName sa YourPassword

Entra ID(MFA)身份验证:

PerformanceMonitorInstaller.exe YourServerName --entra user@domain.com

彻底重新安装(删除现有数据库和所有收集的数据):

PerformanceMonitorInstaller.exe YourServerName --reinstall
PerformanceMonitorInstaller.exe YourServerName sa YourPassword --reinstall

卸载(删除数据库、代理作业和XE会话):

PerformanceMonitorInstaller.exe YourServerName --uninstall
PerformanceMonitorInstaller.exe YourServerName sa YourPassword --uninstall

安装程序会自动测试连接,检查SQL Server版本(需要2016+),执行SQL脚本,下载社区依赖关系,创建SQL代理作业,并运行初始数据收集。您还可以直接从仪表板的“添加服务器”对话框进行安装。

空气间隙环境? 放置预先下载的社区脚本(sp_WhoIsActive.sql, DarlingData.sql, Install-All-Scripts.sql)在a community/ 安装程序旁边的目录。安装程序在存在时使用本地文件,否则将回退到GitHub下载。

CLI安装程序选项

选项描述
SERVERSQL Server实例名称(位置,必填)
USERNAME PASSWORDSQL身份验证凭据(位置,可选)
--entra EMAILMicrosoft Entra ID交互式身份验证(MFA)
--reinstall删除现有数据库并执行全新安装
--uninstall删除数据库、代理作业和XE会话
--reset-schedule将收集计划重置为推荐的默认值
--preserve-jobs升级期间保留现有的SQL代理作业计划
`--encrypt=optional\mandatory\strict`连接加密级别(默认:强制)
--trust-cert信任服务器证书而不进行验证(默认:需要有效证书)
--help显示使用信息并退出

环境变量:PM_SQL_PASSWORD 以避免在命令行上传递密码。

退出代码

代码含义
0成功
1无效参数
2连接失败
3关键文件失败(脚本01–03)
4部分安装(非关键故障)
5版本检查失败(SQL Server 2014或更早版本)
6找不到SQL文件
7卸载失败
8升级脚本失败

安装后

  1. 确保SQL Server代理正在运行--收集作业每分钟执行一次
  2. 验证安装:
SELECT * FROM PerformanceMonitor.config.current_version;

SELECT TOP (20) *
FROM PerformanceMonitor.config.collection_log
ORDER BY collection_time DESC;
  1. 启动仪表板(Dashboard/ 文件夹--使用构建 dotnet build 或使用发布包)。仪表板是一个单独的WPF应用程序,在您的工作站上运行,并连接到安装了PerformanceMonitor数据库的任何SQL Server。添加服务器,输入凭据,数据立即显示。

安装什么

  • 性能监控数据库 具有收集表和报告视图
  • 32个收集器存储过程 用于收集指标(包括SQL代理作业监控)
  • 可配置集合 --每个收集器都可以通过以下方式禁用查询文本和执行计划捕获 config.collection_schedule (collect_query, collect_plan 列)用于敏感或高容量环境
  • Delta框架 用于根据累积DMV计算每秒速率
  • 社区依赖关系: sp_WhoIsActive、sp_HealthParser、sp_HumanEventsBlockViewer、sp_BlitzLock
  • SQL代理作业: 收集(每1分钟)、数据保留(每天凌晨2:00)和挂起作业监视器(收集作业监视器,每5分钟一次)
  • 版本跟踪config.installation_history

数据保留

默认值:30天(可通过以下方式为每个收集器配置 retention_days 列在 config.collection_schedule).

存储估计:每周5-10 GB,每月20-40 GB。

管理平台支持

完整版支持Azure SQL托管实例和AWS RDS for SQL Server,但存在一些限制:

功能本地部署Azure SQL MIAWS RDS
所有核心收集器
默认跟踪收集器自动禁用
系统运行状况XE(文件目标)自动禁用
SQL跟踪收集器自动禁用
SQL代理作业
正在运行作业收集器自动禁用
阻塞进程阈值自动配置自动配置RDS参数组配置
sp_configure不可用

Azure SQL MI: 安装程序会自动检测Engine Edition 8,并禁用4个需要文件系统访问或SQL跟踪的收集器(default_Trace、Trace_management、Trace_analysis、system_health)。所有其他收集器工作正常。

AWS RDS: 安装程序会自动检测 rdsadmin 数据库并禁用 running_jobs_collector (要求 msdb.dbo.syssessions 这在RDS上受到限制)。它还可以优雅地处理受限 sp_configure 有限 msdb 权限。SQL代理作业由安装登录名创建和拥有。RDS主用户已自动注册 SQLAgentUserRole;对于其他登录,请将其添加到 SQLAgentUserRole 在运行安装程序之前,请先在msdb中。

AWS RDS参数组配置

sp_configure 在AWS RDS for SQL Server上不可用。必须通过以下方式设置依赖于服务器级配置的功能 AWS RDS参数组 相反。

阻塞进程阈值 --对于已阻止的流程报告收集,这是必需的。否则,被阻止的进程报告将不会在RDS上触发。

  1. 打开 AWS RDS控制台 并导航到 参数组
  1. 创建新的参数组(或修改附加到实例的参数组):

- 家庭: sqlserver-ee-16.0 (或您的版本/版本) - 类型:DB参数组

  1. 搜索 blocked process threshold (s) 并将其设置为 5 (秒)
  1. 将参数组应用于您的RDS实例(如果参数是静态的,可能需要重新启动)
  1. 验证其是否生效:
   SELECT
       c.name,
       c.value_in_use
   FROM sys.configurations AS c
   WHERE c.name = N'blocked process threshold (s)';

死锁 --不需要参数组配置。SQL Server死锁监视器在所有平台上自动运行 xml_deadlock_report 扩展事件在没有任何阈值设置的情况下触发。

Azure SQL数据库 --阻塞进程阈值固定为20秒,无法更改。这 blocked_process_report 当阻塞超过此持续时间时,事件会自动触发。

______________________________________________________________________

版本比较

功能完整精简版
目标服务器安装必需
SQL Server代理必需不需要
Azure SQL托管实例支持支持
AWS RDS for SQL Server支持支持
Azure SQL数据库不支持支持
从一个位置安装多台服务器每台服务器安装内置
收藏家3224
代理作业监控持续时间与历史平均值/p95持续时间和历史平均值/p95
数据存储SQL Server(目标)DuckDB+Parquet(本地)
执行计划收集和存储(每个收集器可以禁用)按需下载
图形平面查看器内置30尺PlanAnalyzer内置30条PlanAnalyzer
独立平面查看器打开/粘贴/拖动 .sqlplan 文件打开/粘贴/拖动 .sqlplan 文件
社区工具(sp_WhoIsActive、sp_BlitzLock)自动安装不需要
警报(托盘+电子邮件+webhooks)阻塞、死锁、CPU阻塞、僵局、CPU
仪表板独立应用程序内置
主题黑暗与光明黑暗与阳光
可移植性服务器绑定单个可执行文件
MCP服务器(LLM集成)内置仪表板(63个工具)内置(52个工具)

______________________________________________________________________

仪表板选项卡

完整版仪表板

选项卡内容
概述资源概述、每日摘要、关键问题、服务器配置更改、数据库配置更改、跟踪标志更改、集合运行状况
演出性能趋势、昂贵的查询、活动查询、查询统计、过程统计、查询存储、查询存储回归、查询跟踪模式、查询热图
资源指标服务器趋势、等待统计、TempDB、文件I/O延迟、性能计数器、默认跟踪事件、跟踪分析、会话统计、锁存统计、自旋锁统计
记忆内存概述、拨款、职员、计划缓存、内存压力事件
锁定阻塞链、死锁、阻塞/死锁趋势
系统事件损坏事件、争用、错误、I/O问题、调度程序问题、内存状况

此外,还有一个带有服务器健康卡(绿色/黄色/红色严重性指示器)的NOC风格登录页面。

精简版仪表板

选项卡内容
概述2x2资源图表网格(CPU、内存、等待统计、TempDB),带深入查看
活动查询运行包含会话详细信息、等待类型、阻塞、DOP、内存授予的查询
等待统计信息带增量计算的可过滤等待统计图
中央处理器SQL Server CPU与其他进程随时间的变化
记忆物理内存概述、SQL Server内存趋势、内存管理员故障、内存压力事件
查询性能趋势、按持续时间划分的顶级查询和过程、查询存储集成、查询热图
文件I/O每个数据库文件的读/写I/O趋势
TempDB空间使用细分和TempDB文件I/O
阻塞阻塞/死锁趋势、阻塞进程报告、死锁历史
性能监视随时间变化的可选SQL Server性能计数器
配置服务器配置、数据库配置、作用域配置、跟踪标志
FinOps 的利用率和配置分析、数据库资源细分、存储增长(7d/30d)、空闲数据库检测、通过sp_IndexCleanup进行索引分析、应用程序连接、服务器清单、成本优化建议(企业功能审计、CPU/内存大小调整、压缩节省、休眠数据库、开发/测试检测)、所有网格上的列级过滤

这两个版本都具有自动刷新、可配置的时间范围、图表深入到活动查询、右键单击CSV导出、系统托盘集成、深色和浅色主题以及时区显示选项(服务器时间、本地时间或UTC)。

______________________________________________________________________

警报和通知

这两个版本都包含一个实时警报引擎,可以监控性能问题,并通过系统托盘气球和电子邮件发送通知。

警报类型

度量默认阈值描述
阻塞30秒(完整),5秒(精简)当最长阻塞会话超过阈值时触发
死锁1自上次检查以来检测到新死锁时发生火灾
毒药等待平均100毫秒当任何中毒等待类型超过平均每等待毫秒阈值时触发
长时间运行的查询5分钟当任何查询超过已用时间阈值时触发
TempDB空间80%TempDB使用率超过百分比阈值时发生火灾
长期运行的代理作业3×平均值当作业的当前持续时间超过其历史平均值的倍数时,就会发生火灾
高CPU90%(满),80%(精简)当总CPU(SQL+其他)超过阈值时触发
无法访问服务器N/A当被监控的服务器脱机或重新联机时(托盘+电子邮件)会触发

所有阈值都可以在设置中配置。

中毒等待类型 监测: THREADPOOL (工人线程耗尽), RESOURCE_SEMAPHORE (内存授权压力),以及 RESOURCE_SEMAPHORE_QUERY_COMPILE (编译内存压力)。这些等待表明严重的资源短缺,在正常运行下永远不会发生。

通知渠道

  • 系统托盘 --气球通知,每公制冷却时间可配置(默认值:5分钟)
  • 电子邮件(SMTP) --样式化的HTML电子邮件,具有可配置的每度量冷却时间(默认值:15分钟),以及可配置的SMTP设置(服务器、端口、SSL、身份验证、收件人)
  • 网络钩子 --HTTP POST到可配置的端点,用于与外部警报系统(Slack、Teams、PagerDuty等)集成

所有冷却期都可以在性能警报部分的设置中独立配置。

邮件提醒

警报电子邮件包括:

  • 度量汇总 --触发警报的原因,当前值与阈值
  • 详情部分 --最近的阻塞链或死锁参与者,包括查询文本、等待时间、锁定模式、数据库名称和客户端应用程序
  • XML附件 --满 blocked_process_report.xmldeadlock_graph.xml 用于离线分析

警报行为

  • 已解决的通知 --当条件清除时(例如,阻止结束),会触发“清除”通知
  • 服务器静音 --右键单击服务器选项卡以确认警报、使所有警报静音或取消静音
  • 始终打开 --仪表板警报引擎独立于哪个选项卡处于活动状态而运行,包括最小化到系统托盘时。Lite版本的警报引擎也会运行,而不管选项卡的可见性如何。
  • 警报历史记录 --仪表板保留一个内存警报日志(可通过MCP访问)。Lite将警报记录到DuckDB(config_alert_log).
  • 警报静音 --创建规则以抑制特定的重复警报,同时仍记录它们。规则在服务器名称、度量类型、数据库、查询文本、等待类型或作业名称(跨字段的AND逻辑)上匹配。通过设置访问→ 管理静音规则,或在“警报历史记录”选项卡中右键单击警报。上下文菜单提供两个静音选项: 将此警报静音 (为目标规则预填充服务器+指标)以及 将类似警报静音 (仅预填充指标,跨所有服务器匹配)。静音警报在警报历史记录中显示为灰色,但仍会被记录以供审计。规则支持可选过期(1小时、24小时、7天或永久)。
  • 警报详细信息 --右键单击“警报历史记录”选项卡中的任何警报,然后选择 查看详细信息 打开详细信息窗口。该窗口显示了核心警报字段(时间、服务器、指标、值、阈值、通知类型、状态)以及因指标而异的上下文相关详细信息:长时间运行的查询的查询文本和会话信息、异常代理作业的作业名称和持续时间统计、中毒等待的每种等待类型细分、TempDB按类别的空间使用情况以及阻塞/死锁会话计数。

______________________________________________________________________

代理作业监控

这两个版本都监视当前正在运行的SQL代理作业,并标记运行时间比预期长的作业。

度量它是如何工作的
当前持续时间作业开始后经过的时间
平均持续时间年成功完工的历史平均值 msdb.dbo.sysjobhistory
p95持续时间历史完工量的第95百分位数
长旗奔跑当电流持续时间超过p95阈值时设置

完整版通过以下方式收集这些数据 collect.running_jobs_collector 存储过程(每5分钟)。精简版查询 msdb 直接在每个收集周期。这两个版本都通过MCP公开这些数据 get_running_jobs 工具。

优雅地跳过了Azure SQL数据库、AWS RDS for SQL Server和没有SQL Server代理的环境。

______________________________________________________________________

MCP服务器(LLM集成)

这两个版本都包含一个嵌入式 模型上下文协议 该服务器向Claude Code和Cursor等LLM客户端公开监控数据。

设置

  1. 在设置中启用MCP服务器(复选框+端口,默认 5151)

- 端口必须位于 102465535端口0-1023是操作系统保留的众所周知的特权端口。 - 保存时,应用程序会检查所选端口是否已在使用中,并在发生冲突时警告您。 - 启动时,应用程序在启动MCP服务器之前验证端口是否可用。

  1. 注册克劳德代码:
claude mcp add --transport http --scope user sql-monitor http://localhost:5151/
  1. 打开一个新的Claude Code会话,并提出以下问题:

- “正在监视哪些服务器?” - “我的服务器上最常见的等待类型是什么?” - “是否存在任何阻塞或死锁问题?” - “显示过去4小时的CPU利用率” - “CPU最昂贵的查询是什么?”

可用工具

完整版公开了63个工具,精简版公开了52个。两个版本共享核心工具。

类别工具
发现list_servers
健康get_server_summary\*, get_daily_summary\*\*, get_collection_health
警报get_alert_history, get_alert_settings, get_mute_rules
等待get_wait_stats, get_wait_types\*, get_wait_trend, get_waiting_tasks\*
查询get_top_queries_by_cpu, get_top_procedures_by_cpu, get_query_store_top, get_expensive_queries\*\*, get_query_duration_trend\*, get_query_trend
活动查询get_active_queries
CPUget_cpu_utilization
记忆get_memory_stats, get_memory_trend, get_memory_clerks, get_memory_grants
封锁get_blocking\*\*, get_deadlocks, get_deadlock_detail, get_blocked_process_reports\*, get_blocked_process_xml, get_blocking_deadlock_stats\*\*, get_blocking_trend\*, get_deadlock_trend\*
输入/输出get_file_io_stats, get_file_io_trend
TempDB 的 get_tempdb_trend
Perfmonget_perfmon_stats, get_perfmon_trend
工作机会get_running_jobs
配置get_server_config\*, get_database_config\*, get_database_scoped_config\*, get_trace_flags\*
配置历史记录get_server_config_changes\*\*, get_database_config_changes\*\*, get_trace_flag_changes\*\*
服务器信息get_server_properties, get_database_sizes
会议get_session_stats
调度程序get_cpu_scheduler_pressure\*\*
锁扣/旋锁get_latch_stats\*\*, get_spinlock_stats\*\*
诊断get_plan_cache_bloat\*\*, get_critical_issues\*\*
系统事件get_default_trace_events\*\*, get_trace_analysis\*\*, get_memory_pressure_events
健康分析器get_health_parser_system_health\*\*, get_health_parser_severe_errors\*\*, get_health_parser_io_issues\*\*, get_health_parser_scheduler_issues\*\*, get_health_parser_memory_conditions\*\*, get_health_parser_cpu_tasks\*\*, get_health_parser_memory_broker\*\*, get_health_parser_memory_node_oom\*\*
计划分析analyze_query_plan, analyze_procedure_plan, analyze_query_store_plan, analyze_plan_xml, get_plan_xml
诊断分析analyze_server\*, get_analysis_facts\*, compare_analysis\*, audit_config\*, get_analysis_findings\*, mute_analysis_finding\*

\*仅限精简版|\*\*仅限完整版

大多数工具接受可选 server_namehours_back 参数。如果只配置了一个服务器, server_name 是自动解决的。

MCP服务器绑定到 localhost 仅接受远程连接,不接受远程连接。

______________________________________________________________________

性能影响

在受监控的服务器上

  • 所有查询都使用 READ UNCOMMITTED 隔离
  • 可配置的收集间隔
  • 完整版:典型开销\ 4 AND DATABASEPROPERTYEX(DB_NAME(), ''Updateability'') = ''READ_WRITE''

BEGIN IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''SQLServerPerfMon'') CREATE USER [SQLServerPerfMon] FOR LOGIN [SQLServerPerfMon]; GRANT VIEW DATABASE STATE TO [SQLServerPerfMon]; GRANT VIEW DEFINITION TO [SQLServerPerfMon]; GRANT SELECT ON sys.sql_expression_dependencies TO [SQLServerPerfMon]; END';


**症状缺失。** 根据缺少哪种授权,有两种不同的故障模式:

- *目标数据库中没有用户映射* — `sp_IndexCleanup` 可以挂在100%的CPU上,无需等待,永远不会返回,而不是快速失败 `Msg 916` 就像其他目录DMV一样。挂起不是死锁或长时间扫描;这是一个SQL Server引擎错误,执行时的权限检查被错误分类为“此计划需要重新编译”,从而产生无限的重新编译循环。在SQL Server 2016 SP3到2025 CU4上复制。
- *用户被映射到 `VIEW DATABASE STATE` + `VIEW DEFINITION` 但没有 `SELECT` 上 `sys.sql_expression_dependencies`* --快速失败 `Msg 229, Level 14, State 5: The SELECT permission was denied on the object 'sql_expression_dependencies', database 'mssqlsystemresource', schema 'sys'` 达到具有UDF绑定计算列或检查约束的数据库的时刻。

将上述三项补助金相加,即可消除两者。查看问题 [#915](https://github.com/erikdarlingdata/PerformanceMonitor/issues/915) 以进行全面诊断。

### Azure SQL数据库(仅精简版)

Azure SQL数据库不支持服务器级登录。创建一个 **包含数据库用户** 直接在目标数据库上:

-- Connect to your target database (not master) CREATE USER [SQLServerPerfMon] WITH PASSWORD = 'YourStrongPassword'; GRANT VIEW DATABASE STATE TO [SQLServerPerfMon];


在Lite中连接时,请在连接中指定数据库名称。SQL代理和msdb在Azure SQL数据库上不可用——这些收集器会自动跳过。

### Azure SQL托管实例

像在内部一样工作。使用服务器级登录 `VIEW SERVER STATE`.SQL代理可用。

### AWS RDS for SQL Server

使用RDS主用户进行安装。主用户具有必要的权限。对于正在进行的收集, `VIEW SERVER STATE` msdb访问的工作原理与本地相同,但 `sp_configure` 不可用(请改用RDS参数组——见上文)。

______________________________________________________________________

## 文件夹结构

Monitor/ │ │ Full Edition (server-installed collectors + separate dashboard) ├── install/ # 58 SQL installation scripts ├── upgrades/ # Version-specific upgrade scripts ├── Installer/ # CLI installer for Full Edition database (C#) ├── Installer.Core/ # Shared installation library (CLI + Dashboard) ├── Dashboard/ # Full Edition dashboard application (WPF, includes installer) │ │ Lite Edition (standalone desktop app, nothing installed on server) ├── Lite/ # Lite Edition desktop application (WPF) │ │ Shared └── README.md # This file


______________________________________________________________________

## 从源头构建

所有项目的目标。网8.0。

Full Edition Dashboard

dotnet build Dashboard/Dashboard.csproj

Lite Edition

dotnet build Lite/PerformanceMonitorLite.csproj

CLI Installer (self-contained)

dotnet publish Installer/PerformanceMonitorInstaller.csproj -c Release


______________________________________________________________________

## 支持与赞助

**该项目在MIT许可证下是免费开源的。** 该软件功能齐全,没有保留任何功能——每个用户都有相同的工具、相同的收集器、相同的MCP集成。

然而,一些组织的采购或合规政策要求在将软件部署到生产环境之前,必须建立正式的供应商关系、签订支持协议或开具发票。如果这听起来很熟悉,那么有两个商业支持级别可供选择:

|级别|年度成本|您将获得什么|
|------|-------------|--------------|
| **支持** |500美元/年|电子邮件支持(2个工作日响应)、新SQL Server版本的兼容性保证、供应商协议和合规发票、无限实例|
| **优先** |2500美元/年|下一个工作日的电子邮件回复、季度实时问答环节、早期访问新功能、路线图输入、无限实例|

这两个层都覆盖了无限的SQL Server实例。软件本身是相同的——商业支持是关于关系的,而不是功能门。

**[阅读更多关于免费工具和商业选项的信息](https://erikdarling.com/free-sql-server-performance-monitoring/)** | **[购买支持订阅](https://training.erikdarling.com/sql-monitoring)**

如果你觉得这个项目很有价值,你也可以支持持续开发:

| | |
|---|---|
| **GitHub上的赞助商** | [成为赞助商](https://github.com/sponsors/erikdarlingdata) 为新功能、持续维护和SQL Server版本支持提供资金。 |
| **咨询服务** | [雇用我](https://training.erikdarling.com/sqlconsulting) 如果您需要帮助分析此工具收集的数据,请提供实践咨询?需要专家协助解决它发现的问题吗?  |

无需赞助或咨询,可以自由使用该工具。

______________________________________________________________________

## 第三方组件

### sp_WhoIsActive

- **作者** 亚当·马查尼克| **许可证:** GPLv3
- **存储库:** https://github.com/amachanic/sp_whoisactive

### 亲爱的数据

- **作者** 埃里克·达林(Darling Data,LLC)| **许可证:** 麻省理工学院
- **存储库:** https://github.com/erikdarlingdata/DarlingData

### SQL Server第一响应程序工具包

- **作者** Brent Ozar无限| **许可证:** 麻省理工学院
- **存储库:** https://github.com/BrentOzarULTD/SQL-Server-First-Responder-Kit

看 [第三条_通知.md](THIRD_PARTY_NOTICES.md) 获取完整的许可证文本。

______________________________________________________________________

## 赞助商

  
    
    Free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation
  

______________________________________________________________________

## 许可证

版权所有(c)2026 Darling Data,LLC。根据麻省理工学院许可证授权。看 [许可证](LICENSE) 了解详情。

## 作者

埃里克·达林-- [未知](https://erikdarling.com) — [Darling Data有限责任公司](https://darlingdata.com)

目录标签

目录标签

C#Claude性能分析数据库监控本地部署SQLServer实时警报AI分析

支持客户端

ClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

74

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP