我试图优化的Oracle查询,看起来像这样:优化字符串搜索Oracle查询
select * from upcTable where upc like '%567%'
查询速度快像567小型搜索词,但它可以得到,只要15位其中可能需要约1.5秒。无论如何加快这一点?
我试着做这样
select * from
(select * from rldb.productmaster where upc like '%567%')
where upc like '%380%'
select * from rldb.productmaster where upc like '%567380%'
东西在这种情况下,项数,如果差不多的,但第一个例子是有点快。但是,对于15位数字使用相同的技术时,速度会更快,但速度太慢。
没有理由为什么'%567%'会比'%567380%'更快地返回所有行(因为它必须扫描相同的源数据量)。它可能看起来更快,因为匹配的字符串越短,查找匹配的机会就越多,因此它将返回前面的第一个匹配项。如果您正在通过电话簿寻找名字中带有“J”字符的人,那么您的名单将比搜索名称中带有“JU”字符的名单更快。 – 2011-06-16 00:27:22