首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >特定查询可以直接运行,也可以在对其进行任何更改时运行,但在当前状态下运行时间更长。

特定查询可以直接运行,也可以在对其进行任何更改时运行,但在当前状态下运行时间更长。
EN

Stack Overflow用户
提问于 2011-01-25 16:07:57
回答 1查看 117关注 0票数 2

调试几天后的主要更新:

我运行几个类似于以下内容的查询:

代码语言:javascript
运行
复制
SELECT RTRIM(part) as part 
FROM tableP pm 
LEFT join tableS s on pm.id = s.id 
INNER JOIN tableC cm ON cm.id = pm.id 
WHERE name = 'NGW'  AND  status NOT IN ('NL', 'Z') 
GROUP BY RTRIM(part), isnull(s.value,0) 
ORDER BY isnull(s.value,0) 

它在Java中运行,如下所示:

代码语言:javascript
运行
复制
    PreparedStatement select = con.prepareStatement(
        "SELECT RTRIM(part) as part" +
        "FROM tableP pm " +
        "LEFT JOIN tableS s ON pm.id= s.id " +
        "INNER JOIN tableC cm ON cm.id= pm.id " +
        "WHERE name =? AND  status NOT IN ('NL', 'Z') " + 
        "GROUP BY RTRIM(part), isnull(s.value,0) " +
        "ORDER BY isnull(s.value,0) " );
    select.setString(1, name);
    ResultSet rs = select.executeQuery();
    while(rs.next()){
          ... Data is Loaded...

这些查询在Java应用程序中运行良好。突然间,这个表单的3到4个查询从占用不到一秒钟的时间转到超过一分钟。

我从复制了准确的查询,当直接在数据库上运行时,它在不到一秒钟的时间内就会预先形成。我开始对查询进行更改,发现对查询的任何更改都会将其返回到1秒的性能,甚至在语句之间添加一个空格。但是,当我将它返回到它原来的精确状态时,它将花费60+秒。

核心问题:--所以,我有一个修复程序,但是,什么会导致查询以不同的方式运行,即使只做了像空格一样小的更改?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-28 20:28:23

执行计划是否可能已损坏?您能尝试显式清除计划缓存吗?http://msdn.microsoft.com/en-us/library/aa175244(v=sql.80).aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4795825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档