SQL删除性能

2024-02-01

delete from a A where a.ID = 132.

A表包含大约5000条记录,A.ID是A表的主键。但是删除需要很长时间。有时它也会超时。该表包含三个索引,并由三个外键引用。谁能解释一下为什么即使我们是基于主键删除,它仍然需要很长时间。请告诉我一些方法来优化这个问题......?


可能的原因:

1)级联删除操作

2) 触发器

3) 主键列的类型不是整数,从而强制对每个 pk 值进行类型转换以进行比较。这需要全表扫描。

4)您的查询是否真的像您在问题中发布的那样以点结尾?如果是这样,该数字可能会被认为是浮点数而不是整数,从而导致类似于 3) 的类型转换

5) 您的删除查询正在等待其他一些慢查询来释放锁

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL删除性能 的相关文章

  • 支持 >65k 行的 Excel VBA SQL 驱动程序

    在 Excel 2010 中通过 VBA 查询 Excel 数据时 我遇到一个有趣的问题 我正在使用这些驱动程序连接到 xls 或 xls x m 文件 Sub OpenCon ByRef theConn As Connection ByV
  • Microsoft SQL:CASE WHEN 与 ISNULL/NULLIF

    除了可读性之外 在防止 SQL 中的除以 0 错误时 使用 CASE WHEN 语句与 ISNULL NULLIF 相比还有什么显着的好处吗 CASE WHEN BeginningQuantity BAdjustedQuantity 0 T
  • 如何获得一列中的最大数量?

    我一直在尝试找到一个如何获取列中最大数字的示例 我想做的是 找到 TABLE A 中的最大列数 点 列 例如 我想输出这个 MAX 数字
  • Ruby ActiveRecord 和 sql 元组支持

    ActiveRecord 是否支持 where 子句中的元组 假设底层数据库支持 结果 where 子句看起来像这样 where name address in John 123 Main St I tried Person where n
  • 如何使用一个命令删除 SQL 数据库中的所有索引?

    那么 如何通过一条命令删除 SQL 数据库中的所有索引呢 我有这个命令可以获取所有 20 个左右的 drop 语句 但是如何从这个 结果集 运行所有这些 drop 语句呢 select from vw drop idnex 给我相同列表的另
  • 如何在 SQL Server 中不循环更新列?

    出于性能角度的考虑 我只需要删除循环并使用一些联接或其他解决方案来更新 Result 表中的数据并获得循环返回的相同结果 标量函数 CREATE FUNCTION MultiplyerScl a INT b INT RETURNS INT
  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • 使用用户定义函数 MySql 时出错

    您好 请帮我解决这个问题 提前致谢 我在数据库中定义了这些函数 CREATE FUNCTION levenshtein s1 VARCHAR 255 s2 VARCHAR 255 RETURNS INT DETERMINISTIC BEGI
  • 需要在 SQL Server 中透视字符串值

    我有一个包含值的表 描述为 Occupation String Name String Developer A Developer B Designer X Coder Y Coder Z 我需要数据透视格式的值 Designer Deve
  • 通过 ASP.NET 网站管理员工具获得 Asp.Net 会员资格

    我使用 aspnet regsql 创建了一个数据库 该数据库是在 sql server 2008 中创建的 而不是在我的项目中的数据文件夹中创建的 我需要手动将其移动到该文件夹 吗 接下来 在网站管理工具中 我转到提供商部分并单击 测试
  • 如何向 SQL 连接字符串添加自定义属性?

    我想在 SqlServer 连接字符串中添加一些自定义属性 如下所示 Integrated Security SSPI Extended Properties SomeAttr SomeValue Persist Security Info
  • 在 plpgsql 函数中使用 quote_ident()

    我是创建 plpgsql 函数的新手 我需要一些有关在函数内部执行的动态命令上使用 quote ident 甚至 quote literal 的说明 希望有人能给我一个关于它们如何在函数内部工作的具体解释 TIA 这是一个例子 EXECUT
  • 如何将所有父母的父母作为循环引用表中子对象的列?

    我有一个表格 其中有类似的列 entityID entityName parentID 我如何编写一个查询来返回实体的所有父级级别 以返回类似的内容 childentityname parentlevel1name parentlevel2
  • MYSQL:如何在同一查询中联接两个表,两次引用同一个表

    我有两张桌子 我正在尝试将下面的示例两个表与表 1 引用表 2 两次结合起来 例如 如果我查看表 1 组 2 和成员 7 它应该查找表 2 中的 ID 并给出输出 Group Members Name Name 2 7 Blue Dog T
  • 无法将数据加载到 mvc 4 中的 jTable 中

    好的 我第一次尝试 jTable 我可以加载表 但这对我没有什么好处 因为它不会加载我的任何数据 当我调试程序时 我想要的表中的所有行都存储在我的列表中 因此我很困惑为什么当我运行应用程序时会弹出一个对话框 显示 与服务器通信时发生错误 H
  • hive - 在值范围之间将一行拆分为多行

    我在下面有一张表 想按从开始列到结束列的范围拆分行 即 id 和 value 应该对开始和结束之间的每个值重复 包括两者 id value start end 1 5 1 4 2 8 5 9 所需输出 id value current
  • Oracle SQL PLS-00049:错误的绑定变量

    我收到此错误 这似乎是列拼写问题 然而 我 99 确信我拼写的所有内容都是正确的 但我看不出有任何理由会出现我所犯的错误 这是来源 CREATE OR REPLACE TRIGGER update qoh trigger AFTER INS
  • SQL存储过程执行时间差异

    我在 win form 应用程序中遇到奇怪的问题 我正在调用一个存储过程 并且执行大约需要 6 秒 此存储过程接受多个参数 包括一个输出参数 从应用程序级别我使用 Dim dt1 DateTime Now cmd ExecuteNonQue
  • SQL Server:如果存在会大大减慢查询速度

    正在使用SQL Server 2012 我找到了一些关于查询优化的主题 并将 EXISTS 与 COUNT 进行比较 但我找不到这个确切的问题 我有一个看起来像这样的查询 select from tblAccount as acc join
  • 替换字符串中的多个字符,而不使用任何嵌套替换函数

    我的表中存储了一个方程 我一次获取一个方程 并希望将所有运算符替换为任何其他字符 输入字符串 N 100 6858 6858 N 100 0 2 N 35 运算符或模式 替换字符 输出字符串 N 100 6858 6858 N 100 0

