在sql查询中使用'HINTS'

时间:2011-05-23 18:53:31

标签: sql oracle ranking query-hints

我很抱歉,如果我听起来很傻,但我没有长时间使用sql提示,我正在为学校进行一些章节审查工作。我无法将头缠在他们身边。

例如,我在oracle的测试数据库中做过的一个问题是“显示每日拍卖总数的前10%。我的答案是(有效):

SELECT DAYOFWEEK, DAILY_TOTAL
FROM (
    SELECT T.DAYOFWEEK,
      SUM(AF.TOTAL_NUM_OF_AUCTIONS) AS DAILY_TOTAL,
      CUME_DIST() OVER (ORDER BY SUM(AF.TOTAL_NUM_OF_AUCTIONS) ASC) AS Percentile
    FROM TIME_DIM T, AUCT_FACT AF
    WHERE AF.TIME_ID = T.TIME_ID
    GROUP BY T.DAYOFWEEK)
WHERE Percentile > .9
ORDER BY Percentile DESC;

我现在的问题是,它说,我尝试使用不同的查询来实现此输出,我问我的老师,他们说他们的意思是使用提示,我查看我对他们的注释和它真的没有彻底解释如何使用提示优化此查询,或以更简单的方式进行。

真的很感激任何帮助

=)谢谢你们!

1 个答案:

答案 0 :(得分:1)

提示是您在查询中包含的选项,用于指示要使用的索引的成本基础优化程序。 看起来每日总计是可以实现摘要索引的东西。