如何在Oracle中组织查询?

时间:2012-01-24 14:57:45

标签: sql oracle oracle10g

我有一个基本查询(感谢Justin Cave!)

现在我必须使用该查询并将其多次连接到不同的表和子查询以对我们的数据进行检查。将来可能会添加其他查询。因此,最终可能会对数据进行二十多项检查,结果将在SSRS报告中进行总结。如果这是在MSSQL中,我会将查询结果放入临时表,最后在临时表上运行select。做尽可能多的研究我已经决定最好的方法是使用WITH子句并与其他临时表和查询连接以获得结果,然后将所有查询联合起来以获得我的结果。然而,这似乎是非常混乱和大。我使用全局临时表,但它们在Oracle中似乎不受欢迎。也许你有更好的模块化和组织方法?

根据我们的许可协议,我们无法在oracle中添加新表(所以我被告知),但我们可以添加视图,存储过程和函数。

提前致谢!

2 个答案:

答案 0 :(得分:1)

如果不禁止使用物化视图,您可以使用它们来获得临时表的所有优点。

但除非您需要在几个不同的查询中使用子查询的结果,否则您可以根据需要为每个查询使用尽可能多的独立子查询,并对它们进行操作,就好像这些是表格一样。大多数时候你会有相当不错的查询计划。

此外,在我看来,使用全局临时表来加速分析10x是值得的 - 只要您不将敏感数据暴露给不信任的人。

答案 1 :(得分:0)

将它们全部滚动到各种存储过程中,并将它们封装在Oracle包中。

然后,您可以为应用程序的每个逻辑区域提供一个包。例如。 PKG_USERS,PKG_ACCOUNTS等

跟踪更改也更容易,因为您可以将这些更改置于版本控制之下,并一目了然地查看所有更改。

它适合我,希望它可以帮助你...