我在SQL Server上有一个非常简单的选择:

select * from person
where first_name = 'John' and last_name = 'Smith'`

在执行计划中,我有:

  • 非聚集索引搜寻-NC_First_Last_pers
  • 在PK上进行键查找(集群)

这两个进入嵌套循环联接。

我的问题是:

为什么要加入? 我以为这仅用于连接不同的表,但是我这里只有1个表。

谢谢!

===============>>#1 票数:4 已采纳

在索引中,您具有索引中包含的列的数据以及聚簇键。 您正在查询带有*的表,这意味着您必须查找所有列值,并且这些值与聚簇键一起存储。

该查询使用名称上的索引查找匹配的所有行,然后使用聚簇键查找所需的数据。

  ask by Anvar translate from so

未解决问题?本站智能推荐:

2回复

SQL Server中的执行计划?

在哪种情况下,估计的执行次数与实际的执行次数不同? 有人可以列出这些场合吗? 提前致谢
2回复

SQL Server哈希联接和嵌套循环

我开发有关现有数据库(SQL2008-SQL2012)的报告,在其中我需要以许多不同的方式收集数据。 典型的查询看起来像 有时CTE相互依赖,典型的查询涉及5-10个CTE。 问题在于,类似的查询可能需要一秒钟到5分钟的时间才能处理少量数据。 性能降低的主要原因是SQL
3回复

是否在SQL Server中缓存了函数的执行计划?

任何机构都可以帮助我理解SQL服务器中缓存的函数的执行计划吗? 任何在线资源?
4回复

SQL Server:什么会触发执行计划?

如果我有陈述 我包括实际的执行计划并运行此查询,但我没有执行计划。 仅当批处理中有FROM语句时,查询才会触发执行计划吗?
1回复

SQL Server执行计划的歧义

问题-消息8114,级别16,状态5,第1行将数据类型nvarchar转换为数值时出错。 下面是SQL Server中的查询 当数据库中不存在任何表时(即表和数据最近已添加到数据库中),不会发生此问题。 仅当这些表中存在大量数据时,才会发生这种情况。 (当我们清除数据库并重新创建所
3回复

SQL Server sp_ExecuteSQL和执行计划

我有一个查询,它在SQL Server Management STudio中是超高速的,并且在sp_ExecuteSQL下运行时超级慢。 这是否与在spExecuteSQL下运行时未执行的执行计划的缓存有关?
1回复

SQL Server选择错误的执行计划

执行此查询时,SQL Server选择错误的执行计划,为什么? SQL Server为此查询选择群集PK索引,并且经过时间= 78254 ms,但是如果我强制SQL Server选择非群集索引,则经过时间为2 ms,将更新Stats Account表。
1回复

RANK()SQL Server执行计划问题

是什么促使SQL Server对返回6000多个行的查询使用不太理想的执行计划? 对于返回所有行的情况,我需要提高查询性能。 我选择所有字段,并在索引中包含的相同三列上添加等级。 根据返回的行数,查询有两个不同的执行计划,因此执行分别需要0.2s或3s。 从1行返回到大约 50
1回复

如何在Linux上查看SQL Server中的执行计划

我在Linux上安装了SQL Server。 它是从Microsoft的repos安装的,如下所述: https : //docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu 在MySql中,我曾经在查询
2回复

SQL Server程序执行计划的奇怪问题

我想知道你们是否可以帮我解决我最近在SQL Server上遇到的一个奇怪问题。 我有一个存储过程(让我们调用SPold )相当大,有很多计算(在应用程序中不可能这样做,因为大约6000个用户的信息需要一次性回来(我把它减少到1000)在姓氏))。 存储过程通常在几秒钟内执行,并且每隔几分