不少时候,咱们但愿能知道咱们写的项目在运行过程当中到底执行了哪些SQL语句,或者说一个页面中访问了几回数据库。好让咱们在优化的时候提供一些方向。框架
举个例子,做者在有时候,会自信的认为这个页面很简单,估计也就顶多5条SQL语句就能够了。但是当打开SQL报告以后才吓傻眼,几十条SQL,看的是触目心惊。工具
或者有时候,同事找到我说,怎么页面执行的这么慢,我一般让他本身去看SQL执行报告,一打开,发现一个页面执行了上百条的SQL。这样的页面能快到哪里去?在循环里面访问数据库,是想考验数据库的承受能力吗?性能
好了,废话完了。如今说回正经事,首先是,若是打开SQL报告。默认Farseer是关闭了SQL报告的。请记住,在生产环境下(线上环境)请不要打开这个SQL报告。由于它会直接影响到你的系统性能哦。只在开发环境下打开。优化
在~/App_Data/System.Config 中,有其中一项:IsWriteDbLog 默认是False 的,将它设为True 便可。 这个配置文件不存在时,执行下项目,Farseer会检查配置文件是否存在,不存在则会建立出来。spa
当打开后,再次尝试运行下项目。你会发现,在~/App_Data/ 多了一个SQL文件夹。没错,这里就是项目运行过程当中产生的SQL的记录。.net
这个SQL记录文件会一直记录着。而且会根据访问的路径来存放物理文件目录。code
咱们看看这个SQL报告里面记录了哪些信息:
都是毫秒单位显示
生成:Farseer.Net 生成Sql文本所须要的时间。
获取:将SQL文本提交(ADO.NET)给数据库执行的时间,也就是数据库执行时间。
转换:取得数据的DataTable转换成List<Users>的转换时间。
经过这么一份简单的SQL报告,可让你更加清楚本身项目的执行状况。
QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net
Farseer.Net是一款ORM框架 + 经常使用工具 + 扩展集合。
Farseer 意为:先知、预言家 一般在某些场合时,提供计谋、策略。也但愿该框架能给你们提供最大化的便捷。
ORM:其英文全称是:Object(对象) Relational(关系) Mapping(映射)
Farseer.Net的目标是:快速上手、快速开发、简单方便。
1 new User { ID = 1, Name = "张三" }.Insert()