SQL Server:索引重建和索引重组有什么区别?

2024-04-23

指数重建和指数重组有什么区别?


思考一下索引是如何实现的。它通常是某种树,例如 B+ 树或 B- 树。索引本身是通过查看数据中的键并构建树来创建的,以便可以有效地搜索表。

当你改组索引,您遍历现有索引,清理已删除记录的块等。这could当您进行删除时,就会完成(并且在某些数据库中),但这会带来一些性能损失。相反,您可以单独执行此操作,以便或多或少以批处理模式执行。

当你rebuild索引时,您删除现有的树并读取所有记录,直接从数据构建新的树。这为您提供了一个新的且有望优化的树may比重组表格的结果更好;如果树因某种原因被损坏,它还可以让你重新生成树。

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

SQL Server:索引重建和索引重组有什么区别? 的相关文章

  • 构建复杂 NSCompoundPredicate 的最佳方法是什么?

    我需要建立一个NSPredicate有很多数据 例如 在 SQL 中我会执行如下操作 SELECT FROM TRANSACTIONS WHERE CATEGORY IN categoryList AND LOCATION IN locat
  • 使用相同的 SqlConnection 对 SqlCommand.BeginExecuteNonQuery 进行多个并发调用

    我有一些可用的 C 代码 它使用 SqlConnection 创建临时表 例如 Foo 调用存储过程来填充这些临时表并将结果返回到 C 客户端 使用 C 对这些结果执行复杂的计算 并使用计算结果更新之前创建的临时表之一 由于整个过程中都会使
  • 如何从 T-SQL 中的“/”分隔字符串中获取几乎最后一个子字符串?

    如果我有一个由用 字符分隔的其他字符串 xxx xxx xxx xxxx 组成的字符串 如何使用 t sql 获取最后一个和几乎最后一个 最后一个之前的 部分 它可能应该是 charindex 和 right 的某种组合 declare s
  • 授予对视图的 SELECT 权限,但不授予对基础对象的 SELECT 权限

    我经常读到 视图的目的之一是安全性 允许某些用户访问基础表 而其他用户仅访问派生视图 考虑到这一点 我设计了几个向外部用户提供受限数据集的视图 一切都很好 但在实践中这是行不通的 我授予后SELECT对视图的权限 除非我授予 否则用户无法访
  • 如何选择按范围分组的值的计数

    斯塔克万岁 我需要选择按范围分组的值的计数 举例来说 假设我在表列中有以下值 1 2 4 5 6 8 9 11 13 16 然后 我想检索 5 范围内它们的计数 如下所示 From 0 to 4 there is 3 values 1 2
  • 根据另一个表中的值查找总计数

    在Mysql中 我的表中有具有重复值的城市 表城市 Name New York USA New York USA Chicago USA Chicago USA Chicago USA Paris France Nice France Mi
  • C# 中的 SQL 更新语句

    我有桌子 学生 P ID LastName FirstName Address City 1 Hansen Ola 2 Svendson Tove 3 Petterson Kari 4 Nilsen Johan and so on 如何更改
  • 查询计算不同值的数量?

    我在 MS Access 2003 中有一个表 如下所示 url id example com red example com blue example com blue other com red other com orange mor
  • 在数据库中存储多维数组:关系数组还是多维数组?

    我读过很多类似的帖子多维到单维 多维数据库等等 但没有一个答案有帮助 我确实在谷歌上找到了很多文档 但只提供了背景信息 并没有回答手头的问题 我有很多彼此相关的字符串 PHP 脚本中需要它们 结构是分层的 这是一个例子 A AA AAA A
  • Visual Studio 2015 Update 2 和 Sql Server 2016 架构比较

    我最近升级到 Visual Studio 2015 Update 2 一切都很顺利 但是 现在当我尝试从数据项目与 Sql Server 2016 数据库进行架构比较时 它显示我需要在数据库中创建所有对象 在此更新之前 此功能运行良好 比较
  • 从 SQL Server 中的字符串中提取子字符串

    我需要从字符串中提取子字符串的一部分 如下所示 YY 12 Yellow ABC WSA Thisone A SS 4MON DHHE A A 我需要按如下方式提取字符串 Yellow Thisone DHHE 你可以使用这样的东西 dec
  • 获取SSAS立方体上次处理时间

    在 Excel 中 我与数据多维数据集建立 Analysis Services 连接 我希望能够通过向用户显示最后一次多维数据集处理时间发生的时间来向用户展示数据的最新情况 在 SQL Server Management Studio SS
  • SQL Server 超时是否被记录?

    SQL Server 超时 特别是 SELECT 查询 是否记录在 ERRORLOG 文件中 背景是一位客户的网站偶尔会出现 请求超时 消息 我认为超时是由数据库超时引起的 相关错误日志中没有超时错误 不可以 您需要使用 SQL Profi
  • MySQL 中复制一条记录

    我有一个表 我想复制表中的特定行 我知道这不是最好的方法 但我们正在寻找快速解决方案 这比我最初想象的要难 我需要做的就是将整个记录复制到 MySql 中自动增量表中的新记录 而不需要指定每个字段 这是因为该表将来可能会发生变化 并且可能会
  • 从 SQL Server 中调用 Python 文件

    我的文件名中有 Python 脚本 C Python HL py 在此 Python 脚本中 有预测模型以及对 SQL 数据库中某些表的更新 我想将此文件称为 SQL 作业 我怎样才能做到这一点 这个问题不一样 如何在 SQL Server
  • SQL Server 中的循环行

    我有一个包含 2 列的 SQL Server 表 Code 和 CodeDesc 我想使用 T SQL 循环遍历行并打印 CodeDesc 的每个字符 怎么做 如果您确实想循环遍历行 则需要光标 CURSOR http msdn micro
  • ORA-01438: 值大于此列允许的指定精度

    有时我们会从合作伙伴的数据库中收到以下错误 i ORA 01438 value larger than specified precision allows for this column i 完整响应如下所示
  • 实体框架..自引用表..获取深度=x的记录?

    我成功地在实体框架中使用自引用表 但我不知道如何获得所需深度的记录 这应该是什么逻辑 Model public class FamilyLabel public FamilyLabel this Children new Collectio
  • 我应该设计一个 SQL Server 数据库来依赖 UNION 还是避免它?

    执行以下 SQL 查询 SELECT Account Amount AS Deposit 0 00 AS Withdrawal Date FROM Deposits WHERE Account Account UNION SELECT Ac
  • 如何在JdbcTemplate中执行多批量删除?

    我想一次删除多个数据库条目 仅当 3 个字段匹配 此处 姓名 电子邮件 年龄 时 才应删除每个条目 如果我只想删除单个属性 我会选择 String sql DELETE FROM persons WHERE email IN JdbcTem

