SqlServer 删除的性能优化
SqlServer 删除的性能优化
最近遇到个SqlServer 删除性能的问题。假设我们有如下的表定义
Create Table Tree
(
Id INT,
Name NVARCHAR(MAX),
ParentId INT,
PRIMARY KEY (Id),
FOREIGN KEY (ParentId) REFERENCES Tree(Id)
)
当我们Tree 表的数据量比较大的时候,我们删除其中的某些记录时,会有性能问题。原因是由于这个FK,每次删除的时候都会去扫描整个表,确保依赖删除项的记录也得删除掉。
解决办法
- 移除这个FK 的定义
- 创建一个Index 包含这个ParentId
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2021-10-08 Angular CD Part2
2021-10-08 Angular CD Part1