SQL Server - 选择怎么会这么慢

-7 performance sql-server select sql-server-2014 query-performance

我想知道像下面这样的简单查询在一个只有 300 000 行的表上花费 6-7 秒是否正常。我正在研究 SQL Server 2014,而 RDBMS 需要花费大量时间来返回“没有那么多”数据,这让我感到非常惊讶。

SELECT [Id]
  ,[b]
  ,[c]
  ,[d]
  ,[e]
  ,[f]
  ,[g]
  ,[h]
  ,[i]
  ,[j]
  ,[k]
  ,[l]
  ,[m]
  ,[n]
  ,[o]
  ,[p]
  ,[q]
  ,[r]
  ,[s]
  ,[t]
  ,[u]
  ,[v]
  ,[w]
  ,[x]
  ,[y]
  ,[z]
  ,[aa]
  ,[ab]
  ,[ac] FROM .[dbo].[MyTable]
Run Code Online (Sandbox Code Playgroud)

以下是表格说明:

CREATE TABLE MyTable(
Id [int] IDENTITY(1,1) NOT NULL,
b [nvarchar](50) NULL,
c [nvarchar](30) NULL,
d [int] NOT NULL,
e [nvarchar](350) NULL,
f [nvarchar](350) NULL,
g [int] NULL,
h [int] NULL,
i [int] NULL,
j [int] NOT NULL,
k [float] NOT NULL,
l [int] NOT NULL,
m [float] NOT NULL,
n [float] NOT NULL,
o [bit] NOT NULL,
p [float] NOT NULL,
q [int] NOT NULL,
r [nvarchar](max) NULL,
s [int] NULL CONSTRAINT [DF_s]  DEFAULT ((0)),
t [int] NULL,
u [int] NULL,
v [int] NULL,
w [bit] NULL,
x [int] NULL,
y [int] NULL,
z [int] NULL,
aa [nvarchar](30) NULL,
ab [bit] NOT NULL CONSTRAINT [DF_ab]  DEFAULT ((0)),
ac [int] NULL, CONSTRAINT [PK_dbo.MyTable] PRIMARY KEY CLUSTERED ([Id]))
Run Code Online (Sandbox Code Playgroud)

我想知道 :

  1. 为什么这需要这么长时间?
  2. 可以做些什么来改进这样的简单查询

gbn*_*gbn 9

您不是在测试 SQL Server 性能。

您主要是通过 SSMS 测试本地 PC 和网络性能。

如果您在 SSMS 中运行它,那么 SSMS 必须呈现 300,000 行。默认是网格模式,它占用大量资源。这 300,000 行必须通过网络传输。

更改 SSMS 以丢弃这 300,000 行:

更改 SSMS 以丢弃那 300,000 行