首页 > 数据库 >SqlServer 删除的性能优化

SqlServer 删除的性能优化

时间:2023-10-08 20:44:51浏览次数:40  
标签:删除 SqlServer 性能 Tree ParentId 优化 Id

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

标签:删除,SqlServer,性能,Tree,ParentId,优化,Id
From: https://www.cnblogs.com/kongshu-612/p/17750089.html

相关文章

  • java中的mysql优化
    Java中的MySQL优化有许多方面可以考虑,以下是一些常见的优化技巧:使用索引:为频繁进行查询的列创建索引,可以大大提高查询效率。但是需要注意不要过度索引,否则可能会降低写操作的性能。优化SQL查询语句:合理编写SQL语句,避免不必要的复杂查询。可以使用EXPLAIN语句来分析查询执行计划,找出......
  • 【短道速滑十】非局部均值滤波的指令集优化和加速(针对5*5的搜索特例,可达到单核1080P灰
        非局部均值滤波(NonLocalMeans)作为三大最常提起来的去燥和滤波算法之一(双边滤波、非局部均值、BM3D),也是有着很多的论文作为研究和比较的对象,但是也是有着致命的缺点,速度慢,严重的影响了算法的应用范围。目前在已有的文献中尚未看到在不对算法的本质原理上做更改的情况......
  • ControlNet-trt优化总结3:使用multi-stream和cuda-graph构建并行流水线
    ControlNet-trt优化总结3:使用multi-stream和cuda-graph构建并行流水线上节谈到使用TRT-API来构建网络,在这一节中总结一些trick来提升模型的运行效率,这些trick在所有的trt优化中均可使用,主要有以下几点:使用cuda_graph减少kernel间的启动间隙使用Mutil-stream增加异步cuda_gra......
  • 动态规划——带权二分优化DP 学习笔记
    动态规划——带权二分优化DP学习笔记引入带权二分其实并不一定用于优化DP,也可能用于优化贪心等最优化的算法。带权二分也叫WQS二分,最初由王钦石在他的2012年国家集训队论文中提出。定义使用情况要解决一个最优化问题(求最大/最小值)有一个限制,一般是某个参数要求一......
  • java代码注释和空行删除,软著源码
    notepad++替换,结合正则表达式处理匹配//单行注释//.*匹配/**多行注释*/注意需要非贪婪模式,所以有一个?使用/\*{2}[\s\S]*?\*/匹配空行^\s*\n上面多行注释的匹配,需要非贪婪模式如果没有那个问号,将会把这一整块都匹配进去,第一块多行注释的头/**和最后一个多行注释......
  • 关于DATE_SUB的sql查询执行慢的优化
    背景:      因为订单表是分表的,需要每天定时从不同订单表里获取7天前到当前时间的数据。归档到一个表中进行统计分析之类的计算。因为每张表数据量比较大(千万级的数据),ORDER_CREATE_TIME是创建了索引的。ORDER_CREATE_TIME的type是datetime类型,通过ORDER_CREATE_TIM......
  • 包体积优化方案
    优势减少包体积,让用户在更快的速度下载使用应用,提高用户下载转化率。apk组成Android项目最终会编译成一个.apk后缀的文件,实际上它就是一个压缩包。它内部还有很多不同类型的文件,大致分为以下四类:代码相关:classes.dex,我们在项目中所编写的java文件,经过编译之后会生成一......
  • ES,浏览器开发者工具修改和删除数据
    一、修改数据二、删除数据 ......
  • [转]oracle listener.ora中PLSExtPro 和ExtProc的作用(过时组件,官方建议删除以避免漏
    默认安装时,会安装一个PL/SQL外部程序(ExtProc)条目在listener.ora中,是oracle为调用外部程序默认配置的监听,它的名字通常是ExtProc或PLSExtProc,但一般不会使用它,可以直接从listener.ora中将这项移除,因为对ExtProc已经有多种攻击手段了,在不使用外部程序时,oracle也是建议删除的。PLSEx......
  • pgtune pg 配置优化工具
    pgtune是一个web工具,可以基于一些最佳实践提供pgserver的配置,对于想快速进行pg数据库优化的是一个不错的工具使用简单,同时也提供了website可以方便使用参考资料https://github.com/le0pard/pgtunehttps://pgtune.leopard.in.ua/......