随机推荐

  • 重置到 Git 中的第一个提交?

    有没有什么相当于 root标志在rebase命令为reset命令 git reset root 假设我想重置到当前分支中的第一个提交 我是否必须手动挖掘历史记录并找到该提交的哈希值 或者是否有一种简单的方法来重置到第一个可用的提交 根提交
  • Xcode 是否有更好的更新系统?

    Xcode 4 0 1 几天前发布了 这意味着我再次下载 4 5 GB 的野兽来更新 有谁知道苹果是否计划推出更好的更新系统 这些天我在等待洪流 不像下载到 80 却失去连接那么令人沮丧
  • Laravel Composer 安装出现错误“您的锁定文件不包含兼容的软件包集,请运行 Composer update”

    我编写 Laravel 代码已经有一段时间了 目前 我尝试从 github 克隆一个项目并在本地进行编辑 我在项目目录中安装了 Composer 但未包含供应商文件夹 我尝试运行composer install但我给了我这个错误 Your
  • gitlab - 使用 access_token 推送到存储库

    我实现了 oauth2 Web 流程 以便从我的应用程序的用户获取 access token 使用 access token 我想执行以下操作 获取用户信息 为该用户创建一个存储库 将代码推送到此存储库 使用 git push 我已经成功获
  • 变量中缀到前缀到后缀

    我在互联网上搜索了一个很好的实现 将变量表达式从中缀表示法转换为前缀和后缀 而不是数字表达式 我所做的所有搜索都没有成功 基本上我想看看 PHP 中是否有任何实现 这样我可以修改它以支持更多运算符 而不仅仅是 例如转换 a b c p c
  • java泛型通配符

    我对 Java 泛型类型中通配符的使用有疑问 它们之间的基本区别是什么 List
  • openCV 滤波器图像 - 用局部最大值替换内核

    关于我的问题的一些详细信息 我正在尝试在 openCV 中实现角点检测器 另一种内置算法 Canny Harris 等 我有一个充满响应值的矩阵 最大响应值为 检测到角点的最大概率为 我有一个问题 在一个点的附近检测到很少的角 但只有一个
  • 将所有列表值合并到地图中[重复]

    这个问题在这里已经有答案了 我想将地图转换为 Map
  • 注册表部分的脚本功能

    我们的软件支持一系列 70 文件关联 用户可以选择与我们的应用程序关联 直接在Registry安装程序部分并使用标志来控制卸载期间的行为以及Check标志来控制是否应将其写入注册表 用户可以通过自定义页面控制要设置的关联CheckListB
  • 如何解决Python中稀疏矩阵的“NaN或无穷大”问题?

    我对 python 完全陌生 我使用了一些在网上找到的代码 并尝试对其进行处理 因此 我正在创建一个文本文档矩阵 并且想在训练逻辑回归模型之前添加一些额外的功能 虽然我已经用 R 检查了我的数据并且没有收到错误 但是当我运行逻辑回归时 我收
  • Gstreamer 不会下沉到命名管道

    当 gst launch 管道的接收器是命名管道与普通文件时 我会得到不同的行为 我有一个 gst launch 管道 它在 OMAP 嵌入式 linux 板上显示来自摄像机的视频 并通过 Tee 以 avi 形式提供视频 gst laun
  • 如何在当前命名空间中获取Python交互式控制台?

    我想让我的 Python 代码在运行代码的过程中使用 code interact 之类的东西启动一个 Python 交互式控制台 REPL 但是 code interact 启动的控制台看不到当前命名空间中的变量 我该怎么做 mystrin
  • Python 中 case/switch 语句的等效项是什么? [复制]

    这个问题在这里已经有答案了 Python 是否有等效的switch陈述 Python 3 10 及以上版本 在 Python 3 10 中 他们引入了模式匹配 示例来自Python 文档 https docs python org 3 10
  • avro 类型的 createDataFrame 中的无限递归

    在此示例中 我从 createDataFrame 调用内部收到 StackOverflowError 它起源于涉及 java 类型推断的 scala 代码 该代码在无限循环中调用自身 final EventParser parser new
  • ggplot日期刻度向前移动一个月

    我确信这是一个简单的问题 但我无法从其他帖子中找到解决方案 如果我运行这个 test lt data frame dates as Date c 2016 10 31 2016 11 30 2016 12 31 2017 01 31 val
  • Maven忽略maven-frontend-plugin,没有错误

  • 构建无服务层的企业应用

    有很多教程教我们直接使用数据库来使用一些 ORM 但在现实生活中 我不记得有一个直接使用数据库而不是服务的大项目 所以这些教程的数量对我来说似乎很奇怪 直接连接的应用程序在数据库和应用程序之间的数据传输速度方面具有真正的优势 并且它们没有由
  • 多生产者多消费者多线程Java

    我正在尝试生产者 消费者问题的多个生产者 多个消费者用例 我使用 BlockingQueue 在多个生产者 消费者之间共享公共队列 下面是我的代码 Producer import java util concurrent BlockingQ
  • 构建GCC:bootstrap有哪些优点和缺点?

    我了解引导编译器构建的作用 但我不了解普通用户的优点和缺点 我认为对于 GCC 维护者来说是有价值的 配置GCC时 有两个选项 enable bootstrap and disable bootstrap 据我了解 对于普通编译器构建 en
  • SQL删除性能

    delete from a A where a ID 132 A表包含大约5000条记录 A ID是A表的主键 但是删除需要很长时间 有时它也会超时 该表包含三个索引 并由三个外键引用 谁能解释一下为什么即使我们是基于主键删除 它仍然需要很