将现有表上的 newid() 更改为 newsequentialid()

2024-01-17

目前,我们有许多表在主键上使用 newid() 。这导致了大量的碎片。所以我想更改该列以使用 newsequentialid() 代替。

我认为现有数据仍将保持相当分散,但新数据的分散程度将减少。这意味着我也许应该等待一段时间,然后再将 PK 索引从非聚集更改为聚集。

我的问题是,有人有这样做的经验吗?有什么是我忽略的、应该注意的吗?


您可能会考虑使用梳子导轨 http://www.informit.com/articles/article.aspx?p=25862,与 newsequentialid 相反。

cast(
    cast(NewID() as binary(10)) +
    cast(GetDate() as binary(6))
as uniqueidentifier)

梳状引导是纯随机引导与当前日期时间的非随机性的组合,因此连续生成的梳状引导彼此靠近并且通常按升序排列。与 newsequentialid 相比,Comb guid 具有多种优势,包括它们不是黑匣子、您可以在默认约束之外使用此公式,以及可以在 SQL Server 之外使用此公式。

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

将现有表上的 newid() 更改为 newsequentialid() 的相关文章

  • SQL - != 'NULL' 的解释

    我的SSMS代码如下 Select top 50 From FilteredContact Where statuscode 1 and emailaddress1 NULL and telephone1 NULL and address1
  • MS ACCESS 计数/求和行数,不重复

    我有下表 我需要计算总行数而不包括任何重复记录 CustomerID test1 test1 test2 test3 test4 test4 如您所见 总行数为 6 但有两个 test1 和两个 test4 我希望查询返回 4 IOW 我想
  • 索引数量越少意味着插入、更新和删除速度更快? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • POINT 列上的 MySQL INSERT/UPDATE

    我正在尝试用我国家的地理位置填充我的数据库 我的一张表有 4 个字段 ID PK 纬度 经度和地理点 EDIT SCDBs Punto Geografico SET lat 18 469692 SET lon 63 93212 SET g
  • 如何在mysql中选择具有相同值集的列?

    我的桌子是 patients pid name city disease did dname has disease did pid 我想列出具有相同疾病组的患者 pid 和 did 分别是患者和疾病表中的主键 并且是 has diseas
  • Postgresql 一张表的多个计数

    我想从表中的两列中获得这些列中值的统一计数 例如 两列是 表 报告 type place one home two school three work four cafe five friends six mall one work one
  • 加密数据库字段的好方法?

    我被要求加密数据库中的各种数据库字段 问题是这些字段在读取后需要解密 我在用着Django and SQL Server 2005 有什么好主意吗 See 在 SQL Server 2005 数据库中使用对称加密 https web arc
  • SQL 2008全文索引填充延迟

    我的经理说 在基础表数据更改后 可能需要一段时间才能更新全文搜索索引 例如 如果我有一张桌子Products有一个柱子Description我更新了该描述 然后我可能需要一些时间才能搜索该新描述 真的吗 这需要多长时间 SQL 2008 对
  • 检查两个“select”是否相等

    有没有办法检查两个 非平凡的 选择是否等效 最初我希望两个选择之间有形式上的等价 但是答案在证明 sql 查询等价性 https stackoverflow com questions 56895 proving sql query equ
  • 数据库字段中的逗号分隔值

    我有一个产品表 该表中的每一行对应一个产品 并由唯一的 ID 标识 现在 每个产品都可以有多个与该产品关联的 代码 例如 Id Code 0001 IN ON ME OH 0002 ON VI AC ZO 0003 QA PS OO ME
  • 如何通过 SQL 表关联 SQL 中的实体

    我是数据库设计的初学者 我需要为项目创建数据库 我可以用面向对象的术语解释我想要做什么 值得庆幸的是 数据库专家会很友善地向我解释如何在数据库方面处理这个问题 我想创建一个与位置实体 州 城市 有关系的用户 ID 名称 实体 所以在编程语言
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • 提高第一个查询的性能

    如果执行以下数据库 postgres 查询 则第二次调用要快得多 我猜第一个查询很慢 因为操作系统 linux 需要从磁盘获取数据 第二个查询受益于文件系统级别和 postgres 中的缓存 有没有一种方法可以优化数据库以快速获得结果fir
  • 使用子查询 select 创建新表

    我试图从子查询选择创建一个新表 但出现以下错误 附近的语法不正确 SELECT INTO foo FROM SELECT DATEPART MONTH a InvoiceDate as CalMonth DATEPART YEAR a In
  • SELECT max(x) 返回 null;我怎样才能让它返回0?

    运行以下命令时如何返回 0 而不是 null SELECT MAX X AS MaxX FROM tbl WHERE XID 1 假设没有XID 1的行 or SELECT coalesce MAX X 0 AS MaxX FROM tbl
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作
  • 是否可以引用同一个表中的不同列?

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR

