小编Mik*_*org的帖子

SQL Server:聚集索引比等效的非聚集索引慢得多

设置

我将要描述的是在以下硬件上运行:

  • 磁盘:RAID5 中的 6 个 2TB 硬盘(带 1 个冗余驱动器)
  • CPU:英特尔至强 E5-2640 @ 2.4 GHz,6 核
  • 内存:64GB
  • SQL Server 版本:SQL Server 2016 开发人员

SQL Server Management Studio (SSMS) 和 sql server 实例都在此服务器上运行。所以所有的查询都是在本地执行的。此外,在执行任何查询之前,我总是运行以下命令以确保没有数据访问缓存在内存中:

DBCC DROPCLEANBUFFERS
Run Code Online (Sandbox Code Playgroud)

问题

我们有一个包含大约 11'600'000 行的 SQL Server 表。在大计划中,不是一张特别大的桌子,但它会随着时间的推移而大大增加。

该表具有以下结构:

CREATE TABLE [Trajectory](
  [Id] [int] IDENTITY(1,1) NOT NULL,
  [FlightDate] [date] NOT NULL,
  [EntryTime] [datetime2] NOT NULL,
  [ExitTime] [datetime2] NOT NULL,
  [Geography] [geography] NOT NULL,
  [GreatArcDistance] [real] NULL,
  CONSTRAINT [PK_Trajectory] PRIMARY KEY CLUSTERED ([Id])
)
Run Code Online (Sandbox Code Playgroud)

(为简单起见,排除了一些列,但它们的数量和大小非常小)

虽然没有那么多行,但由于[Geography]列的原因,该表占用了相当多的磁盘空间。此列的内容是 …

sql sql-server indexing performance query-optimization

7
推荐指数
1
解决办法
399
查看次数