数据访问性能优化全解析
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 |
从上述表格可以看出,启用缓存时查询时间明显少于未启用
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



