使用 Azure SQL DW,我在表中的单个列上创建了二级索引,但我不确定我的查询是否使用过该索引。性能仍然很慢,但我正在搜索大约 70 亿行数据。
我的表本质上是:
CREATE TABLE FactBusinessEvent
(
[EmailAddress] [nvarchar](200) NOT NULL,
[EventDate] [datetime] NOT NULL,
[EventDate_key] [int] NOT NULL,
-- OTHER COLUMNS HERE
)
WITH
(
DISTRIBUTION = HASH ( [EmailAddress] ),
CLUSTERED COLUMNSTORE INDEX
);
CREATE INDEX IX_FactBusinessEvent_EmailAddress ON FactBusinessEvent
(
EmailAddress ASC
);
我的查询是:
SELECT * FROM FactBusinessEvent WHERE EmailAddress = '[email protected]'
使用 SSMS 17.6,我可以显示估计的查询计划,它完全忽略二级索引,显示表中的单个Get
。我似乎无法在 SQL DW 中使用提示,那么还有什么可以尝试的吗?
感谢您的任何见解。