我正在运行ETL。下面有一个简单的查询
SELECT a FROM table WHERE b=? AND c=? AND d=?
其中b
和c
为varchar2
,d
为integer
。有一个b
,c
和d
的索引。
使用MySQL,此查询运行得非常快。但是在SQL Server和Oracle上运行速度非常慢。
对于SQL Server,我在JDBC连接中传递参数sendStringParametersAsUnicode=false
。现在工作正常。
见这些 -
但是对于Oracle来说,我仍然无法弄清楚问题并且运行缓慢。有什么想法吗?
我猜它缺少索引,因为它正在使用SQL Server。在SQL Server中,JDBC正在将字符串参数转换为阻止索引使用的nvarchar
。