日期:2014-05-18  浏览次数:20611 次

如何提高sql的查询性能?
我要在一张大约有30万条记录的表中查询几十条符合条件的记录,我已在创建了索引(是以查询条件里的字段为索引的),但为什么建立索引后与没有建立索引的时候,查询速度差不多呢?按理说建立索引后,查询速度应该有明显提高才是呀.怎么会没有改变呢?要如何提高sql查询性能呢?

------解决方案--------------------
LTRIM(RTRIM(DocumentID)) < > '0 '
LTRIM(RTRIM(ReceiverList)) LIKE '%,120,% ' 
这两个条件都会减慢速度的
(FlowFlag= '0 ' or FlowFlag= '1 ' or FlowFlag= '10 ') 改成 FlowFlag in ('0 ','1 ','10 ') 应该可以略微提高速度

如果V_Office_SendStep是视图,而且牵涉到多个数据量比较大的表,那应该会有更好的解决办法
------解决方案--------------------
可对flowflag建索引,

LTRIM(RTRIM(DocumentID)) < > '0 ' 
LTRIM(RTRIM(ReceiverList)) LIKE '%,120,% '

建议程序写入数据时,先作处理,查询时不要加ltrim与rtrim