什么情况下适合表分区?

目前有一张表,行数在9千万左右,后续还会有增长,但表只有一个字段,类似于订单号一样的字符窜,而且这个字段是唯一的 字段类型是varchar(16)  

目前一条查询语句 :if exists(select top 1 字段 from 表 where 字段='条件值')  

这个判断在一个批处理中,每次执行批处理都会查询一次,而且这个批处理被调用非常频繁,现在监控到这条语句在查询的时候有时候会很相对慢。

后续我把这个表备份下载到本地,做了表分区,发现在本地测试,指定分区查询和普通条件查询差距很大,指定分区查询会快很多【表已经分好区】 但是用了SQL自带的评估,和正式服务器上的没有做分区的查询评估 发现评估系数 差不多,所以我现在担心 在服务器把这个表做了分区 会不会没有太多提升,因为这个表毕竟只有一个字段 而且还是主键。


交互式爱情
浏览 852回答 2
2回答

萧十郎

单个字段表还不至于分表吧,我是用分表的场景是根据客户编号,每一千个客户的产品信息分一张表,这样每个产品信息表里面的数据基本都在几百万到上千万不等。 但表的话,肯定会有压力的。我帮你算了一下 ,你这里9千万的数据量, 如果全部缓存在内存的话为不到1.4G ,所以你可以考虑放在内存里。效率低下的问题,可能是因为varchar索引的原因,如果订单号是int型是最好的,不过你现在的业务是不会使用int型了。关注下,同时期待好的解决方案。

动漫人物

还没做过 关注一下
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server