使用JDBC,Oracle 11g进行慢查询

时间:2015-07-15 05:25:51

标签: oracle performance jdbc quotes

我在Oracle中遇到问题;当我以这种方式执行查询时,有一个表DIT_NUMBERS_ASIG:

SELECT * 
FROM DIT_NUMBERS_ASIG 
WHERE number_asig = '1234567'; //Quotes

立即执行查询;但如果我执行此查询:

SELECT * 
FROM DIT_NUMBERS_ASIG 
WHERE number_asig = 1234567; //Without Quotes

查询速度很慢,大约需要2分钟。

问题是当我尝试从Java应用程序(使用JDBC)执行此语句时:

SELECT * 
FROM DIT_NUMBERS_ASIG 
WHERE number_asig = '1234567';

查询很慢,就像引号不存在一样。

如何执行查询但使用引号,因为如果查询没有引号

1 个答案:

答案 0 :(得分:0)

我在SQLFiddle上提到的执行查询时并没有看到任何重大差异。我已经在一个表中添加了几行,并尝试通过传递上面提到的值(带和不带引号)来检索特定行。我认为没有任何区别。

<强> SQL Fiddle Demo

可能的解决方案:。

  1. 考虑在表格中添加索引。
  2. 指定列名,而不是仅在*语句中使用SELECT
  3. 您也可以考虑检查Oracle Doc是否有SQL调优。