当前位置: 首页 > 面试题库 >

使用LIKE'string'vs ='string'对Oracle的性能有何影响?

谢修真
2023-03-14
问题内容

SELECT * FROM SOME_TABLE WHERE SOME_FIELD LIKE '%some_value%';

比这慢

SELECT * FROM SOME_TABLE WHERE SOME_FIELD = 'some_value';

但是呢?

SELECT * FROM SOME_TABLE WHERE SOME_FIELD LIKE 'some_value';

我的测试表明第二个和第三个示例完全相同。如果是这样,我的问题是,为什么要使用“ =”?


问题答案:

使用绑定变量时,有一个明显的区别,绑定变量应该在Oracle中用于数据仓库或其他批量数据操作以外的其他任何操作。

以下列情况为例:

SELECT * FROM SOME_TABLE WHERE SOME_FIELD LIKE :b1

Oracle在执行之前不知道:b1的值为’%some_value%’或’some_value’等,因此它将根据启发式方法估计结果的基数,并提出一个合适的计划,可能适合或可能不适合:b的各种值,例如’%A’,’%’,’A’等。

对于相等谓词,类似的问题也可能适用,但是,例如,基于列统计信息或唯一约束的存在,可能导致的基数范围更容易估计。

因此,就我个人而言,我不会开始使用LIKE来代替=。优化器有时很容易被愚弄。



 类似资料:
  • 问题内容: 我试图在接收每月数百万次页面浏览量的页面中找到一些简单的客户端性能调整。我关心的一个问题是使用CSS通用选择器()。 例如,考虑一个非常简单的HTML文档,如下所示: 通用选择器会将以上声明应用于,和元素,因为它们是文档中唯一的那些。 通常,我会从以下规则中看到更好的性能: 还是会产生完全相同的净效果? 通用选择器是否执行我可能不知道的更多工作? 我意识到该示例中的性能影响可能很小,但

  • 问题内容: 我们已经开始将spring aop用于我们应用程序的各个方面(当前的安全性和缓存)。 我的经理虽然十分了解这种技术的好处,但仍担心该技术对性能的影响。 我的问题是,你是否遇到了使用aop(特别是spring aop)引入的性能问题? 问题答案: 只要你能够控制自己的AOP,我就认为它是有效的。无论如何,我们确实确实存在性能问题,所以通过我们自己的推理,我们无法完全控制;)这主要是因为重

  • 问题内容: 我有这个JavaWeb应用程序,它可以从电子表格上传成千上万的数据,该电子表格是从上到下按行读取的。我用来在服务器端显示应用程序当前正在读取的行。 -我知道要创建一个日志文件。实际上,我正在创建一个日志文件,同时在服务器提示符下显示日志。 还有其他方法可以在提示上打印当前数据? 问题答案: 它可能会影响您的应用程序性能。大小会因您所运行的硬件类型和主机上的负载而异。 可以将其转化为性能

  • 前言 HTTPS 在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与此同时,HTTPS 也会降低用户访问速度,增加网站服务器的计算资源消耗。 本文主要介绍 https 对用户体验的影响。 HTTPS 对访问速度的影响 在介绍速度优化策略之前,先来看下 HTTPS 对速度有什么影响。影响主要来自两方面: 协议交互所增加的网络 RTT(round trip time)。 加解密相关的计算耗时。

  • 问题内容: 从pandas文档中,我收集到,唯一值索引使某些操作高效,并且偶尔可以容忍非唯一索引。 从外部看,看起来非唯一索引没有以任何方式被利用。例如,以下查询足够慢,以至于似乎正在扫描整个数据帧 (我意识到这两个查询不会返回相同的内容,这只是一个对非唯一索引的调用要慢得多的示例) 有什么办法哄骗大熊猫使用更快的查找方法,例如对非唯一索引和/或排序索引进行二进制搜索? 问题答案: 当索引是唯一的

  • 本文向大家介绍谈谈Tempdb对SQL Server性能优化有何影响,包括了谈谈Tempdb对SQL Server性能优化有何影响的使用技巧和注意事项,需要的朋友参考一下 先给大家巩固tempdb的基础知识 简介: tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象。可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用