(实战)WebApi第9讲:EFCore性能优化(IQueryable延迟查询、取消跟踪机制)
一、例子是第8讲的四、6(EFCore的静态化处理 ):分析ToList()

ToList()在下图绿色框内。

二、在没有最终取数据的时候,使用 IQueryable<T> 延迟执行查询
(1)在没有最终取数据的时候,不要使用ToList等方法,因为他们会直接读取数据库
First 和 Find 方法会立即执行查询并从数据库中读取数据,而 ToList 和其他类似的方法(如 ToArray、Count 等)也会立即执行查询,但它们返回的是一个集合。
(2)IQueryable<T> 延迟查询的原理、使用方法、作用
1>原理
1)IQueryable<T>是一个泛型接口,它允许你构建查询但不立即执行它。
2)查询的实际执行会在你迭代 IQueryable 对象(如通过 ToList、First 等方法)或访问某些属性(如 Count)时发生。
2>使用方法
1)使用.where,一直在拼接sql语句,并没有执行。(因为.where返回的类型也是IQueryable)
2)在最终取数据的时候,使用ToList等这些方法执行sql语句。

3)举例

3>作用:节省开销,能更有效地管理数据库访问。
(3)如何在数据库中查看ToList等方法执行的sql语句?【体验延迟发送数据】
1>打开数据库监听工具



2>在VS中使用ToList()等方法读取数据库:会在数据库中直接执行sql语句


2>在VS中使用IQueryable<T> 延迟执行查询,打上断点查看语句执行过程
1)使用.where,一直是在拼接sql语句,并没有执行(因为.where返回的类型也是IQueryable)



2>到ToList()时,数据库内执行sql语句



二、跟踪机制
1、如何修改数据库里的数据?【推荐】——Update()和SaveChanges()
m 是一个代表集合 jobs 中每个元素的临时变量(或称为范围变量)。这个变量 m 用于在 Single 方法的条件表达式中引用集合中的每个元素。

2、跟踪机制:在实体查询之后,上下文会自动的跟踪实体。
举例:在上述二、1、进行完后,注释掉.Update(),再次运行仍然能修改数据库里的数据

3、提高EFCore查询效率:取消跟踪机制
1>为什么要取消?:对于有些数据只需要查询,不需要修改。那么此时跟踪机制会增加系统的开销,降低系统性能。
1)如下图,本意是只需要返回job,不需要它做任何的操作。
2)但是由于跟踪机制,系统会自动追加一个自动更新的快照,去追踪job。
3)所以如果按照1)的本意【即不需要它做任何的操作(不需要更新等)】,那么系统的自动跟踪就白做了

2>如何取消跟踪机制?
1)全局取消

2)局部取消

