关于超大表的查询优化问题
现在遇到一个问题。
超大表的查询,一次要查询4个历史表,每个数据多过百万,查询字段也不在索引里。
索引就不考虑了。
就是确认一个字段值是否在历史表中出现过。
SELCET TOP 1 ITCODE FORM TEMP_HIS WHERE ITCODE = '12390512 122'
给个意见,怎么才能加快查询速度呢?现在在SQL客户端需要15分钟左右,WEB中调用存储过程,直接提示超时了就。
------解决方案--------------------对于4个表,各建一个简表,保存这个信息。
------解决方案--------------------
视图其实就是对于实物表进行select,如果像你现在,没有对于实物表建立index,那么性能肯定没有进步的。
------解决方案--------------------1楼的方法挺好的,定期或者使用触发器检查,把重复的数据记录在一个表中,按道理这个表应该很少,估计才几百行,这样查询速度很快,
------解决方案--------------------对于4个表,各建一个简表,保存这个信息。
这个不错,你如lz觉得每个月要更新数据,其实可以数据为增量更新各个新建的简表。
定期执行,就OK。