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
posted @   kongshu  阅读(107)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 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
点击右上角即可分享
微信分享提示