通过将数据拆分为两个表来提高SQL性能(垂直优化)

时间:2013-12-05 16:28:58

标签: sql sql-server performance query-optimization

我有一个大约有500,000个用户的系统表。该表保存了各种服务器的配置,以及它们是否接受来自用户的登录。

TABLE Config
varchar:SocialSecurityNumber
DateTime:Date
varchar:Server
bool:Open

现在某些配置可能适用于所有用户,因此SocialSecurityNumber = *

这意味着为特定用户提取配置

select * from Config 
where SocialSecurityNumber='*' OR SocialSecurityNumber='xxx' 

假设几乎没有适用于所有SSN的配置数据,我可以将数据拆分为两个表,其中一个包含SSN = *,另一个包含特定用户。我希望MSSQL能够缓存全局表的大部分内容

select * from Config where SocialSecurityNumber='xxx'
union all
select * from ConfigGlobalSSN  

您对此类努力的体验是什么?联盟所有人都在桌子上慢吗?

0 个答案:

没有答案