问题标签 [clustered-index]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
158 浏览

sql - 这个执行计划是重新思考我的主键的动机吗

当我进入我当前(雇主的)公司时,设计了一个新的数据库模式,它将成为许多未来将要创建的工具的基础。凭借我有限的 SQL 知识,我认为该表设计得相当好。我唯一担心的是几乎每个表都有一个多部分主键。每个表至少有一个 CustomerId 和它自己的键。虽然这些确实是为某个记录定义的,但我觉得多个键(我们在这里说的是四倍)效率非常低。

今天,我在一个简单的重复查询中看到了一些难以想象的 CPU 使用率,该查询连接了两个表,从第一个表中选择一个字符串字段并将它们区分开来。

检查执行计划(我不是 EP Hero)我注意到有三个主要的 CPU 点。不同的(如预期的那样)和两个寻求indeces。我个人认为索引搜索应该非常快,但它们每个都占用了 18% 的成本。这是正常的吗?是因为(四重)聚集索引吗?

--UPDATE--
该查询用于创建 Lucene 索引。这是一个一次性处理,大约每周发生一次(我知道这听起来很矛盾)。据我所知,我不能在这里重用任何结果。

0 投票
5 回答
4031 浏览

sql-server - 非数字索引的性能

如果我在 SQL Server 数据库上使用 nvarchar(n) 列作为聚集索引,与数字 (int) 索引相比,我是否会遭受显着的性能影响?此外,复合索引的性能如何比较?

0 投票
5 回答
2008 浏览

sql-server - SQL Server 性能和聚集索引值

我有一个带有唯一聚集索引 myId 的表 myTable ,填充因子为 100% 它是一个整数,从零开始(但它不是表的标识列)我需要向表中添加一种新类型的行。如果我可以通过使用 myId 的负值来区分这些行,那可能会很好。

负值会导致额外的页面拆分并减慢插入速度吗?

额外背景:此表作为 etl 的一部分存在,用于从不同系统收集数据的数据仓库。我现在想容纳一种新型数据。我这样做的一种方法是为这些新数据保留负 ID,因此将自动聚类。这也将避免架构中的主要关键更改或额外列。

答案摘要: 100% 的填充系数通常会减慢插入速度。但不是顺序发生的插入,包括顺序否定插入。

0 投票
1 回答
355 浏览

indexing - 当没有一个字段一起使用时,为什么会有聚集复合索引?

在旧数据库 (SQL Server 2000) 中,我们有一个如下所示的聚集索引:

问题是,据我所知,这些字段都没有在 WHERE 子句中一起使用。也没有任何理由将它们中的任何一个一起使用。有任何理由拥有这样的聚集索引吗?

0 投票
4 回答
4033 浏览

sql - 在现有表上将 newid() 更改为 newsequentialid()

目前,我们有许多在主键上使用 newid() 的表。这导致了大量的碎片。因此,我想将列更改为使用 newsequentialid() 。

我想现有数据将保持相当碎片化,但新数据将不那么碎片化。这意味着在将 PK 索引从非集群更改为集群之前,我可能应该等待一段时间。

我的问题是,有人有这方面的经验吗?有什么我忽略的事情需要注意吗?

0 投票
3 回答
12662 浏览

oracle - 什么类型的索引最适合 Oracle 上的 DATE 类型?

根据您使用 Oracle 的经验,您将在 DATE 类型的列上设置的索引的最佳类型和设置是什么?

  • 我不一定需要去分区索引。
  • 它是一种记录表。
  • 您并不真正关心唯一 id 作为主键(实际上 date 在大多数情况下都足够接近以成为唯一的,但由于它的性质,永远不会如此)。

创建集群索引是否公平?

我感兴趣的是优化查询的执行,例如 SELECT * FROM Log WHERE [Date] > '20-06-2009' ORDER BY [Date] DESC,而不是大幅减慢插入速度。(顺便说一句。在现实世界中,我会使用正确的 TO_DATE 语法来避免截断和丢失索引)

干杯,

0 投票
1 回答
717 浏览

performance - SQL Server 2005 聚集索引查询速度

我们的网站受到了相当大的冲击,因此我们正在研究优化我们现有的一些查询。

在研究这个问题时,我们遇到了几个查询,当查询中包含聚集索引的简单引用时,它们的执行计划快了大约 4-5 倍……例如

如果这是旧查询:

根据 SSMS 中的执行计划,以下查询将快 4 倍:

我们似乎无法理解这将如何使查询更快。聚集索引位于 lotID 上,但由于它与自身进行比较,这有什么帮助?

0 投票
6 回答
2922 浏览

sql - 视图上的 sql server 聚集索引

我试图从一个相当复杂的选择查询中创建一个视图,它不会让我在上面放置一个聚集索引,因为我必须使用子查询和一些聚合函数。

我必须在其上获得一个聚集索引,否则使用该视图的查询将永远存在。显然,如果您满足一些愚蠢的标准,sql server 只会存储结果集。

视图的基表是只读的,并且每天只能通过批量导入更新一次。我不明白为什么无法缓存结果。

有谁知道让 sql server 缓存视图结果的任何方法,以便以后可以查询它们?我真的不想创建另一个表格,因为它会像滚雪球一样在整个地方变成一堆变化。

提前致谢。

0 投票
2 回答
24079 浏览

sql-server - SQL Server:日期时间、ASC 或 DESC 上的聚集索引

如果我有一个 SQL Server 表,在日期时间字段上有一个聚集索引,在插入之前设置为 DateTime.Now(来自 C#),索引应该升序还是降序以避免重新组织表?

谢谢。

0 投票
6 回答
2392 浏览

indexing - SQL Server 2000 索引 - 集群与非集群

我继承了一个数据库,其中每个聚集索引都有聚集索引和额外的重复索引。

即 IX_PrimaryKey 是列 ID 上的聚集索引。IX_ID 是列 ID 上的非聚集索引。

我想清理这些重复的非聚集索引,我想看看是否有人能想到这样做的理由。

谁能想到这样做的性能优势?