相关文章:
(实战)WebApi第9讲:EFCore性能优化(IQueryable延迟查询、取消跟踪机制)
一、例子是第8讲的四、6(EFCore的静态化处理 ):分析ToList() ToList()在下图绿色框内。 二、在没有最终取数据的时候,使用 IQueryable<T> 延迟执行查询 (1)在没有最终取数据的时候,不要使…...
Java实现pdf转图片
第一步 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.32</version> <!-- 请检查最新版本 --> </dependency> 第二步 package com.example.demo.file.pdf;import or…...
健身房管理新纪元:SpringBoot技术应用
4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…...
Java之字符串分割转换List
Java之字符串分割转换List 字符串分割成数组然后转换成List有多种方式,以下是每种方式的示例,推荐Java8的新特性Stream。 使用Java8的新特性Stream API String str "aaa,bbb,ccc"; // 使用Arrays.stream() List<String> list1 …...
RabbitMQ如何保证发送的消息可靠(RabbitMQ的Confirm模式和2.Return模式)
RabbitMQ如何保证发送的消息可靠(RabbitMQ的Confirm模式和2.Return模式) 1、RabbitMQ消息Confirm模式(保证从生产者到交换机的消息可靠)1.1、Confirm模式简介1.2、具体代码实现1.2.1、application.yml 开启确认模式1.2.2、生产者方…...
适配器模式:类适配器与对象适配器
适配器模式是一种结构性设计模式,旨在将一个接口转换成客户端所期望的另一种接口。它通常用于解决由于接口不兼容而导致的类之间的通信问题。适配器模式主要有两种实现方式:类适配器和对象适配器。下面,我们将详细探讨这两种方式的优缺点及适…...
volatile原理
volatile原理 volatile的底层实现原理是内存屏障,Memory Barrier(Memory Fence) 对volatile变量的写指令后会加入写屏障 对volatile变量的读指令前会加入读屏障 如何保证可见性 写屏障保证在该屏障之前的,对共享变量的改动,都同步到主存当中 public void actor2(I_Resu…...
【AI神器】SD(Stable Diffusion)一键安装包
是否还在无法使用Stable Diffusion 而烦恼,今天就给大家带来sd的私有化部署,一键安装包 https://pan.quark.cn/s/c16aa752ac6a 当然对电脑配置略微有些要求: 首先,本地安装对电脑配置有一些基本要求, 本地电脑安装…...
lanqiaoOJ 1112:小王子双链表 ← STL list
【题目来源】https://www.lanqiao.cn/problems/1112/learning/【题目描述】 小王子有一天迷上了排队的游戏,桌子上有标号为 1-10 的 10 个玩具,现在小王子将他们排成一列,可小王子还是太小了,他不确定他到底想把那个玩具摆在哪里&…...
C#WPF之快速理解MVVM模式
MVVM是一种设计模式,特别适用于WPF等XAML-based的应用程序开发。MVVM模式主要包含三个部分:Model(模型)、View(视图)和ViewModel(视图模型)。 Model(模型)&a…...
微积分[1]|微积分的底层逻辑——解析几何、不等式与极限(含博主推荐的数理阅读教材共计21本书籍)
原创首发于CSDN,禁止转载,谢谢! 文章目录 微积分的底层逻辑探究一篇网络文章《数学分析的核心——不等式》高中数学与大学数学的脱节|脱节的实质含义|高中与大学的衔接数理书籍推荐 我个人所认为的数学分析的根基更新时…...
1-磁盘建立空闲分区
学习目标: 掌握磁盘分区的基本知识和操作技能,能够独立创建和管理磁盘空闲分区,以优化存储空间和提高系统性能,为后续的系统安装和数据管理打下基础。 学习内容: 1 选择一个适合的磁盘分区软件。推荐DiskGenius、Par…...
使用SearXNG-搭建个人搜索引擎(附国内可用Docker镜像源)
介绍 SearXNG是聚合了七十多种搜索服务的开源搜索工具。我们可以匿名浏览页面,不会被记录和追踪。作为开发者,SearXNG也提供了清晰的API接口以及完整的开发文档。 部署 我们可以很方便地使用Docker和Docker compose部署SearXNG。下面给出Docker部署Se…...
InnoDB 存储引擎<五>undo log, redo log,以及双写缓冲区
目录 撤销⽇志 - Undo Log 双写缓冲区 - Doublewrite Buffer 重做⽇志 - Redo Log 本篇是继承自上篇InnoDB存储引擎的磁盘文件 上篇链接:InnoDB 存储引擎<四>磁盘文件一 撤销⽇志 - Undo Log 1.什么是撤销⽇志? 解答问题&a…...
Find My运动耳机|苹果Find My技术与耳机结合,智能防丢,全球定位
运动耳机是为运动时候佩带的耳机,而是一种区别于一般耳机的能稳定固定在佩戴部位的耳机,该种耳机不会因为身体运动而使耳机从耳朵里掉落,普遍带有防滴溅、轻便等特性,透气性能较好,属于开放式耳机。 在智能化加持下&…...
书生大模型实战营Linux+InternStudio 关卡任务
一、端口映射 使用以下命令进行端口映射 ssh -p {YOUR_PORT} rootssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyCheckingno 命令解释: -p 37367:是指定 SSH 连接的端口为 37367。rootssh.intern-ai.org.cn:表示要以…...
研究实锤:别让大模型「想」太多,OpenAI o1准确率竟下降36.3%
思维链(CoT)已被证明可以在许多任务(如多步骤推理)上显著提升大模型的性能。然而,在哪些情况下,CoT 会系统性地降低大模型的性能,这仍然是一个有待进一步讨论的问题。 如今,来自普林…...
C++游戏开发
C游戏开发概述 C 是游戏开发中的主要编程语言之一,因其性能、控制和广泛的生态系统而受到开发者的青睐。随着游戏行业的迅速发展,C 被用来构建许多成功的游戏和游戏引擎。本文将深入探讨 C 在游戏开发中的应用,包括基础概念、技术栈、示例代…...
ChatGPT中的RAG;大模型微调;通过正确的提问和回答数据进行问答系统的微调;
目录 ChatGPT中的RAG 1.检索器: 2.生成器: 3.结合使用: 大模型微调 通过正确的提问和回答数据进行问答系统的微调 ChatGPT中的RAG 在ChatGPT中,RAG(Retrieval-Augmented Generation)是一种结合了检索与生成的技术,旨在提高模型的回答质量和准确性。 RAG模型通常由两个…...
6款IntelliJ IDEA插件,让Spring和Java开发如虎添翼
文章目录 1、SonarLint2、JRebel for IntelliJ3、SwaggerHub插件4、Lombok插件5、RestfulTool插件6、 Json2Pojo插件7、结论 对于任何Spring Boot开发者来说,两个首要的目标是最大限度地提高工作效率和确保高质量代码。IntelliJ IDEA 是目前最广泛使用的集成开发环境…...
为什么越来越多公司坚持做背调?
很多中小企业都有一个误区:觉得背调“可有可无”、浪费时间、增加成本。但真实职场现状是:不做背调,才是企业最大的隐形成本。现在求职简历美化早已是常态,履历注水、项目造假、隐瞒纠纷、失信记录……肉眼面试根本看不出来。一次…...
Linux网络编程核心:Socket、字节序与TCP/UDP实战解析
1. 从零开始理解 Linux 网络编程:Socket、字节序与地址转换如果你刚开始接触 Linux 下的网络编程,看到一堆socket、bind、connect、htonl之类的函数,还有sockaddr_in这种结构体,可能会觉得头大。别担心,这种感觉我十几…...
Axure RP 9汉化后,这些高效原型设计技巧让你事半功倍
Axure RP 9汉化后高效原型设计实战指南 当你终于完成Axure RP 9的安装与汉化,面对熟悉的中文界面,是否感到一丝茫然?从"能用"到"善用"这个强大的原型设计工具,中间隔着一道效率的鸿沟。本文将带你跨越这道鸿沟…...
stm32f4 + Helix + Max98357播放mp3文件
stm32f4的SDIO + FataFs读取SD卡文件在前面的文章中已经实现,下面的配置和修改基于之前的配置实现 配置I2S 模式设置 参数设置 DMA配置 勾选 SPI2 global interrupt 以上都配置完Helix 解码出来的 PCM 数据就发给 MAX98357了 Helix解码库移植...
本地部署 Open Claw 保姆教程,同事还在手动整理文件,我已经让 AI 全搞定了
前言 2026 年开源圈热门的「数字员工」OpenClaw(昵称小龙虾),GitHub 星标超 28 万,凭「本地运行 零代码操作 自动干活」的优势圈粉无数!很多人误以为它是普通聊天 AI,实则是能真正操控电脑的自动化神器 …...
App抓包网络异常的三层防御机制与排查四步法
1. 这不是网络问题,是App在主动拦截你“App 抓包提示网络异常”——这句话我去年在三个不同客户的现场都听过。第一次是在某电商App的测试环境里,测试同学说“Fiddler一开,登录就报‘网络连接失败’,关掉就一切正常”;…...
HarmonyOS万能卡片开发实战:游戏状态桌面实时展示与交互实现
1. 项目概述:当游戏遇见万能卡片最近在HarmonyOS 3.1上折腾一个挺有意思的东西:把游戏的关键信息,比如角色状态、资源数量、离线收益,甚至是一键快捷操作,直接做成一个“万能卡片”放在桌面上。这可不是简单的应用图标…...
OpenAI 与 Anthropic 财务大比拼:一家亏损求上市,一家盈利逆袭在望!
57亿 vs 48亿5月中旬,两家AI巨头同时亮出底牌,OpenAI秘密提交IPO申请,Anthropic拿出首个盈利季度财务预测。OpenAI第一季度营收57亿美元,每赚1美元亏1.22美元;Anthropic同期营收48亿美元,落后近10亿&#x…...
2026 谷歌 GEO 已成流量主战场,不懂 AI 搜索直接掉队
📉 三个信号同时出现,意味着一个时代结束了:① 你的Google/百度自然搜索流量,连续两个季度下滑超过15%② 你精心优化的"关键词"排名,依然带不来预期的转化③ 你的目标用户,开始在 ChatGPT、Perpl…...
红黑树完全指南:从五条性质到完整插入删除实现
引言在前面的树系列中,我们学习了二叉搜索树(BST)和 AVL 树。AVL 树通过严格的平衡条件(|BF| ≤ 1)保证 O(log n) 的性能,但代价是删除操作可能触发 O(log n) 次旋转。红黑树(Red-Black Tree&am…...
