问题标签 [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.
asp.net - 在自定义 SQL 表上设置索引列
我已经阅读了有关主索引、唯一索引、聚集索引等的信息。但我需要通过一个示例来理解它。
下图是从 SQL Server Web 管理面板捕获的自动生成的 aspnet_Users 表。
自动生成的 ASP.NET 用户表 http://eggshelf.com/capture.jpg
以此为模型;我将创建一个名为 Companies 的自定义表,假设字段为:ID、Name、ShortName、Address、City、Country.. ID、Name 和 ShortName 字段的值不能重复。
您为该表创建索引的方法是什么?哪个应该是集群的或非集群的?下面的索引对你来说合乎逻辑吗?
问候..
clustered-index - H2数据库:聚集索引支持
我将 H2 数据库用于包含大量时间序列的环境数据。时间序列只是定期(例如每小时一次)记录在数据库中的传感器的测量值。
表中存储的数据:
我想对表进行范围查询,例如:
为了提高性能,我想在 dt 列上构建聚集索引,但问题是,我还没有发现 H2 是否支持聚集索引。有人知道H2 是否支持 聚集索引?
sql - 如何删除聚集属性但保留表中的主键。SQL 服务器 2005
我有以下密钥:
所以我在 ID 列上有聚集索引和主键。现在我需要删除聚集索引(我想在另一列上创建新的聚集索引),但保留主键。可能吗?
sql-server - 非聚集索引上的 where 子句与聚集索引上的额外连接和 where 子句
我试图从一些 sql 查询中获得一些额外的性能,这些查询在字段上具有 where 子句,该字段是非唯一非聚集索引,它也是表 A 中的外键。该外键是主键在表 B 上,并且是聚集索引。
我想知道的是,如果我将表 A 的联接添加到表 B 并在作为聚集索引的字段上使用 where 子句(与没有额外联接的非聚集索引相反),我是否会获得性能提升)?
谢谢
sql - 将排序的加载文件加载到新表中时是否需要 CLUSTER INDEX?
INFORMIX-SE:
我的用户定期运行一个 SQL 脚本 [REORG.SQL],它按排序顺序将表中的所有行卸载到两个单独的文件(活动和非活动),删除表,重新创建表,将排序的加载文件加载回其中,在我对卸载文件进行排序的同一列上创建一个集群索引,创建其他支持索引并更新其统计信息。
(参见 REORG.SQL 脚本: SE: 'bcheck -y' anomaly)
(另请参阅:customer.pk_name 加入 transactions.fk_name 与 customer.pk_id [serial] 加入 transactions.fk_id [integer] ,因为集群索引是按名称而不是 pk_id[serial]=fk_id[int])
使用我的 REORG.SQL 脚本时,我一直遇到索引文件一致性问题,所以我怀疑 CLUSTER INDEX 与它有关,并在没有集群的情况下创建了索引,问题就消失了!
现在我的问题是:如果我设法将按客户全名排序的所有交易数据加载到新创建的表中,我真的有必要创建一个 CLUSTER INDEX,而实际上这些行已经按相同的顺序排序集群会完成吗?..我知道随着新行的添加,集群索引开始失去集群,那么创建集群索引有什么优势?..查询优化器是否利用集群与非集群当行基本上以相同的聚集顺序排列时索引?.. 有没有人在聚集表时遇到 IDX/DAT 文件问题?.. 也许我的 SQL 脚本有问题?(请查看我的 SQL 脚本代码,看看我是否做错了什么?)
sql-server-2008 - 将主键添加到具有现有聚集索引的表中
我必须使用数据库来进行报告数据库很大:416 055 104 行虽然每行都很轻,只是布尔值和 int id。
每行由 3 列标识,但令我惊讶的是,上面没有主键。只有具有唯一约束的聚集索引。
所以知道这一点,我有两个问题。
- 有什么好的理由吗?
- 有什么办法可以把它变成主键。
关于问题 2
创建一个新的主键也会创建一个非聚集索引来关联(已经有一个现有的聚集索引)。
这不是我要找的。我想保留相同的索引,但也将其设为主键。
- 是否可以?
- 再次创建整个索引会更快吗?(但愿如此)
- 可能有什么后果?(锁?崩溃?损坏的数据?)
sql-server - Sql Server、复合主键和聚集索引
Sql Server 如何处理具有复合主键上的聚集索引的表的填充因子?
我假设将根据构成聚集索引的字段生成一个关键节点值。这是否意味着插入的每个新行都会有效地插入到索引的末尾?
sql-server - SQL Server 群集限制?
你能做超过 2 台服务器的 SQL Server 集群吗?主人可以有超过1个奴隶吗?极限是多少?
sql - Sql Server Legacy Database To Clustered index 与否
我们有一个遗留数据库,它是一个 sql server db(2005 和 2008)。
表中的所有主键都是唯一标识符。
这些表目前没有在它们上创建聚集索引,并且我们在只有 750k 记录的表上遇到了性能问题。这是我使用的第一个使用唯一标识符作为唯一主键的数据库,我从未见过 sql server 在返回数据时如此缓慢。
我不想在 uniqueidentifier 上创建聚集索引,因为它们不是顺序的,因此在插入数据时会减慢应用程序的速度。
我们无法删除用于远程站点记录身份管理目的的唯一标识符。
我曾考虑向表中添加一个大整数标识列,并在该列上创建聚集索引并包括唯一标识符列。
IE
int identity - 保持插入速度的第一列唯一标识符 - 确保应用程序按预期工作。
目标是提高标识查询和联接表查询性能。
Q1:这会提高数据库的查询性能还是会减慢它的速度?
Q2:有没有我没有列出的替代品?
谢谢皮特
编辑: 性能问题是通过选择语句快速检索数据,特别是如果一些更多的“事务/更改”表连接在一起。
编辑2:表之间的连接通常都在主键和外键之间,对于具有外键的表,它们包含在非聚集索引中以提供更多覆盖索引。
这些表都没有其他可以提供良好聚集索引的值。
我更倾向于在每个高负载表上添加一个额外的标识列,然后在聚集索引中包含当前的 Guid PK 列以提供最佳查询性能。
编辑 3:我估计 80% 的查询是通过数据访问机制单独对主键和外键执行的。通常,我们的数据模型具有延迟加载的对象,这些对象在访问时执行查询,这些查询使用对象 id 和 PK 列。我们有大量用户驱动的数据排除/包含查询,它们使用外键列作为过滤器,基于类型 X 的标准排除以下 id。剩下的 20% 是枚举 (int) 或日期范围列的 where 子句,系统中执行的基于文本的查询很少。
在可能的情况下,我已经添加了覆盖索引来覆盖最重的查询,但到目前为止我仍然对性能感到失望。正如 bluefooted 所说,数据被存储为堆。
sql - 将聚集索引转换为非聚集索引?
在 sql server 2005 中是否可以将聚集索引转换为非聚集索引或将非聚集索引转换为聚集索引。
请将此查询转换为聚集索引:
请将此查询转换为非聚集索引: