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

Oracle中的INSTR和LIKE有什么区别?

胡野
2023-03-14
问题内容

有人可以告诉我OracleINSTRLIKEOracle之间的区别吗?

Oracle10g中哪一个更快?


问题答案:

这取决于数据和模式。如果使用like 'a%',则Oracle可以使用BTree索引来查找匹配项,因为Oracle可以使用模式的开头搜索btree,然后仅考虑子树。

这不适用于LIKE '%a'您,但您可以通过创建一个计算列来解决此问题,该列将反转您要搜索的列中的所有值(因此您会得到上面的模式)。

如果您使用散列索引,那么Oracle几乎无能为力,只能扫描整个索引。当只有几个不同的值时,它可能会更快。

我不确定是否INSTR可以使用索引,因为它没有固定的锚。

就像所有性能问题一样:

  1. 用一些实际的测试数据填充数据库并运行一些测试。
  2. 当您 了解 瓶颈时,请始终以一种可以在以后轻松优化的方式编写代码
  3. 永远不要猜测可能会变慢。您有90%的时间会错。总是测量。


 类似资料:
  • 问题内容: 我想知道两个运算符之间以及在Oracle中是否存在任何差异。 在某些情况下,它们可以给出不同的结果或不同的性能吗? 问题答案: 没有,功能上完全没有区别。 (对于所有其他DBMS都是一样的-它们大多数都支持两种样式): 这是当前的SQL参考:https : //docs.oracle.com/database/121/SQLRF/conditions002.htm#CJAGAABC S

  • 本文向大家介绍在PowerShell中,–Match,-Like和–Contains运算符有什么区别?,包括了在PowerShell中,–Match,-Like和–Contains运算符有什么区别?的使用技巧和注意事项,需要的朋友参考一下 上面提到的所有上述3个运算符(Match, Like, Contains)都是PowerShell中的比较运算符。Match和Like运算符几乎相似,唯一的区别

  • oracle之间的区别是什么。AQ和oracle。jdbc。aq (https://docs.oracle.com/cd/E11882_01/appdev.112/e13995/oracle/jdbc/aq/package-summary.html, https://docs.oracle.com/cd/E16338_01/appdev.112/e13995/overview-summary.ht

  • 问题内容: 例子: 和 返回不同的结果 问题答案: http://oracle.ittoolbox.com/groups/technical-functional/oracle- dev-l/difference-between-yyyy-and-rrrr- format-519525 YY允许您仅检索一年中的两位数字,例如1999年的99。其他数字(19)自动分配给当前世纪。RR通过四舍五入将两

  • 问题内容: 我一直认为Java 中的运算符用于验证其两个布尔操作数是否均为,并且该&运算符用于对两种整数类型进行按位运算。 最近我知道,也可以使用运算符来验证其两个布尔操作数是否均为,唯一的区别是即使LHS操作数为false,它也会检查RHS操作数。 Java中的运算符是否在内部重载?还是在这背后有其他概念? 问题答案: <-验证两个操作数 <-停止评估第一个操作数是否为false,因为结果为fa

  • 问题内容: JavaScript中的&和&&有什么区别? 示例代码: 似乎&&是一个逻辑上的“和”,如果两个都为true,则总是为我提供第二个值。 但是什么是&? (顺便说一下,&&在Python中似乎是“ and”;&在Python中似乎是&。) 问题答案: 是按位AND 该运算符期望 两个数字 并重新调整一个 数字。 如果它们不是数字,则将其强制转换为数字。 注意: 在Javascript中,