RPC:Completed
是远程过程调用的完成,这意味着从外部应用程序调用了一个存储过程。在您的情况下,EF Core 调用 sp_executesql
存储过程来执行从 LINQ 查询生成的 SQL。
SQL:BatchCompleted
表示一组 SQL 语句已经执行。它可以是一组 DDL 或 DML 语句,也可以是存储过程调用。
SQL:BatchCompleted
事件表示一个或多个语句的自由文本(非参数化)批处理完成执行。当远程过程调用请求完成执行时,RPC:Completed
完成事件触发,可以是参数化的SQL语句或直接存储过程调用。sp_executesql
存储过程来执行参数化查询,因此在跟踪中显示该存储过程。 Profiler将反序列化的请求显示为exec sp_executesql N'...
,包括文本形式的参数值。实际参数以本机(二进制)格式发送到SQL。编辑:
我看到你在问题中使用了查询优化标签。为了解决问题查询的性能问题,你可以使用 SQL Server Management Studio 执行一个捕获的请求,并选择查看实际执行计划选项。你也可以通过添加 Showplan XML
事件来捕获计划,但应该只在开发环境中使用带有过滤跟踪的方式来避免影响生产工作负载。在生产环境中使用未经过滤的 Profile 跟踪是不好的。