1000w以上的数据sqlserver存储方案,该怎么解决
1000w以上的数据sqlserver存储方案
我每天有几千万的数据,每天0点清空表中的所有记录,但在白天的时候,我要查询表中有没有指定的数据是否存在,需要多表查询,,但查看的速度有点慢,做了索引,不知道有没有什么好的方法?我现在打开新建10张表,然后把数据按一定的算法,分别存到这10张表中,在查询时,再查指定的表,这样会不会减少一些数据库的压力?
------解决方案--------------------
每天0点清空表中数据,就是说你表中数据是在一天的时间内新增到千万级的喽,这样的话,即使有索引,效果也不大的,因为表数据更新频繁,索引碎片过多,而千万级的表又不可能不停的更新索引。。。
分开存储1张表倒是一个方法,可以一试
------解决方案--------------------
建议:
1.可以考虑用分区表.
2.查询时加(nolock)选项.
3.清空用truncate table.
4.定时重建或重整索引.
------解决方案--------------------
首先你说要减轻数据库的压力,那么加强监控,看看当前的数据库的压力如何,比如:
cpu的使用率维持在多少,内存使用率,以及平均磁盘等待队列是多少,这些是总体的压力,然后具体到语句,你的语句一般需要运行多久? 看看能否优化?
当你truncate 表后,再次插入到表中后,对索引到不会有太大的影响,而是你需要更新一下统计信息,让sql server有正确的统计信息,做出正确的执行计划,这样才能让查询执行的更快。
我每天有几千万的数据,每天0点清空表中的所有记录,但在白天的时候,我要查询表中有没有指定的数据是否存在,需要多表查询,,但查看的速度有点慢,做了索引,不知道有没有什么好的方法?我现在打开新建10张表,然后把数据按一定的算法,分别存到这10张表中,在查询时,再查指定的表,这样会不会减少一些数据库的压力?
------解决方案--------------------
每天0点清空表中数据,就是说你表中数据是在一天的时间内新增到千万级的喽,这样的话,即使有索引,效果也不大的,因为表数据更新频繁,索引碎片过多,而千万级的表又不可能不停的更新索引。。。
分开存储1张表倒是一个方法,可以一试
------解决方案--------------------
建议:
1.可以考虑用分区表.
2.查询时加(nolock)选项.
3.清空用truncate table.
4.定时重建或重整索引.
------解决方案--------------------
首先你说要减轻数据库的压力,那么加强监控,看看当前的数据库的压力如何,比如:
cpu的使用率维持在多少,内存使用率,以及平均磁盘等待队列是多少,这些是总体的压力,然后具体到语句,你的语句一般需要运行多久? 看看能否优化?
当你truncate 表后,再次插入到表中后,对索引到不会有太大的影响,而是你需要更新一下统计信息,让sql server有正确的统计信息,做出正确的执行计划,这样才能让查询执行的更快。