我有一个包含连接几个表的查询的过程,但我遇到了一些性能问题。
主表(这是一个巨大的表)有一个 PK 和一些 NC 索引。
CREATE TABLE [dbo].[TableA]
(
[TableAID] [bigint] NOT NULL,
[UserID] [int] NOT NULL,
[IP1] [tinyint] NOT NULL,
[IP2] [tinyint] NOT NULL,
[IP3] [tinyint] NOT NULL,
[IP4] [tinyint] NOT NULL
CONSTRAINT [PK_TableA]
PRIMARY KEY CLUSTERED ([TableAID] ASC)
) ON [PRIMARY]
CREATE NONCLUSTERED INDEX [idx_1] ON [dbo].[TableA]
(
[UserID] ASC
)
CREATE NONCLUSTERED INDEX [idx_2] ON [dbo].[TableA]
(
[IP1] ASC,
[IP2] ASC,
[IP3] ASC,
[IP4] ASC
)
Run Code Online (Sandbox Code Playgroud)
这是性能不佳的查询:
SELECT DISTINCT a.UserID, a.IP1, a.IP2, a.IP3, a.IP4
FROM [dbo].[TableA] …
Run Code Online (Sandbox Code Playgroud) performance sql-server-2008 sql-server index-tuning query-performance