【发布时间】:2015-11-19 09:03:20
【问题描述】:
我使用的是 SQL Server 2012。
我有一个如下所示的表格,
create table myTable
(
Id int identity(1, 1) constraint PK_myTable primary key(Id),
DateEntry date,
FundCode nvarchar(10),
Sedol nvarchar(7),
Name nvarchar(150),
Nominal int,
PriceDate date,
Price float,
PriceCcy nvarchar(3),
PriceSource nvarchar(30)
)
因此,大多数选择查询将在 dateEntry 字段和 FundCode 字段上。
所以我决定在下面创建两个索引。我想知道如果我们可以假设每个选择查询都会有一个 DateEntry 作为 where 子句的一部分,那么是否需要第一个索引?因为如果不提供 FundCode,它仍然可以使用第二个索引还是不正确?
create index IX_tblEQ_Holdings_Date on tblFI_Holdings(DateEntry)
create index IX_tblEQ_Holdings_DateFund on tblFI_Holdings(DateEntry, FundCode)
【问题讨论】:
标签: sql-server database-design sql-server-2012 database-indexes