单行 INSERT 是原子的吗?例如。在有 1M 列的表上?

2023-12-21

单行 INSERT 是原子的(对于外部读取器)吗?想象一下它发生在一个有 1M 列的表上。

在执行单个INSERT语句(即“单行”类型),是否有可能同时发生的读取操作(可能使用“读取未提交”隔离级别)仅读取some值(列)?

我对 MS SQL Server 的行为特别感兴趣,尽管我认为这对于所有主要供应商来说都是相似的。

有关此事的官方文档链接的奖励积分。


只读取一些值?

是的,这可能会发生。 DML 是原子的,因为写入全部或全部保留,但并发读取可以以非常奇怪的方式观察部分写入。对于多行写入,这显然是可能的,但即使单行写入对于读者来说也不是原子的。

例如,您可能会发现一个非聚集索引的插入已完成,但另一个非聚集索引的插入尚未完成。在罕见的、人为的案例中,读者可以察觉到这一点。例如,如果你说:

select *
from T t1 with (index(1))
full outer join T t2 with (index(2)) on (someUniqueCondition)

您可以有效地获得两个索引之间的差异,该差异可以不为零。实现此演示不需要索引提示。

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

单行 INSERT 是原子的吗?例如。在有 1M 列的表上? 的相关文章

  • 错误 1364 (HY000):字段“MY_DATE”没有默认值

    create table MYTABLE MY DATE int NOT NULL AUTO INCREMENT NAME varchar 255 NOT NULL UNIQUE INSERT INTO MYTABLE NAME value
  • 尝试使用 PHP / Html 从注册表单将数据输入到 SQL 表中

    我尝试了很多不同的事情并进行了很多搜索但没有解决方案 我正在尝试使用 html 表单将数据提交到 sql 表 这是我的 register php 文件的代码 con mysqli connect localhost database nam
  • 触发器定义中的 DELETE 语句问题

    我创建了一个插入 更新触发器 旨在根据插入的数据更新不同表中的信息 触发器执行 或应该执行 的最后一件事是从目标表中删除所有数据 这些数据的条件在触发器的插入部分期间可能已更改 除了最后的之外 一切似乎都在触发DELETE陈述 它正在执行D
  • SQL查询获取列的精度值

    我需要一个 SQL 查询来获取某些列的精度值 我主要关心十进制类型列 并且我需要相同的精度值 我意识到在某些版本和数据库服务器供应商中可以这样做 如果您能列出其中的一些 那就太好了 对于 SQL 服务器 select precision f
  • 如何解决此错误:Py4JJavaError:调用 o70.showString 时出错?

    目前我正在开发 PySpark 和 DataFrame 我创建了一个数据框 from pyspark sql import import pandas as pd spark SparkSession builder appName Dat
  • Oracle数据库中的自增主键

    我想在 SQL Server 的列中实现标识或自动递增值 CREATE TABLE RollingStock Id NUMBER IDENTITY 1 1 Name Varchar2 80 NOT NULL 如何才能做到这一点 正如 Orb
  • SSRS报告不显示数据

    我刚刚创建了 SQL Server 2005 SSRS 报告 数据未显示在预览窗格中 数据集是根据字符串参数从存储过程正确填充的 我可以在数据窗格中执行它 在预览窗格中运行报表时 会显示正确的行数 但单元格的内容不包含任何数据 源数据集基于
  • 执行计划中是否考虑了功能?

    当查询在 SELECT 或 WHERE 子句中包含 PL SQL 函数 用户定义函数 时 如何生成执行计划 它是否也计算这些函数的成本并将其显示在执行计划中 或者这些函数只是被忽略 在此先感谢您的帮助 用户生成的函数在 SELECT 或 W
  • SQL CASE 语句

    我有以下查询 我想将它们放入 sql CASE 语句中 这样我只有一个查询 但我不知道该怎么做 有人可以帮助我吗 IF SELECT EtlLoadId FROM ssislogs audit processcontrol WHERE Su
  • 添加日期时间和时间

    服务器 SQL Server 2012 SP1 开发者版 Code declare datetime datetime 1900 01 01 00 00 00 000 declare time time 11 11 11 select da
  • 使用 START WITH 和 CONNECT BY PRIOR 将查询从 oracle 迁移到 postgresql

    我正在将一个进程从 oracle 迁移到 postgresql 并且在它们的转换方面遇到了另一个问题 我一直在研究如何迁移oracle查询 它有 START WITH 和 CONNECT BY PRIOR 我已经对此进行了记录 我认为最简单
  • 如何从 tarantool 中选择有限数量的记录,就像 SQL 中的 SELECT LIMIT 一样?

    我想在 Tarantool 空间上执行选择 使用过滤和限制结果 就像我可以使用简单的 SQL 查询一样 SELECT FROM users WHERE age gt 33 LIMIT 1 我怎样才能做到这一点 可以使用 Lua 和 SQL
  • 在 SQL 中查询行序列

    假设我正在存储events有关联users如下表 其中dt代表事件的时间戳 dt user event 1 1 A 2 1 D 3 1 B 4 1 C 5 1 B 6 2 B 7 2 B 8 2 A 9 2 A 10 2 C 这样我们就可以
  • 查找缺失值

    我有一个表 有 2 个重要的列 DocEntry WebId 样本数据就像 DocEntry WebId 1 S001 2 S002 3 S003 4 S005 现在我们可以注意到 在 WebId 列中 S004 丢失了 我们如何通过查询找
  • 有向图 SQL

    我有以下数据集 它表示有向图中的节点 CREATE TABLE nodes NODE FROM VARCHAR2 10 NODE TO VARCHAR2 10 INSERT INTO nodes VALUES GT TG INSERT IN
  • MySQL 命令输出在命令行客户端中太宽[重复]

    这个问题在这里已经有答案了 我在用mysql终端模拟器中的命令行客户端lxterminal在Ubuntu中 当我运行以下命令时 mysql gt select from routines where routine name simplep
  • 从 Visual Studio 调试 SQL Server 2005 中的存储过程?

    我在这里和其他地方看到很多令人沮丧的问题 但没有明确的答案 我试图让存储过程进行调试 但没有成功 客户端 VS2005或VS2008 两者都不起作用 当我从存储过程上下文菜单中选择 步入存储过程 时 我在调试窗口中看到 已被用户取消 这就是
  • 我应该如何优化 .net 代码中对一个简单存储过程的多次调用?

    我有一个非常简单的存储过程 create procedure spFoo v varchar 50 as insert into tbFoo select v 我有 50 个值要插入到 tbFoo 中 这意味着在我的 c 代码中我调用 sp
  • 找出会话的默认 SQL Server 架构

    我需要知道正在执行某些 DDL 的 SQL 脚本中当前的默认架构是什么 我不需要设置架构 但我确实需要将对它的引用 名称或 ID 放入变量中 该脚本可能以 Windows 登录身份运行 因此以下内容还不够 SELECT name defau
  • 根据 SQL 查询的集合生成成员的“散点图”结果

    我有一个staff包含工作人员的数据库表 其中user no and user name列 我还有一个 department 包含员工可以加入的部门的表 其中dept no and dept name作为列 因为员工可以是多个部门的成员 所

