存储过程和实体框架的性能

2024-03-05

是否有任何明显的原因可以解释为什么通过实体模型调用存储过程会导致性能比直接调用慢得多?

首先,我不希望 SP 运行在exactly相同的速度,我知道 EF 必须做的许多事情在直接访问 SP 时不会被调用。

除此之外,我有一个返回三列字符串的查询。当我通过企业管理器执行它时,它几乎立即运行。如果我通过 EF 运行它,则大约需要六秒钟。当然,结果被映射到复杂类型,但是当我通过 SQL Server Profiler 运行查询时,可以清楚地看到延迟发生在 SQL Server 上:

在图中,1 表示从 Enterprise Manager 调用 SQL,2 表示使用 EF 通过我的应用程序调用 SQL。

我在这里做错了什么明显的事情吗?我预计可能会有一两秒的延迟,但差异似乎太大了。

EDIT:

通过 ADO.Net 调用时,存储过程似乎也运行缓慢。我的同事似乎认为这与 .Net 缓存的错误执行计划有关。通过编辑存储过程并再次保存,似乎清除了缓存中的所有内容,并且 ADO.Net 和 EF 对存储过程的调用都运行良好。

以前有其他人遇到过类似的事情吗?


看一眼SQL Server 论坛上的此主题 http://social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/6e5353b9-4837-4022-a535-5408ed6f852a/。有点相似,也许能提供一些线索。简而言之,SSMS 和 ADO.NET 中可能有不同的 SQL Server 执行环境选项,从而导致不同的执行计划。清除 SQL Server 计划缓存应该会有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

存储过程和实体框架的性能 的相关文章

随机推荐

  • OpenGL 3.0 中 glDrawPixels 的替代品?

    所以我知道 glDrawPixels 已被弃用 有没有做同样事情的函数 我想过使用纹理 但它们是由当前矩阵修改的 与 glDrawPixels 绘制的像素不同 我想过使用纹理 但它们被当前矩阵修改了 当前矩阵 在 3 0 中已弃用 并在 3
  • 在 HTML 5 画布上创建 Reuleaux 多边形的函数

    我正在开展一个使用 HTML 5 画布设计系统艺术作品的项目 为了给我的作品带来更有机和多样化的感觉 我想要一个创建 reuleaux 多边形的函数 我认为可能有一种方法可以改变我的draw sharp polygon center pos
  • UITableViewCell 中的 UILabel 大小不正确(分配文本后的动画)

    文本在一个UILabel显示后闪烁 首先以省略号出现在单行上 然后占据其适合的 2 行 请注意 单元格高度没有改变 问题是这样的 标签 朋友们 快来参与并填满盒子吧 首先出现被截断的并在视图转换期间错位为 这种情况仅发生在装有 iOS 8
  • 为什么我应该更喜欢使用成员初始值设定项列表?

    我偏向于在构造函数中使用成员初始值设定项列表 但我早已忘记了其背后的原因 您是否在构造函数中使用成员初始值设定项列表 如果是这样 为什么 如果没有 为什么不呢 For POD https stackoverflow com a 146454
  • SpyOn TypeORM 存储库可更改单元测试 NestJS 的返回值

    我想对我的 TypeORM 数据库调用进行单元测试 我已经用有效数据模拟了我所有的 TypeORM 存储库 但我想监视存储库并更改 TypeORM 的返回值形式 我怎么做 import INestApplication from nestj
  • PowerShell - 如何在运行空间中导入模块

    我正在尝试用 C 创建一个 cmdlet 代码看起来像这样 Cmdlet VerbsCommon Get HeapSummary public class Get HeapSummary Cmdlet protected override
  • 更改 WooCommerce 电子邮件通知中的订单项目元数据

    我需要更改 自定义 WooCommerce 电子邮件通知的特定订单项元数据 但我找不到解决方案 I found one https stackoverflow com a 52684694 1354580 但它用于从 Woocommerce
  • 如何高效更新文件修改频繁的Impala表

    我们有一个基于 Hadoop 的解决方案 CDH 5 15 我们可以在 HDFS 的某些目录中获取新文件 在这些目录的顶部 我们有 4 5 个 Impala 2 1 表 在 HDFS 中写入这些文件的过程是 Spark Structured
  • android 套接字 DataOutputStream.writeUTF

    我写套接字客户端 clientSocket new Socket 192 168 1 102 15780 outToServer new DataOutputStream clientSocket getOutputStream 所有作品
  • NPM:如何获取 ./node_modules/.bin 文件夹?

    我在安装 npm 时遇到问题 我创建了一个项目 比如项目 A cd projectA npm install sails 但安装后找不到 sails 命令 我知道它已成功安装在 projectA node modules目录 但无法获取可执
  • heroku:无法检测到此应用程序的默认语言

    第一次使用 Heroku 试图推动 我已经运行命令 heroku create buildpack heroku python 它显示 heroku create buildpack heroku python Creating app d
  • “强”迭代器指针/引用

    是否存在 强 迭代器之类的东西 我的意思是迭代器坚持它所引用的值而不是它所在的地址 这样如果该值被交换到不同的地址 迭代器将继续在这个新地址中指向它 不管它在数据结构中移动到哪里 是的 也不是 但为什么 你想要什么std iter swap
  • 如何更改或查找 JTable 中的列类型

    我想插入JCheckBox在每一行中JTable所以我尝试更改我的第一个列类型 当我尝试此代码时 出现 java lang String 无法转换为 java lang Boolean 错误 DefaultTableModel model
  • Caffe/pyCaffe:设置所有 GPU

    是否可以为Caffe 尤其是pyCaffe 设置所有GPU 就像是 caffe train solver examples mnist lenet solver prototxt gpu all 这两个分支现在都支持多 GPU 一段时间了
  • WordPress 随机数存储在哪里?

    我试图找出 WordPress 存储所有随机数的位置 但却没能找到线索 我首先检查了数据库 但找不到任何名为 wp nonces 的表 我 11 个月前发布了这个问题 我收到的所有答案都很好 对我帮助很大 但他们都没有解决 WordPres
  • 字段列表中的未知列错误 Rmysql

    我使用编写了一个 data frame dbWriteTable con name db all df overwrite T row names F 使用MySQL成功连接到MySQL 现在我有第二个数据框 它具有类似的结构并尝试使用 d
  • 如何查看给定 npm 模块的依赖关系树?

    如何获取可用于 npm 但未安装在本地的模块树 npm ll执行本地安装的软件包的工作 但它不适用于未安装的模块或全局安装的模块 I tried npm list bower但事实并非如此 无需安装即可生成NPM依赖树 使用命令建立依赖关系
  • 两个 github 帐户推送到同一个存储库 [重复]

    这个问题在这里已经有答案了 所以这是一个非常具体的用例 如果任何 GitHub 专家可以帮助我 那就太好了 在我的 Linux 笔记本电脑中 我想推送same使用两个不同的 GitHub 用户名的 GitHub 存储库 我已在本地计算机中设
  • 将负数转换为无符号类型(ushort、uint 或 ulong)

    如何将一些负数转换为unsigned types Type type typeof ushort short num 100 ushort num1 unchecked ushort num When type is known Resul
  • 存储过程和实体框架的性能

    是否有任何明显的原因可以解释为什么通过实体模型调用存储过程会导致性能比直接调用慢得多 首先 我不希望 SP 运行在exactly相同的速度 我知道 EF 必须做的许多事情在直接访问 SP 时不会被调用 除此之外 我有一个返回三列字符串的查询