问题标签 [non-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 投票
1 回答
99379 浏览

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

我知道聚集索引和非聚集索引之间的主要区别,并且了解它们的实际工作方式。我了解聚集索引和非聚集索引如何提高读取性能。但我不确定的一件事是,我选择其中一个而不是另一个的原因是什么。

例如:如果一张表没有聚集索引,是否应该创建一个非聚集索引,这样做有什么好处

0 投票
1 回答
60 浏览

sql - 在 SQL Server 创建索引中,我得到了两个术语,一个是“包含”,另一个是“with”。他们两者之间有什么区别?

第二个

0 投票
2 回答
3065 浏览

sql-server-2008 - 我应该在 WHERE 选择子句中经常使用的 SQL 表列上创建索引吗?

所以我想知道我是否应该将非聚集索引添加到 SQL 2008 R2 表中的非唯一值列。简化示例:

我的理解是主键[Id]应该是聚集索引。

可以将非聚集索引添加到非唯一列 [City] 吗?这会提高性能还是我根本不应该打扰。

谢谢。

我正在考虑将聚集索引作为:

或非聚集,假设该表上已经有聚集索引。

实际上,我正在处理数百万个记录表。Select 语句返回 0.1% 到 5% 的记录

0 投票
1 回答
514 浏览

mysql - 非聚集索引会创建一个单独的文件来存储其数据吗?

我对聚集索引和非聚集索引感到非常困惑,今天我花了将近 5 个小时来澄清我的疑问,但我仍然无法找到以下问题的答案:

1- 聚集索引以索引顺序物理存储在表中。

问题: 1.A. 这里的物理意义是什么?1.B。是在系统上创建了一个单独的文件,还是数据按排序顺序存储在表本身中?

2- 一张表只能创建一个簇索引。

问题: 2.A . 这是否意味着当我们在两列上创建索引时,它会自动变为非聚集索引?

3- MyISAM 不支持聚集索引,但 InnoDB 支持它

问题: 3.A. 这是否意味着在 MyISAM 上创建的所有索引默认都是非聚集索引?3.B。.MYI 文件中是否包含所有非聚集索引数据?4.B。同样,如果索引数据存储在 MyISAM 中的文件中,那么 InnoDB 将它们的聚集索引数据存储在哪里?

请帮忙,因为我在今天的采访中被问到这些问题,我真的没有得到任何明确的答案吗?

0 投票
1 回答
313 浏览

sql - 非聚集索引的候选者

我有一个如下表结构:

功能列表

我对此执行的大多数查询都像:

我想知道,VIN列是非聚集索引的好候选吗?或者它可能会降低性能?

0 投票
1 回答
599 浏览

sql - Why is my query doing a clustered index scan when it has an index

I am running a sample database from a SQL Server 2012 training book, learning a bit about indexes so I thought I'd try and see how it works.

The table Orders has an index on shippostalcode, so I tried to put that in the where clause, I know there are 850+ records in that table, and this code is split well like:

So when I do this, why do I get a clustered index scan, which I read is the same as a table scan which is sub-optimal?

enter image description here

EDIT:

I did :

Which gave me an index seek. Which leads me to think (from the little I learnt) that SQL Server may think that a scan is faster than doing a bookmark lookup for the rest of the columns?

EDIT 2:

After reading about the tipping point here : http://www.sqlskills.com/blogs/kimberly/why-arent-those-nonclustered-indexes-being-used/

It says its around 30%. I used the query from here to get the total pages in my table :

Determining page count on each SQL table without using DBCC

I get 49 used and 53 reserved. So 30% of 49 = 14.7 * 17 (each page stores this much) is about 250 rows. But my query was only returning 9 so it was no where near the tipping point.

0 投票
2 回答
254 浏览

sql-server - 表需要索引来提高性能

在下面的查询(查询从 c# 应用程序运行)中给出长时间的 DateTime 时,我遇到了超时问题。表有 3000 万行,在 ID(不是主键)上有一个非聚集索引。

发现没有主键,所以我最近将 ID 更新为主键,现在它没有给我超时。谁能帮我在下面的查询中为将来创建多个键的索引,以及如果我从该表中删除非聚集索引并在多个列上创建索引?数据增长迅速,性能需要改进

这是创建脚本

0 投票
2 回答
3041 浏览

sql-server - 具有多列的 SQL Server 非聚集索引

我似乎找不到一个直接的答案。我有以下列:

我将ZipCode单独或StateAbbreviation/CountyName组合查询表。我Id定义了一个 PK 列,所以这是我的聚集索引。

什么是推荐的方法来实现更好的性能/效率?考虑到我将如何搜索表,我应该创建什么样的索引?

0 投票
1 回答
36 浏览

sql-server - 如何在 SQL Server 中查看索引表的结构?

我对索引表的外观有一个大致的了解:第一列是索引字段,最后一列是索引表中的行 ID。但是有什么方法可以让我真正查看 SQL Server 中非聚集索引表的样子吗?

0 投票
1 回答
311 浏览

sql-server - 使用 EF 代码优先时,SQL Server 中的 rowversion/timestamp 列是否需要非聚集索引?

我所有的表都有一个rowversionEF 用于乐观并发检查的列。我是否应该在此列上创建一个非聚集索引以便更快地检索数据?每个表还有一个名为 的聚集主键Id。每当更新数据时,EF/SQL 是否会先尝试根据 Id 定位行,然后运行行版本检查?