Oracle 为什么这个Sql查询被卡住了?

Oracle 为什么这个Sql查询被卡住了?,oracle,Oracle,我试图从前端编辑一行,查询被卡住了,查询运行正常,没有UPPER,但当我应用UPPER时,它被卡住了,没有任何错误 查询如下: String editquery = "UPDATE ENV_SERVER_DETAILS SET " + "SERVER_NAME=? , HOPBOX_IP=? , ENV_NAME=? , REGION=? , PASSWORD=? , DELETE_FLAG='Y' , SUPERUSER=? , SUPERPASSW=? ," + " COMPO

我试图从前端编辑一行,查询被卡住了,查询运行正常,没有
UPPER
,但当我应用
UPPER
时,它被卡住了,没有任何错误

查询如下:

String editquery = "UPDATE ENV_SERVER_DETAILS SET " +
   "SERVER_NAME=? , HOPBOX_IP=? , ENV_NAME=? , REGION=? , PASSWORD=? , DELETE_FLAG='Y' , SUPERUSER=? , SUPERPASSW=? ," +
    " COMPONENT='' , SPECIFICATION_OR_DBNAME=? , IP_ADDRESS=? , COMMENTS='' , LAST_UPDATED_BY=? ," +
    "LAST_UPDATED_ON=to_date(to_char(SYSDATE,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') ," +
    "OTHER_DETAILS=? " +
    "WHERE UPPER(SERVER_NAME) = UPPER(?) and MOTS_ID = ?";

我已经应用了
upper
,因为数据库中的一些服务器是小写的

我可以建议在此列的
upper
格式上添加
索引

CREATE INDEX SERVER_NAME ON ENV_SERVER_DETAILS (UPPER(SERVER_NAME));
问题是,即使此列上有索引,
上限
正在消除它的使用,因此-查询速度很慢


也就是说,如果“卡住”的意思是慢。

我可以建议在该列的
上部
格式上添加
索引

CREATE INDEX SERVER_NAME ON ENV_SERVER_DETAILS (UPPER(SERVER_NAME));
问题是,即使此列上有索引,
上限
正在消除它的使用,因此-查询速度很慢


如果“卡住”是指速度慢。

请对“卡住”进行更多解释……“卡住”是否意味着所花的时间比您预期的要长?通常需要多长时间?现在需要多长时间?还是永远不会回来?如果速度较慢,很可能是因为您正在停止使用索引(sagi的答案确实解决了这个问题);如果它从未返回,您确定受影响的行未被来自另一个会话的更新锁定吗?花费了大量时间请对“卡住”进行更多解释……“卡住”是否意味着它比您预期的时间长得多?通常需要多长时间?现在需要多长时间?还是永远不会回来?如果速度较慢,很可能是因为您正在停止使用索引(sagi的答案确实解决了这个问题);如果它从未返回,您确定受影响的行未被来自另一个会话的更新锁定吗?需要花费大量时间