问题标签 [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.
sql-server - Sequential Guid 主键列应该是聚集索引吗?
使用顺序 guid 的目的是让您可以使用聚集索引,而不会出现聚集索引中通常存在的高级别碎片,如果它是常规 guid,对吗?
sql-server - 当额外的列由聚集索引唯一确定时覆盖索引
假设我需要从 luTab 更新 myTab 如下
luTab 由 2 列组成(idLookup(unique)、LookupValue)
哪个更可取:idLookup 上的唯一聚集索引,还是 idLookup 和 Lookupvalue 上的唯一聚集索引?在这种情况下,覆盖指数会有所作为吗?
(我最感兴趣的是 SQL 服务器)
结语:
我在下面的 Krips 测试中跟进了 myTab 中的 2700 万行,luTab 中的 150 万行。关键部分似乎是索引的唯一性。如果索引指定为唯一,则更新使用哈希表。如果未将其指定为唯一,则更新首先通过 idLookup(流聚合)聚合 luTab,然后使用嵌套循环。这要慢得多。当我使用扩展索引时,SQL 现在不再假定 LookupValue 是唯一的,因此它强制使用慢得多的流聚合嵌套循环路由
sql-server - SQL Server:索引的类型如何影响连接的性能?
如果我试图从查询中挤出最后一滴性能,那么我的联接使用这些类型的索引会产生什么影响。
- 聚集索引。
- 非聚集索引。
- 具有可能不参与联接的额外列的聚集或非聚集索引。
如果我通过并创建只包含我的联接中涉及的列而不包含其他任何内容的聚集索引,我会获得任何性能吗?
(我意识到我可能必须从另一个索引中移动聚集索引(使该索引成为非聚集索引),因为它只能有一个。)
performance - 集群主键与非集群主键
这段代码在我的机器上大约需要 0.9 秒,并创建一个占用 392K 的 db 文件。如果我将第二行更改为,这些数字变为 1.4 秒和 864K
为什么会这样?
sql-server - 如何判断是否正在访问数据库表?想要类似“SELECT 触发器”的东西
我有一个非常大的数据库,其中包含数百个表,经过多次产品升级,我确信其中有一半不再使用。我如何判断一个表是否正在被主动选择?我不能只使用 Profiler——我不仅要观察几天以上,而且还有成千上万的存储过程,而且 Profiler 不会将 SP 调用转换为表访问调用。
我唯一能想到的就是在感兴趣的表上创建一个聚集索引,然后监视聚集索引上sys.dm_db_index_usage_stats
是否有任何搜索或扫描,这意味着表中的数据已加载。但是,在每个表上添加聚集索引是一个坏主意(出于多种原因),因为它实际上并不可行。
我还有其他选择吗?我一直想要一个像“SELECT 触发器”这样的功能,但可能还有其他原因导致 SQL Server 也没有这个功能。
解决方案:
谢谢,Remus,为我指明了正确的方向。使用这些列,我创建了以下 SELECT,这正是我想要的。
sql-server - 在创建聚集索引期间是否会更新表统计信息?
在表上创建聚集索引后,更新该表的统计信息有什么意义吗?
干杯。
sql-server - 这句话是什么意思:聚集索引是物理存储在表上的?
聚集索引如何存储在硬盘上?什么是逻辑顺序?
非聚集索引如何工作?
sql-server - SQL Server 中如何选择聚集索引?
通常聚集索引是通过设置主键在 SQL Server Management Studio 中创建的,但是我最近关于 PK <-> 聚集索引的问题(Microsoft SQL Server 2008 的主键含义)表明没有必要设置 PK 和聚集索引相等。
那么我们应该如何选择聚集索引呢?让我们举个例子:
我们通常会在两个 ID 列上创建 PK/CI,但我考虑为 CustomerID 中的订单创建它。那是最好的选择吗?
sql - 如何在不删除 SQL Server 2005 中的引用外键的情况下将集群主键转换为非集群键
我在 GUID 列上创建聚集主键时犯了错误。有许多表使用已定义的外键引用该表。表大小并不重要。
我想将它从集群转换为非集群,而无需手动删除和重新创建任何外键甚至主键约束。
是否有可能在 MS SQL2005 中实现这一点,如果是的话怎么办?
如果是的话,是否有可能实现在线(没有数据库停机时间)?
sql-server-2005 - SQL2005 索引
正在扫描 SQL2005 数据库并看到以下两个表的索引:
我最初的想法是,删除最后一个索引,因为 PK_CLUSTERED_INDEX 已经包含这些列,正确的顺序和排序。最后一个指数是否提供任何收益?