重构大数据库视图

时间:2015-03-11 06:55:35

标签: sql oracle refactoring views

我是实习生(这意味着我没有决策权,我知道sql和pl / sql)并且让任务重构了一些巨大的数据库视图

基本上问题是所有视图都在大视图上继续查询所有数据而其他视图进一步过滤(查看所有查询数据的字母和电子邮件)这些视图没有记录,所以我需要找出他们做什么并重建它们,以便不会成为从数据库中获取所有内容的查询。

我的问题是那些视图(顺便说一下大约600行)是非常有线的(据我所知,非程序员写的)我不知道从哪里开始,第一件事是什么?你会建议什么?

1 个答案:

答案 0 :(得分:0)

这是其中一个“伸出手指”的问题;几乎不可能说出你应该做什么,因为它完全取决于用于创建视图的sql,表中的数据,表的结构等等。

我的建议是从基本视图开始,看看你可以做些什么来帮助实现性能 - 例如,你能使用子查询因子吗?你能早点改变东西吗?可以用分析查询替换事物吗?

也要打破局面。如果原始视图中有一个子查询,您认为可以对其进行优化,那么很容易比较两个不同sql语句的结果 - 如果它们匹配,通常表明您已正确重写语句(并非总是如此)但是,所以要小心!彻底测试!)

将复杂的查询分解为其组成部分还应该让您能够更轻松地解决它所做的事情!