随机推荐

  • 更改python文件的第一行

    我只需要读取一个大文件的第一行并更改它 有没有一种技巧可以使用Python仅更改文件的第一行并将其另存为另一个文件 我所有的代码都是用 Python 完成的 这将帮助我保持一致性 这个想法是不必读取然后写入整个文件 shutil copyf
  • 尝试用C语言创建链表

    我正在尝试用 C 语言创建一个链表结构 但我不太确定出了什么问题 我的错误是 linked c 6 2 error unknown type name linkedList linked c In function makeList lin
  • 如何将图像从 React 上传到 ASP.NET Core Web API?

    我在 mt 服务器端有 Web API 控制器 HttpPost CreateImage public void CreateImage FromBody ImageDTO img Image image new Image FileNam
  • Mule 文件入站轮询配置

    我想以特定的时间间隔一次从特定目录轮询 10 个文件 如果该目录中存在 250 个文件 Mule 文件入站应从 250 个文件中取出 10 个文件并处理它们 然后再处理 10 个文件等 我的轮询频率值为 10000 我尝试像这样应用 max
  • 递归获取所有孩子

    我需要递归地从嵌套对象中获取所有子对象 我已经写了一个函数来做到这一点 有点 但我认为它可以改进 我怎样才能让它更短更干净 我已经包含了我用于测试的数据以及我编写的需要改进的函数 let data id 1 child id 2 child
  • 从 GCM 2.0 迁移到 GCM 3.0 InstanceID API

    目前我已经在 Play 商店上发布了我的应用程序 并且在该项目中我正在使用 compile com google android gms play services 7 0 0 Google Play 服务库版本7 0在我的项目中使用 Go
  • 实体框架不创建数据库

    一直在使用 ASP NET MVC 3 项目尝试 Entity Framework 4 1 的 Code First 功能 但是 数据库 SQL Server 2008 R2 不会在应用程序启动时自动创建表映射 关于如何让它这样做有什么想法
  • C 中的动态二维数组分配

    我应该如何在 C 中分配动态数组 目前我有一个我写的函数叫做malloc2D看起来像这样 void malloc2D size t unitSize uint firstCount uint secondCount void pointer
  • 为什么我不能在 Laravel 路径中使用“php artisan”命令(Windows)

    我尝试在 Ubuntu 中学习 Laravel 命令 php artisan 在终端的 laravel 文件夹路径中工作 我刚开始在Win7中这样做 我在cmd exe中输入 cd c wamp www myproject 来更改larav
  • 增加具有重复组的组的行号

    我正在研究 PLSQL Oracle 12 的查询 其中我需要增加每个组的数据集的行号 我的问题与这个问题类似 增加组上的行号 https stackoverflow com questions 11116275 increment row
  • WPF:无法让我控制焦点

    我似乎无法真正控制焦点 XAML
  • 在Playframework2中,如何服务多个资源目录?

    asset目录有两个 一个是 ui dist另一个是 public 我尝试这样写路线 GET assets file controllers Assets at path public file GET ui file controller
  • 如何将自定义标签库与 Thymeleaf 和 Spring Boot 结合使用?

    我用 Spring MVC JSP 和 Tyles 创建了一个自定义标签库 所以我有几个 tagx文件 在新项目中 我决定尝试 Spring Boot 和 Thymeleaf 但我想保留我的自定义库 那么您是否可以使用 thymeleaf
  • mysql复合索引是否会使其他一些索引完全冗余?

    如果我在 a b 上有一个复合索引 我知道仅与 a 相关的查询仍将使用复合索引 但与 b 相关的查询不会 我的问题是 如果我有 a b 索引 是否有任何正当理由在 a 上建立单列索引 我读到的内容对于 a b 索引是否完全替代 a 或者仅仅
  • 将重叠间隔与 lubridate 结合起来

    我希望组合润滑间隔 以便如果它们重叠 则从内部第一个时间中取出最小值 并从内部最后一个时间中取出最大值 并汇总以创建一个跨越整个周期的新间隔 这是一个代表 library lubridate warn conflicts FALSE lib
  • Docker“共享依赖关系”

    在阅读 Docker 的同时 我多次停下来 因为 Docker 容器不仅共享主机内核 而且如果可能的话 它们还共享通用的二进制文件和库 我从中了解到的是 如果我在同一台主机上运行相同的 docker 映像两次 并且该映像使用一些文件 x y
  • 如何生成具有指定增量步骤的列表?

    如何生成具有指定增量步长 例如 2 的向量 例如 我如何生成以下内容 0 2 4 6 8 10 执行中seq 1 10 1 做什么1 10做 您可以更改最后一个参数seq i e by 任意大小的台阶 gt a vector of even
  • R中有“暂停”功能吗? [复制]

    这个问题在这里已经有答案了 我正在编写一个用户定义的函数 其中包含一个 for 循环 并且希望在每次迭代后暂停执行 是否有一些函数可以执行此操作 例如 MATLAB 中的 暂停 是的 您可以使用以下命令暂停执行Sys sleep 因此 等待
  • 优雅的模式来记录用户的操作

    我有一个数据库架构来记录用户在我的网络应用程序中执行的操作 Log Id Log Type Id Performed by Person Id Performed to Person Id Comment Id Story Id Photo
  • SQL Server:索引重建和索引重组有什么区别?

    指数重建和指数重组有什么区别 思考一下索引是如何实现的 它通常是某种树 例如 B 树或 B 树 索引本身是通过查看数据中的键并构建树来创建的 以便可以有效地搜索表 当你改组索引 您遍历现有索引 清理已删除记录的块等 这could当您进行删除