我的通用数据访问层 - 监视执行了哪些数据库的操作
时间:2011-05-02 来源:fish-li
这篇文章将介绍在使用我的通用数据访问层时, 如何监视程序在运行时发生了哪些数据库的操作。
对于很多数据库的应用程序来说,在做性能优化时,就必须知道程序在任何用户操作中,发生了哪些数据库的调用操作, 如果发现有不合理的调用,或者发现经常在重复执行同样的操作,就可以采取一些改进的措施。但是,在这个决策之前, 了解程序对数据库的访问细节是非常必要的。
我的通用数据访问层 在提供其它方便功能的同时,也支持监视程序对数据库的访问情况, 毕竟对于数据库的操作是由数据访问层最后发出的。于是在另一个辅助工具的配合下,可以非常方便地了解程序对于数据库的操作详情。
当然了,对于像Sql Server这样有类似Profiler工具支持的数据库来说,这个功能或许意义不大,但FishWebLib的设计是支持所有的数据库, 比如:本人以前使用的MySql就没这种工具,只好使用自己的这个工具了。
有图有真相,为了更好的展示,这里贴几个图片来给大家看看
注意:本文所涉及的所有文件及程序,都是可以下载的,如果需要,请点击右边链接: 通用数据访问层及Ajax服务端框架的综合示例,展示与下载
操作步骤:
1. 先启动 FishSQLProfiler.exe ,将FishSQLProfilerLibrary.dll复制到 演示网站的bin目录下, 双击“启动-演示程序.bat”即可启动演示网站。
2. 打开演示网站的“商品管理”页面, 来看看这二个界面的显示吧。
说明:从上图可以看出,这个页面在显示时,发生了二次数据库的访问操作,而且是在二个连接中执行。图片也显示第二次调用存储过程的详细情况。
3. 再来个复杂点的操作,点击FishSQLProfiler.exe工具栏中的删除按钮,清除现有的记录,
打开演示网站的“新增订单”页面,输入一些订单信息后,如图:
4. 点击按钮“确定保存此订单记录 并继续新增”后,再来看FishSQLProfiler.exe的界面
从上图可以看出,这次的UI操作,只打开了一次数据库的连接,但执行了7次存储过程的调用操作,并且发生一个事务中(蓝色粗体表示)。
5. 再贴个数据访问失败的界面:
选择那条错误的记录,将可以看到如下显示: