# SqlMonitor **Repository Path**: itfvck/sql-monitor ## Basic Information - **Project Name**: SqlMonitor - **Description**: SQL Monitor - 轻量级多数据库 SQL 监控工具 一个绿色版(免安装、拷贝即用)的 SQL 监控工具,替代 SQL Server Profiler 等重量级客户端。目标是实时捕获目标数据库上执行的 SQL 语句,帮助分析第三方软件的数据写入逻辑(插入了什么表、什么字段)。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-29 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SqlMonitor 轻量级多数据库 SQL 监控工具,替代 SQL Server Profiler 等重量级客户端。 绿色免安装,拷贝即用。实时捕获目标数据库上执行的 SQL 语句,帮助分析 ERP 等第三方软件的数据写入逻辑。 ## 功能特性 - 实时捕获 SQL 语句(INSERT / UPDATE / SELECT / DELETE) - 支持三种数据库:SQL Server 2000+、MySQL 5.6+、Oracle 10.2+ - 自动识别 SQL 类型和目标表名 - SQL 语法高亮显示 - 启动前过滤(服务端过滤,按数据库名、登录名、应用程序名) - 实时过滤(按关键字、表名、SQL 类型) - 导出为 CSV 或 SQL 文本文件 - 连接配置保存和管理 - 绿色便携,无需安装 ## 数据库捕获方案 | 数据库 | 最低版本 | 捕获机制 | |--------|---------|---------| | SQL Server | 2000+ | sp_trace 服务端跟踪,写 .trc 文件后读取 | | MySQL | 5.6+ | performance_schema.events_statements_history 轮询 | | Oracle | 10.2+ | V$SESSION 轮询检测 SQL_ID 变化 + V$SQL 取全文 | ## 环境要求 - Windows 7 SP1 或更高版本 - .NET Framework 4.5(Windows 7 SP1 自带,XP 需安装) - 目标数据库的管理员账号(sa / root / DBA) ## 使用方法 1. 将整个文件夹拷贝到任意位置 2. 运行 `SqlMonitor.exe` 3. 点击「连接配置」,填写数据库连接信息并保存 4. 可选:点击「过滤设置」配置服务端过滤条件 5. 点击「开始监控」 6. 在目标数据库上执行操作(如使用 ERP 软件),监控面板将实时显示捕获的 SQL ## 构建 需要 Visual Studio 2019 或更高版本。 ```bash "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" SqlMonitor.sln -p:Configuration=Release -verbosity:minimal ``` 构建产物在 `SqlMonitor\bin\Release\` 目录下。 ## 项目结构 ``` SqlMonitor/ ├── Models/ # 数据模型(SqlTraceEvent, ConnectionConfig, FilterConfig) ├── Providers/ # 数据库捕获实现(ISqlCaptureProvider 接口 + 三种实现) ├── Services/ # 核心服务(CaptureEngine, SqlParser, ConfigService) ├── Forms/ # 对话框(ConnectionForm, FilterForm) ├── Utils/ # 工具类(SqlHighlighter) ├── MainForm.cs # 主窗体 └── Program.cs # 入口 ``` ## 技术栈 - C# WinForms / .NET Framework 4.5 - System.Data.SqlClient(SQL Server 驱动,.NET 自带) - MySql.Data.dll(MySQL Connector/NET 6.9.12) - Oracle.ManagedDataAccess.dll(ODP.NET Managed 19.21.0) - Newtonsoft.Json.dll(JSON 序列化) ## 注意事项 - 本工具设计用于开发/测试环境,不建议在生产环境使用 - SQL Server 监控使用 sp_trace,需要 ALTER TRACE 权限 - MySQL 监控依赖 performance_schema,需确认已启用 - Oracle 轮询间隔 500ms,极快执行的 SQL 可能被漏过 - 程序异常退出时会尝试清理 SQL Server 残留 trace ## License 非商业用途免费使用。商业用途需获得作者授权并付费,详见 [LICENSE](LICENSE) 文件。