我正在尝试改进数据库的物理设计,以优化某些进程的性能,但我没有´我不知道怎样才能改善这种看法:
CREATE OR REPLACE VIEW CP_aragna AS (
SELECT nick, 100*sum(nuls)/count('c') pct_aragna
FROM (SELECT nick,club,title,director,
NVL2(msg_date,0,1) nuls
FROM (SELECT member nick, club, title, director
FROM proposals)
LEFT OUTER JOIN comments
USING(nick,club,title,director)
)
GROUP BY nick
HAVING sum(nuls)>0
) order by pct_aragna desc WITH READ ONLY;
我想创建一个物化视图或索引
1条答案
按热度按时间06odsfpq1#
简化查询:
oracle有一个很好的优化器,所以这可能不会影响性能。
这表明您有一个由四部分组成的外键关系。对于此版本,请确保在上有索引
comments(nick, club, title, director, msg_date)
. oracle可能会利用proposals(nick)
对于group by
也。然而,这种复杂的外键关系很容易出错。我建议您使用自动生成的整数主键来连接表。这将对性能产生一些影响,因为这四个列在
comments
--节省了这四列所需的大部分空间。