clustered-index相关内容

SQL Server 使用没有主键的聚集索引创建表

是否可以从 SQL Server 2008 中的非主键的 create table 语句创建聚集索引? 这样做的目的是为了 SQL Azure 中的一个表,所以我不能先创建表,然后在表上创建聚集索引. 编辑:显然是 FluentMigrator 导致了我的问题,它的版本表没有聚集索引,因此尝试创建版本控制表而不是我的表时出错. 解决方案 是的,可以创建一个不是主键的聚集索引.只 ..

如何使用 Entity Framework Core 创建聚集索引

从 EF6.1 开始,我们有一种在属性上指定聚集索引的方法 公共类人{[索引(IsClustered = true,IsUnique = true)]公共长用户名 { 获取;放;}} 但是这个 Index 属性现在似乎不在 EF Core 中?在 EF Core 中,您如何实现这一目标? 解决方案 来自当前的 EF Core 文档 - 索引部分: 数据注释 不能使用数据注释 ..

如何使用 Fluent NHibernate 创建聚集索引?

我正在使用 Fluent-NHibernate(带自动映射)来生成我的表,但想选择一个不同于默认使用的 ID 字段的聚集索引.如何使用 Fluent NHibernate 在默认主键字段以外的字段上创建聚集索引? 这背后的主要原因很简单.我正在将 Guids 用于我的主键字段.默认情况下,NHibernate 在主键字段上创建聚集索引.由于 Guid 通常不是顺序的,主键字段上的聚类会导致性 ..

使现有的 bigquery 表聚簇

我在 bigquery 中有一个相当大的现有分区表.我想让表聚簇,至少对于新分区. 来自文档:https://cloud.google.com/bigquery/docs/creating-clustered-tables,据说我们能够在加载数据时创建一个聚簇表,我尝试使用聚簇字段加载一个新分区:job_config.clustering_fields = ["event_type"]. ..
发布时间:2021-12-30 23:24:41 其他开发

如何提高分区+集群表查询的数据量?

我有一个 BigQuery 表 - 日分区和集群.但是,当我对其运行查询时,它仍然会使用大量数据.这怎么可能? 解决方案 有时没有分区,或者每周/每月/每年分区会比每天分区表 + 集群更有效. 这是因为 BigQuery 中的每个数据集群都有一个最小大小.如果每日分区表中每天的数据量少于该数据量,您将根本看不到对表进行聚类的任何好处. 例如,让我们创建一个包含 30 多年天气的 ..

如何判断数据库表是否正在被访问?想要像“选择触发器"这样的东西

我有一个包含数百个表的非常大的数据库,经过多次产品升级后,我确信其中一半不再使用.如何判断是否正在主动选择表?我不能只使用 Profiler - 我不仅要观察几天以上,而且还有数千个存储过程,而且 Profiler 不会将 SP 调用转换为表访问调用. 我唯一能想到的就是在感兴趣的表上创建一个聚簇索引,然后监控sys.dm_db_index_usage_stats看是否有对聚簇索引的seek ..

SQL Server 2005 中没有聚集索引的原因

我为 SQL SERVER 2005 数据库继承了一些数据库创建脚本. 我注意到的一件事是,所有主键都创建为 NON CLUSTERED 索引,而不是集群. 我知道每个表只能有一个聚集索引,并且您可能希望将它放在非主键列上以提高搜索查询性能等.但是没有其他 CLUSTERED 索引在有问题的桌子上. 所以我的问题是,除了上述之外,是否有任何技术原因不在主键列上使用聚集索引. ..
发布时间:2021-12-21 23:44:54 数据库

SQL Server - 何时使用聚集索引与非聚集索引?

我知道聚集索引和非聚集索引之间的主要区别,并且了解它们的实际工作方式.我了解聚簇和非聚簇索引如何提高读取性能.但我不确定的一件事是,我会选择一个而不是另一个的原因是什么. 例如:如果一张表没有聚集索引,是否应该创建一个非聚集索引,这样做有什么好处 解决方案 我只想说一句警告:请非常小心选择您的聚集索引!每个“常规"数据表都应该有一个聚集索引,因为拥有一个聚集索引确实会加速很多操作—— ..

聚集索引和非聚集索引的区别

我需要在我的表格中添加适当的 index 并且需要一些帮助. 我很困惑,需要澄清几点: 我应该对 non-int 列使用索引吗?为什么/为什么不 我已经阅读了很多关于 clustered 和 non-clustered 索引的内容,但我仍然无法决定何时使用一个而不是另一个.一个很好的例子将帮助我和许多其他开发人员. 我知道我不应该对经常更新的列或表使用索引.在进入测试阶段之 ..

聚集索引和非聚集索引有什么区别?

聚簇和非聚簇索引有什么区别? 解决方案 聚集索引 每桌仅限一张 读取速度比非集群更快,因为数据是按索引顺序物理存储的 非聚集索引 每桌可以多次使用 插入和更新操作比聚集索引更快 当使用使用索引的字段选择数据时,这两种类型的索引都会提高性能,但将减慢更新和插入操作. 由于插入和更新较慢,因此应在通常递增的字段上设置聚集索引,即 Id 或 Timestamp. ..
发布时间:2021-12-21 23:22:25 数据库

