日期:2014-05-17  浏览次数:20407 次

关于超大表的查询优化问题
现在遇到一个问题。

超大表的查询,一次要查询4个历史表,每个数据多过百万,查询字段也不在索引里。

索引就不考虑了。

就是确认一个字段值是否在历史表中出现过。

SELCET TOP 1 ITCODE FORM TEMP_HIS WHERE ITCODE = '12390512 122'

给个意见,怎么才能加快查询速度呢?现在在SQL客户端需要15分钟左右,WEB中调用存储过程,直接提示超时了就。

------解决方案--------------------
对于4个表,各建一个简表,保存这个信息。
------解决方案--------------------
引用:
Quote: 引用:

对于4个表,各建一个简表,保存这个信息。

常识过用视图,但结果并不好。新建表,就要考虑每月一次的大数量插入的问题了


视图其实就是对于实物表进行select,如果像你现在,没有对于实物表建立index,那么性能肯定没有进步的。
------解决方案--------------------
1楼的方法挺好的,定期或者使用触发器检查,把重复的数据记录在一个表中,按道理这个表应该很少,估计才几百行,这样查询速度很快,
------解决方案--------------------
引用:
对于4个表,各建一个简表,保存这个信息。

这个不错,你如lz觉得每个月要更新数据,其实可以数据为增量更新各个新建的简表。
定期执行,就OK。