59、数据访问性能优化全解析

数据访问性能优化全解析

1. 查询计划缓存
  • 启用与禁用 ObjectQuery.EnablePlanCaching 用于启用或禁用 ObjectQuery 查询的查询计划缓存。对于 EntityClient ,可以将布尔型的 EntityCommand.EnablePlanCaching 设置为 true false 来启用或禁用缓存。
  • 动态查询的建议 :如果动态构建实体 SQL 表达式,微软建议禁用查询计划缓存以避免 SQL 注入攻击。不过,最好的防御方法是避免构建动态查询。
  • 大小写敏感性 :存储的查询是区分大小写的。例如,在一个方法中输入 “select value c …”,在另一个方法中输入 “SELECT VALUE c …”,它们不会被视为匹配的查询,这不仅会失去缓存查询的优势,还会因存储额外的查询而增加缓存大小。
  • 性能测试对比
    | 查询计划缓存状态 | 启用 | 禁用 |
    | — | — | — |
    | 实体 SQL 与对象服务 | 1.1 ms | 3.23 ms |
    | 实体 SQL 与 EntityClient | 4.1 ms | 6.38 ms |

从上述表格可以看出,启用缓存时查询时间明显少于未启用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值