随机推荐

  • sbt - 仅在发布期间排除某些依赖项

    我正在构建一个实用程序库 可以与 Apache Spark 1 0 1 1 1 2 版本之一一起使用 由于它们都是二进制向后兼容的 我想让用户决定使用哪个 Spark 版本 通过手动添加spark core将首选版本作为我的库的依赖项 并且
  • MATLAB 是否执行公共子表达式消除?

    MATLAB 的优化器是否对 MATLAB 代码执行公共子表达式消除 例如 if max val gt minVal max val lt maxVal maxVal max val end 多久一次max val 在那里评价 将中间值存储
  • AppFabric 安装错误代码 1603

    我意识到这个问题已经被问到 但迄今为止发布的所有解决方案尚未取得巨大成功 这是 3 个日志中的 2 个 我很可能在这里遗漏了一些东西 但非常感谢您的帮助 应用服务器设置 2013 05 20 18 14 31 Information Set
  • 如何使用计时器运行 php 脚本?

    我有 foreach 函数来打印学生姓名 names array Alex Brad Tom foreach names as name echo name br sleep 3 我如何打印每个名字 每 3 秒一次 后 echo name
  • 如何使用 bash 脚本安装包含变量的 bash 函数? [复制]

    这个问题在这里已经有答案了 我正在尝试创建一个 bash 脚本 该脚本允许我在多台计算机上安装相同的 bash 函数 此特定函数在备份目录中创建带有时间戳的文件副本 filebackup cp filebackup date Y m d H
  • ASP.NET MVC3 WebGrid 帮助程序和模型元数据

    我正在尝试使用 ASP NET MVC 3 中的 WebGrid html 帮助程序根据 ModelMetadata 中找到的信息自动生成列 例如 接受对象列表的视图中的代码将是 var grid new WebGrid Model gri
  • 两个列表的交集,在第一个列表中保留重复项

    我有两个平面列表 其中之一包含重复值 例如 array1 1 4 4 7 10 10 10 15 16 17 18 20 array2 4 6 7 8 9 10 我需要在 array1 中查找也在 array2 中的值 将重复项保留在 ar
  • 在 ActionScript 3 中将一系列函数“链接”在一起

    我正在调用一个函数 并在该函数返回一些数据时添加一个侦听器 当数据返回时我需要调用另一个函数等等 是否有一种简单的方法将这些函数 链接 在一起 以便第一个函数触发 等待侦听器 然后触发第二个函数 为其创建侦听器 依此类推 直到最后一个函数调
  • SSRS 传递报告参数

    我度过了艰难的一天 试图解决这个问题的根本问题 我有一个用户输入信息的表单 该信息通过 URL 传递到 SSRS 我收到错误 An error has occurred during report processing rsProcessi
  • UITextField 中的 UITextPosition

    有什么方法可以让我通过文本字段的 UITextRange 对象获取 UITextField 当前的插入符位置吗 UITextField 返回的 UITextRange 有什么用吗 UITextPosition 的公共接口没有任何可见成员 昨
  • 基于 Restful 的视频流

    使用 spring boot 我想制作基于 RESTful 的视频播放器 我的文件浏览器中有 mp4 扩展名的视频 如何通过创建休息端点在前端提供这些视频 我已经尝试过这个方法 http shazsterblog blogspot com
  • 如何在 Three.js 中更改脸部颜色

    我正在尝试更改网格单个面上的颜色 这是在 WebGL 上下文中 我可以改变整个网格的颜色 但不能改变单个面的颜色 相关代码如下 Updated Per Lee var camera this camera var projector new
  • 如何编写语法类似Python缩进的语言?

    我正在使用类似于 Python 的内置语言编写一个工具 我想让缩进在语法中有意义 以便行开头的制表符和空格代表命令的嵌套 做这个的最好方式是什么 我之前写过递归下降和有限自动机解析器 目前的CPython http en wikipedia
  • 仅对最近修改的文件运行 grunt-contrib-jshint

    我们正在一个非常大的网站上重构代码 我想对任何发生更改的文件强制执行 linting 但忽略其余文件 因为其中许多文件最终会被删除 所以整理它们是浪费时间 我想要一个 grunt 任务来检查文件的修改日期是否比其创建 从存储库获取 日期更新
  • Vue.js 在 setTimeout 后滚动到新页面路由的顶部

    当立即滚动到新路线的顶部时 我的页面转换效果不佳 我想等待 100 毫秒 然后它会自动滚动到顶部 以下代码根本不会滚动 有没有办法做到这一点 export default new Router mode history routes pat
  • elasticsearch.js 客户端连接被拒绝:Access-Control-Allow-Origin 无法识别?

    我一直在尝试使用elasticsearch jquery min js ping 本地运行的elasticsearch 每次都会收到 无活动连接 错误 ETA 在 Chrome 中 我看到看起来相当低级别的 连接被拒绝 我正在 MacOS
  • 使用切片值的 Golang 字符串格式

    在这里 我尝试从包含字符串的切片为我的 API 创建查询字符串 ie where node name node1 node name node 2 import fmt strings func main nodes string node
  • 函数内部多处理 scipy 优化的奇怪行为

    这是一个运行良好的简单代码 即使函数 minimize 包装了 scipy optimize minimize 它也不会抱怨酸洗 import numpy as np from scipy import optimize from mult
  • 重新使用对象的存储而不首先销毁它是UB吗?

    给定非 POD 类型T auto p new T new p T delete p 这是UB吧 显然我并没有直接泄漏为其分配的内存T 如果它没有间接成员 那么我根本不会泄漏任何东西 但它从未被破坏 在我看来 这似乎是自发毁灭由有感知的猫类生
  • 单行 INSERT 是原子的吗?例如。在有 1M 列的表上?

    单行 INSERT 是原子的 对于外部读取器 吗 想象一下它发生在一个有 1M 列的表上 在执行单个INSERT语句 即 单行 类型 是否有可能同时发生的读取操作 可能使用 读取未提交 隔离级别 仅读取some值 列 我对 MS SQL S