如何优化此SQL查询

时间:2012-08-29 19:41:15

标签: sql oracle11g

我正在处理显示组件的JSF页面。我想问你如何优化这个SQL查询。我在家,我无法访问Oracle服务器来测试查询:

SqlStatementSmall = "SELECT a.* FROM (SELECT b.*, rownum rn "
    + " FROM (select y.name, y.serialnumber, y.location, y.type, y.powerwatt,"
    + " y.dateadded, y.datedeployed, y.weightkg, y.uform, y.zonecage"
    + " FROM component x, componentstats y where x.componentstatsid = y.componentstatsid"
    + " and y.componenttypeid = 1122 ORDER BY %s %s) b"
    + " WHERE rownum <= ?) a" 
    + " WHERE rn > ?";

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

你好,

        select y.name, y.serialnumber, y.location, y.type, y.powerwatt,y.dateadded, y.datedeployed, y.weightkg, y.uform, y.zonecage, rownum rn
        from component x
        inner join componentstats y on x.componentstatsid = y.componentstatsid 
        where y.componenttypeid = 1122
        and rownum <= ?
        and rownum > ?
        ORDER BY %s %s

更新 注意:这不起作用,请参阅@Justin Cave评论,谢谢

答案 1 :(得分:1)

当人们尝试在没有执行计划和任何统计信息的情况下进行查询性能调优时,我总是感到惊讶。你应该做的第一件事就是制定执行计划。