随机推荐

  • 防止 ASP.Net 中的重复回发 (C#)

    这里很简单 是否有一种干净的方法可以防止用户双击 Web 表单中的按钮 从而导致重复事件触发 例如 如果我有一个评论表单 用户输入 这是我的评论 并单击提交 评论将显示在下面 但是 如果他们双击 三击或只是在键盘上发疯 他们可以导致发布多个
  • LMDB 是否支持多个键到相同值的映射?

    是否可以将多个键映射到同一个值 如果没有 是否有解决此功能的方法 这是不可能的 我使用的一种解决方法是让第二个键上的值成为指向主键的指针 也就是第二个键的值is主键 特别是 我制作了一个辅助键表 或 lmdb 中的 命名数据库 其中所有va
  • RealmSwift 初始化器 - Xcode 修复它总是出错

    当我想为类提供初始化程序时 我无法让 Realm 工作 Xcode 不断地提示错误 我决定上传两个屏幕截图而不是代码片段 以便更容易看到错误 我遵循建议并最终得到这个 最后一个错误告诉 使用未声明的类型 RLMObjectSchema 我使
  • 使用 pandoc 生成带有 sans-serif 字体系列的 PDF

    我正在尝试使用 pandoc 从 Markdown 源生成 PDF 我希望输出仅使用无衬线字体 输入 Hello This is a test 命令行 pandoc o output pdf input md variable fontfa
  • 如果禁用 cookie 会发生什么?

    这是非常基本的问题 在 PHP 中 如果用户的浏览器禁用了 cookie 则无法同时使用服务器 cookie SESSION 和客户端 cookie COOKIE setcookie 还是只有后者被禁用 基本上你不能让用户登录或做任何需要会
  • 对于小开发团队的 HTML、CSS、Javascript 开发,您更喜欢哪种版本控制系统?

    哪种版本控制系统适合 4 名开发人员的 HTML CSS Javascript 开发 我们是 4 名开发人员 都在不同的国家 并且都有不同的操作系统 2 名开发人员拥有 Macbook 其中一台拥有 Windows 7 另一台拥有 Ubun
  • C++ 的自定义运行时类型系统/库

    在我目前正在制作的应用程序中 我有一个EventDispatcher与基础一起使用的类Event班级 调度程序不是模板化的 它适用于每个事件的运行时类型 这是为了允许脚本从基础继承Event班级并举办自己类型的活动 它也希望这个事件调度程序
  • Jetpack Compose 折叠工具栏

    我找不到关于此事的任何文件 是否有类似的内容CollapsingToolbar在撰写中 我发现的只是提及它here https developer android com jetpack compose gestures 但没有说明如何设置
  • 如何向 selenium chrome webdriver 添加多个扩展

    如何向 selenium chrome webdriver 添加多个扩展 我尝试使用逗号添加扩展名 但出现错误 chrome options add extension r C Users Administrator Desktop chr
  • Python:每三个单词分割字符串

    我已经搜索了一段时间 但似乎找不到这个小问题的答案 我有这段代码 应该在每三个单词后分割字符串 import re def splitTextToTriplet Text x re split S s 2 S Text return x p
  • 如何在 C 中通过 tcp 套接字构建协议标头和正文

    我正在写一个 tacacs 客户端 我正在尝试编写一个简单的数据包发送到服务器 我检查了RFC 页面 https datatracker ietf org doc html draft grant tacacs 02我看到协议需要在每个数据
  • 在 mamp 上运行 php [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我已经在我的 macbook pro 中安装了 MAMP 我想运行一个 php ini我能做些什么 Applications MAMP ht
  • Scala - 从 ISO-8859-1 转换为 UTF-8 会导致外来字符陌生

    这是我的问题 我有一个已转换为字节数组的输入流 但我不知道运行时输入流的字符集 我最初的想法是用 UTF 8 进行所有操作 但我发现编码为 ISO 8859 1 且包含外来字符的流存在奇怪的问题 那些疯狂的瑞典人 这是有问题的代码 IOUt
  • 配置项目“:app”时出现问题。在react-native中并给出一些字节代码作为错误

    当我运行react native应用程序时创建项目后 它给了我这个错误 FAILURE Build failed with an exception What went wrong A problem occurred configurin
  • 更改字符串的排序顺序,包括特殊字符(例如“_”)

    PHP 脚本按降序输出电子邮件地址列表 如下所示 email protected cdn cgi l email protection email protected cdn cgi l email protection email pro
  • 如何使用 Java / Scala 在内存中保存数据结构 G-wan

    我将 Gwan 视为运行 Scala 应用程序的更高性能方式 我们的用例涉及使用 Scala 数据结构在内存中保存大量数据 这比简单的哈希图要复杂一些 因此我希望避免尝试将其插入 Gwan 附带的 K V 存储中 此外 还有许多非常适合交互
  • VS 2013 看不到我的自定义签入策略

    我有通过 VSIX 部署的自定义签入策略 现在我尝试在 Visual Studio 2013 中使用它们 我做了什么 我在 VS 2013 中打开了我的策略 将 vsixmanifest 中的 安装目标 更改为 10 0 13 0 然后构建
  • Azure Devops yaml 部署管道显示不需要的消息/描述

    最近 我从传统的图形部署管道迁移到可重用的 yaml 构建和部署管道 yaml 构建管道正在交付在部署管道中使用的 多个 工件 运行部署管道 使用参数和设置 yaml 模板等时 我看到 当管道完成后 会有如下描述 由于部署管道与构建管道不在
  • 集成测试中访问内存dbcontext

    如何在集成测试中访问内存数据库的 dbcontext 我已经按照这里的代码进行操作 https learn microsoft com en us aspnet core test integration tests view aspnet
  • 将现有表上的 newid() 更改为 newsequentialid()

    目前 我们有许多表在主键上使用 newid 这导致了大量的碎片 所以我想更改该列以使用 newsequentialid 代替 我认为现有数据仍将保持相当分散 但新数据的分散程度将减少 这意味着我也许应该等待一段时间 然后再将 PK 索引从非