Java Oracle-组合字段和搜索-性能
我有一个查询,其结尾如下(我是从java执行此操作的): 也可以这样做(我将从用户处获得以下格式)Java Oracle-组合字段和搜索-性能,java,sql,oracle,Java,Sql,Oracle,我有一个查询,其结尾如下(我是从java执行此操作的): 也可以这样做(我将从用户处获得以下格式) 我读过一些关于将格式转换到数据库会影响性能的文章。这就是我使用第一个查询的原因。哪种方法最好?这太奇怪了 第二种方法将强制进行完整的表扫描,并将表中的每一行构造成连接形式,以便根据匹配字符串进行测试。如果这些值中的任何一个为空,它也将中断。它还将使您无法利用您测试的三个字段中可能存在的任何索引 第一种方法更好。这太奇怪了 第二种方法将强制进行完整的表扫描,并将表中的每一行构造成连接形式,以便根据匹
我读过一些关于将格式转换到数据库会影响性能的文章。这就是我使用第一个查询的原因。哪种方法最好?这太奇怪了 第二种方法将强制进行完整的表扫描,并将表中的每一行构造成连接形式,以便根据匹配字符串进行测试。如果这些值中的任何一个为空,它也将中断。它还将使您无法利用您测试的三个字段中可能存在的任何索引
第一种方法更好。这太奇怪了 第二种方法将强制进行完整的表扫描,并将表中的每一行构造成连接形式,以便根据匹配字符串进行测试。如果这些值中的任何一个为空,它也将中断。它还将使您无法利用您测试的三个字段中可能存在的任何索引
第一种方法更好。因为第二种方法基于字符串连接操作,所以如果索引出现在任何列上,它都不会使用索引。因此,第一种方法更好
此外,如果区号不匹配,则无需检查第一种方法中包含的cons_no和cat_code。由于第二种方法基于字符串连接操作,因此如果索引出现在任何列上,它将不使用索引。因此,第一种方法更好
此外,如果区号不匹配,则无需检查第一个进近中包含的cons_no和cat_代码。如果某些数据库值中有破折号,则第二个可能也会受到“破折号注入”的影响。第二个可能也会受到“破折号注入”的影响如果某些数据库值中有破折号。
WHERE
c.area_code = ?
AND
c.cons_no = ?
AND
c.cat_code = ?
WHERE
c.area_code||'-'||c.cons_no||'-'||c.cat_code=?