我有两个表。这是SQL Server 2008 R2:存储和索引varchar列,其中大部分值将是数字
dbo.Source:的sourceID(INT),SOURCENAME(VARCHAR(10))
SourceId|SourceName
1|Source1
2|Source2
3|Source3
dbo.SourceIdentifiers:ID(INT)的sourceID(INT)外键Source.SourceId,SOURCEIDENTIFIER VARCHAR(30)
Id|SourceId|SourceIdentifier
1|1|123
2|1|456
3|2|789
4|2|789
5|2|789
6|3|ABC
正如你看到的我是从多个来源接收数据,大部分的来源有一个号码作为识别码,但其中一些有字符了。所以我的SourceIdentifier列需要是一个varchar。
通常会根据SourceIdentifier查询表。我可以拥有多达1亿个唯一的源标识符。我希望查询速度超快。我有几个问题:
- 如果我在SourceIdentifier列上添加一个索引,这是一个好主意吗?由于该列有大约75%的整数作为varchars存储。
- 如果不是,可以采用哪种替代方法。创建两个源标识符表,一个用于整数源和一个用于字符源?
谢谢!