NHibernate初学者指南(13):监测与分析
一旦程序完成,在测试或实际的环境中运行,我们可能想或者需要监测它。有下面几种方法可以监测数据库和应用程序的通信:分析日志文件、使用SQL Server Profiler、使用NHibernate Profiler。下面让我们一一的看看它们吧。
在NHibernate初学者指南(12):日志中我们已经看到了NHibernate可以产生大量的日志数据。这些数据对于分析底层发生的事情非常有用。不管你使用什么版本的Microsoft SQL Server作为数据库,都可以使用SQL Server Profiler监测数据库与程序的通信。这种方法的缺点是,profiler只挂钩在数据库级别,并不知道NHibernate。
使用NHibernate Profiler监测与分析#
NHibernate Profiler是一个实时的可视化调试器,允许开发团队获取有价值的理解和深入研究NHibernate的使用。
这个profiler提供了一些其他产品没有提供的独特优势:
- 透过NHibernate记录、监测和分析程序与数据库的通信。
- 所有的SQL语句都是格式化好的,例如,方便复制和粘贴到SQL Server Management Studio中做更进一步的测试。
- 分析访问模式和以警告的形式提供反馈以及当使用NHibernate时提供如何避免常见陷阱的建议和根据最佳做法提升查询。
- 为引起数据库访问的每一个方法提供全堆栈追踪以及允许开发人员直接跳转到相关的源代码。
- 提供各种关于数据库通信的统计数据的报告。
- 数据库通信可以被记录以及保存用于后面的分析。
NHibernate Profiler可以点击这里下载。它有30天的试用期。
添加NHibernate Profiler支持#
在这个练习中,我们下载,安装和使用NHibernate Profiler来监测由单元测试引起的与数据库通信。
1. 下载NHibernate Profiler,并解压。
2. 在解压后的文件中找到NHProf.exe并双击,会出现一个对话框,如下图所示:
3. 点击"Click here to register for a 30 days free trial"申请试用许可,许可会发送的你的邮箱。
4. 创建一个新的XML文件(如:MyLicense.xml),复制邮件中的许可证密钥粘贴到XML文件中。
5. 再次运行NHibernate Profiler,点击Browse for Your License,选择新创建的XML文件MyLicense.xml。
6. 在Visual Studio中打开Ordering System解决方案。
7. 在OrderingSystem.Tests项目中添加对HibernatingRhinos.Profiler.Appender.dll和log4net.dll程序集的引用。
8. 打开OrderingSystem.Tests项目中的MappingSpecificationBase类,在BeforeAllTests方法中的第一行添加如下代码启用NHibernate Profiler监测测试代码和数据库间的通信:
HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();
9. 打开entity_mapping_spec类,运行测试。
10. 切换到NHibernate Profiler,定位到INSERT INTO [Product]...语句并选择它,在下面的Details选项卡中会显示出详细信息,如下图所示:
上面申请30天的许可,过了一天了也没见到回复的邮件,无奈,只好使用破解版的了
,如果有需要的,可以私下里找我要!
作者:程序旅途
出处:https://www.cnblogs.com/nianming/archive/2011/11/23/2259703.html
版权:本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!