DotNetNext / SqlSugar

.Net aot ORM Fastest ORM Simple Easy VB.NET Sqlite orm Oracle ORM Mysql Orm 虚谷数据库 postgresql ORm SqlServer oRm 达梦 ORM 人大金仓 ORM 神通ORM C# ORM , C# ORM .NET ORM NET5 ORM .NET6 ORM ClickHouse orm QuestDb ,TDengine ORM,OceanBase orm,GaussDB orm ,Tidb orm Object/Relational Mapping
https://www.donet5.com/Home/Doc
MIT License
5.27k stars 1.33k forks source link

关于监控SQL执行时间的问题 #1096

Closed xulei-Itachi closed 1 year ago

xulei-Itachi commented 1 year ago

我按照文档上所写,使用 db.Ado.SqlExecutionTime.TotalSeconds 获取sql执行时间,但是获取到的时间是负的是什么情况? 比如 : -63803510270.28474 , -0.0026422这样的值。 AOP添加方式是:db => { //单例参数配置,所有上下文生效 db.Aop.OnLogExecuting = (sql, pars) => { //Console.WriteLine(sql);//输出sql //执行时间超过1秒 if (db.Ado.SqlExecutionTime.TotalSeconds > 1) { //代码CS文件名 var fileName = db.Ado.SqlStackTrace.FirstFileName; //代码行数 var fileLine = db.Ado.SqlStackTrace.FirstLine; //方法名 var FirstMethodName = db.Ado.SqlStackTrace.FirstMethodName; //db.Ado.SqlStackTrace.MyStackTraceList[1].xxx 获取上层方法的信息

                }
            };
        }
DotNetNext commented 1 year ago

db.Aop.OnLogExecuting = (sql, pars) => 事件错了,这个执行前事件

xulei-Itachi commented 1 year ago

懂了,我的锅,眼神不太好使。