过度使用Oracle With子句?

时间:2012-08-14 20:49:51

标签: sql oracle oracle11g common-table-expression

我正在使用Oracle的WITH子句为我当前的雇主编写许多报告查询,以允许自己创建简单的步骤,每个步骤都是面向数据的转换,它们相互构建以执行复杂的任务。

今天我注意到,过度使用WITH子句可能会对Oracle服务器的资源产生负面影响。

有人可以解释为什么过度使用Oracle WITH子句会导致服务器崩溃吗?或者指出一些我可以研究适当用例的文章?我开始大量使用WITH子句来为我的代码添加结构并使其更容易理解。我希望在这里有一些信息性的回答,我可以继续有效地使用它。

如果示例查询有用,我会尝试今天稍后发布。

谢谢!

1 个答案:

答案 0 :(得分:2)

基于此:http://www.dba-oracle.com/t_with_clause.htm看起来这是一种避免使用临时表的方法。但是,正如其他人会注意到的,这实际上可能意味着更重,更昂贵的查询会给数据库服务器带来额外的负担。

它可能不会“崩溃”。这有点戏剧性。更可能的是它会变慢,使用更多的内存等。这对公司的影响将取决于数据量,处理器数量,处理量(使用with或不使用)