like '%%'是不会使用索引的,会对tab作全表扫描如果查询结果占表的小部分
由于cola是主键,楼主可以把cola拿出来,单独建只有cola列的表tab2,pctfree设为0,并用CACHE选项缓冲
提高tab2全表扫描的效率sql改写为
select t1.colb from tab t1, tab2 t2 where t1.cola=t2.cola and t2.cola like '%x%'
由于cola是主键,楼主可以把cola拿出来,单独建只有cola列的表tab2,pctfree设为0,并用CACHE选项缓冲
提高tab2全表扫描的效率sql改写为
select t1.colb from tab t1, tab2 t2 where t1.cola=t2.cola and t2.cola like '%x%'
请问pctfree设为0是什么意思啊?怎样设置CACHE选项缓冲?
如果要提高查询速度建议可以先做一个表分析(不过分析的时候也慢)
分析后查询速度需要遍历表的就快多了
ColaPart Cola
abc abc
bc abc
c abc
……
ColaPart字段放的是一个Cola拆分后的值,Cola有多长就有多少条记录。
字段ColaPart建一个索引。
然后:
SELECT colb
FROM tab
WHERE cola IN (SELECT Cola FROM ColaIdx WHERE ColaPart LIKE 'x%')
怎么分析阿
这段是做什么用的?分析吗?