ek_*_*_ny 5 entity-framework sql-server-profiler asp.net-mvc-4
我将是第一个承认我在使用SQL Server分析器时经常感到困惑的人.
话虽如此,我决定通过尝试使用Db Set的Include方法来查看生成的SQL.我正在浏览音乐商店的例子,那里有专辑,艺术家和流派.
我注意到的一件事是,有些调用的事件类为SQL:BatchCompleted,而其他调用的事件类为RPC:Completed.似乎在RPC事件类下跟踪了延迟加载调用.
这两个事件类之间有什么区别,为什么延迟加载导致RPC的事件类:已完成?
这都是关于参数化的。当没有动态参数时,它作为 SQL Batch 运行;当有动态参数时,它作为 RPC 运行。此设置可以实现查询计划的最佳重用。
BatchCompleted表示TSQL代码(例如,选择)已完成.RPC:已完成表示存储过程已完成.可能是EF使用sp_executesql以动态方式执行SQL代码,因此您获得了RPC:Completed.
归档时间: |
|
查看次数: |
3936 次 |
最近记录: |