SQL Server中如何选择聚集索引?

通常在 SQL Server Management Studio 中通过设置主键创建聚集索引,但是我最近关于 PK 聚集索引的问题 (主键对Microsoft SQL Server 2008 的意义) 已经表明没有必要将PK 和聚集索引设置为相等. 那我们应该如何选择聚集索引呢?举个例子: 创建表Customers (ID int, ...)创建表订单(ID int,Custome ..

聚集索引必须是唯一的吗?

如果聚集索引不唯一会怎样?是否会因为插入的行流向“溢出"而导致性能不佳?某种页面? 它是“制造"的吗?独特的,如果是这样如何?让它独一无二的最佳方法是什么? 我问是因为我目前使用聚集索引将我的表划分为逻辑部分,但性能一般,最近我得到了 建议 使我的聚集索引独一无二.我想就此发表第二意见. 解决方案 他们不必是独一无二的,但肯定是值得鼓励的. 我还没有遇到过要在非唯一列上创建 ..
发布时间:2021-12-05 12:30:56 其他开发

索引未应​​用于索引视图

我有一个索引视图,但是当我在该视图上运行查询时,未应用构建在视图上的索引,并且查询在没有索引的情况下运行.下面是我的虚拟脚本:表格 + 视图 + 视图索引 创建表 P_Test([PID] INT 身份,[TID] INT,[状态ID] INT)创建表 T_Test([TID] INT 身份,[FID] INT,)创建表 F_Test([FID] INT 身份,[状态ID] INT)走插入 F_ ..
发布时间:2021-09-17 20:20:18 其他开发

UniqueIdentifier 聚集索引上的 NewSequentialId

我正在为我公司正在启动的新数据库制定数据库标准.我们试图定义的一件事是与 UniqueIdentifiers 相关的主键和聚集索引规则. (注意:我不想讨论使用 UniqueIdentifier 作为主键或聚集索引的利弊.网络上有大量关于此的信息.这不是 那个讨论.) 所以这是让我担心的场景: 假设我有一个表,它有一个 UniqueIdentifier 作为聚集索引和主键.让我们 ..

临时表上的聚集索引

我正在尝试优化具有如下代码的过程: CREATE TABLE #t1 (c1 int, c2 varchar(20), c3(varchar(50)...)创建集群索引 ix_t1 ON #t1(c3) ON [PRIMARY] 我想通过将 CLUSTERED 索引移到表声明中来改进这一点(更适合缓存),但是 c3 不是唯一的,所以这不起作用: CREATE TABLE #t1 (c1 in ..
发布时间:2021-09-05 18:31:40 数据库

如何将主键更改为非集群?

这里是不情愿的兼职 DBA.我想将现有的主键索引从聚集更改为非聚集.语法正在逃避我. 这就是它现在的脚本编写方式. ALTER TABLE [dbo].[Config] WITH NOCHECK ADD约束 [PK_Config] 主键集群([配置ID]) 在 [主要] 我在在线文档中没有看到 ALTER CONSTRAINT 语句. 解决方案 删除聚集索引,然后将主键重新创建为 ..
发布时间:2021-08-26 18:41:44 其他开发

SQL Server 聚集索引是否替换了 RID 查找“索引"?

当一个表在 SQL Server 中具有聚集索引时,是否意味着所有索引查询都将通过聚集索引? 例如,如果我有一个带有单个非聚集索引(索引一列)的表并通过该列搜索一行,它将执行 Index Seek ->RID ->数据行查找 ->结果 但是如果我在不同的列上添加聚集索引,那么相同的查询将执行以下 Index Seek ->提取聚类键 ->聚集索引查找 ->结果 这对我来说意味着非 ..
发布时间:2021-08-25 20:30:13 数据库

是否应始终将主键分配为聚集索引

我有一个存储员工详细信息的 SQLServer 表,列 ID 是 GUID 类型,而列 EmployeeNumber 是 INT 类型.大多数情况下,我将在执行连接和选择条件时处理 EmployeeNumber. 我的问题是,将 PrimaryKey 分配给 ID 列而将 ClusteredIndex 分配给 EmployeeNumber 是否合理? 解决方案 理想的聚集索引键是: ..
发布时间:2021-08-25 20:25:24 数据库

为什么对我的聚集索引进行扫描?

SQL 2000 NED 表有一个到 SIGN 表的外键 NED.RowID 到 SIGN.RowID SIGN 表有一个指向 NED 表的外键 SIGN.SignID 到 NED.SignID RowID 和 SignID 是作为 GUID 的集群主键(不是我的选择) WHERE 子句是: FROM[签名] AINNER JOIN NED N ON A.SIGNID = N.SIGNI ..
发布时间:2021-08-25 20:24:06 数据库

将 GUID 主键更改为整数主键

几个月前我接手了一个应用程序,该应用程序使用 Guids 作为主表上的主键.我们最近遇到了一些与索引相关的数据库问题,我刚刚阅读了使用 Guids 作为主键的内容,我了解到它们可能是一个多么糟糕的主意,我认为可能值得一看在数据库变得太大之前更改它们. 我想知道是否有一种简单的方法可以将它们更改为 Ints?有没有一些很棒的软件可以为我做到这一点?还是全由我决定? 我正在考虑在所有适当的 ..