查询1:Select * from table where fieldname = 'abc'
查询2:Select * from table where fieldname = 'XY�'
返回零结果(数据库中不存在abc
和XY�
)。
一旦我运行查询2然后重新运行查询1,如果查询1在同一会话中运行(大约2000ms而不是早期的150ms),则查询1开始花费更长的时间。
我的fieldname已编入索引(非聚集索引)。
我正在使用Adaptive Server Enterprise / 12.5.4
我试图为两者做一个展示计划。两者都显示相同的结果。
我担心:
由于
答案 0 :(得分:1)
我发现了问题。 TIBCO EMS对unicode字符(非ascii)进行了一些更改,这会导致sybase中的查询计划更改为某些非优化的查询计划。在Java中使用预准备语句时,查询计划会被缓存,因此将来所有查询都会变慢。