EF 记录执行的sql语句】的更多相关文章

最近做了个中等的项目,数据不会很多,开发时间比较紧迫,所以用了EF的框架. 在使用过程中,发现有时候执行的结果不如预期,想看看执行的sql语句为何,遍查找资料,在网上找到了相关辅助类,拿来使用,部署到生产环境. 代码如下: public class EFIntercepterLogging : DbCommandInterceptor { ILog log = LogManager.GetLogger("InfoAppender"); private readonly Stopwatc…
1.执行无参数sql: string sql = "select * from IntegralInfo where convert(nvarchar,getdate(),23)='{0}' and status=1 and userinfoid='{1}'"; sql = string.Format(sql, DateTime.Now.ToString("yyyy-MM-dd"), uid); var IntegralInfoObj = db.Database.S…
show variables like "general_log%"; SET GLOBAL general_log = 'ON';SET GLOBAL general_log = 'OFF';…
在EntityFramework的CodeFirst模式中,我们想将程序自动生成的sql语句和执行过程记录到日志中,方便以后查看和分析. 在EF的6.x版本中,在DbContext中有一个Database属性,Database.Log就是用来专门记录这种日志的. Database.Log是一个Action<string>委托,给其赋值一个函数就行. 代码如下: using Model; using System; using System.Collections.Generic; using…
EF Core 日志跟踪sql语句 官方文档链接:https://docs.microsoft.com/en-us/ef/core/miscellaneous/logging 1.新增自定义ILoggerProvider实现类 public class EFLoggerProvider : ILoggerProvider { public ILogger CreateLogger(string categoryName) => new EFLogger(categoryName); public…
今天上班例行的查看了下服务器的运行状况,发现服务器特卡,是mysqld这个进程占用CPU到了99%导致的. 比较好奇是那个程序在使用mysql导致cpu这么高的,通过show processlist命令查看了当前正在执行的sql语句,从而定位到了对应的程序,发现代码中有一个死循环在不停的查询导致cpu占用99%,原因找到了问题就好解决了. 这里简单的记录一下processlist的用法: processlist 命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这…
# tcpdump -n -nn -tttt -i eth1 -s 65535 'port 3306' -w tcpdump_mysql.ret -C 100 一个TCP包中包含多个mysql协议包,一个协议包就是一条mysql记录. 使用抓包工具开打tcpdump_mysql.ret 文件 使用tcpdump来抓取执行的sql语句. # tcpdump -i eth1 -s 0 -l -w - dst  port 3306 | strings $sudo tcpdump -i eth0 -A…
前言 IBatis.Net中Sql语句是些在配置文件中的,而且配置文件是在程序启动时读取的(我们开发的时候需要将其设置成较新复制或者是始终复制),而不是程序将其包含在其中(例如NHibernate的映射文件则是设成了嵌入式资源).很多时候我想获取程序执行了那些sql,当程序显示错误时,我们想跟踪sql,或者是查看sql是否正确,难道要我们去查看程序在跟踪到映射的配置文件查看吗.可以通过两种方式实现: 一.通过配置文件配置 为程序的配置文件(App.config或者web.config)文件中添加…
django框架采用的ORM模型,我们可以通过mysql的日志记录实时看到执行的sql语句,具体步骤如下: 第一步:找到mysql的配置文件 第二步:编辑mysql配置文件 第三步:重启mysql 第四步:查看日志开启的状态和log文件路径 第五步:实时查看执行的sql语句 是不是觉得很爽呢?如果你觉得本文章对你有所帮助,请持续关注我的博客. 本文章地址:http://www.cnblogs.com/robin201711/p/8470020.html…
在模型操作中 ,为了更好的查明错误,经常需要查看下最近使用的SQL语句,我们可以用getLastsql方法来输出上次执行的sql语句.例如: User::get(1); echo User::getLastSql(); 输出结果是 SELECT * FROM 'think_user' WHERE 'id' = '1' 也可以使用fetchSql方法直接返回当前的查询SQL而不执行,例如: echo User::fetchSql()->find(1); 输出的结果是一样的. getLastSql方…