在 Oracle 数据库中可以创建多少个视图?



假设报告部门每天需要数千份报告。在 Oracle 11g 数据库中为每个视图创建一个报告是正确的方法吗?Oracle 11g 在数据库中创建视图是否有任何限制?

视图代码示例如下。

CREATE VIEW Report1DXC AS
select Phonenumber,DECODE(package, 'Package1', 'Package Normal',
'Package2', 'Package Normal',
'Package3', 'Package Premium',
'Package4', 'Package Premium',
'Package5', 'Package Normal',
'Package6', 'Package Normal',
'Package7', 'Package Premium',
'Package8', 'Package Premium',
'Package9', 'Package Normal',
'Package10', 'Package Premium',
'Package11', 'Package Premium',
'Package12', 'Package Premium') package,renewid,Sub_End_date from (
SELECT DISTINCT subs_id, ContractNo, phonenumber as Phonenumber,
Package, renewid, Sub_End_date,function_mobnum_format(phonenumber) ph_correct
FROM 
subscription_history rh
INNER JOIN sub_equipment se ON rh.subs_id = se.subs_id AND rh.contractno = se.contractno
INNER JOIN packages pk ON rh.pkid = pk.pkid
INNER JOIN sub_phones ph ON rh.subs_id = ph.subs_id and rh.contractno=ph.contractno
INNER JOIN 
(SELECT subs_id, contractno, MAX(sub_end_date) AS sub_end_date FROM subscription_history where currentid=sequenceid GROUP BY subs_id, contractno) lr
ON rh.subs_id = lr.subs_id AND rh.contractno = lr.contractno
WHERE rh.currentid=rh.sequenceid
and emodel LIKE 'DXN%'
and rh.origin='R'
and rh.pcode=09
and rh.cancellation is null
AND TRUNC(lr.sub_end_date) > '29-JAN-18'
AND TRUNC(lr.sub_end_date-5) = TRUNC(SYSDATE)
AND rh.subs_id not in (select subs_id from subscription_history where  TRUNC(sub_end_date-5) > TRUNC(SYSDATE))
and rh.subs_id not in (select subs_id from subscription_history where pkid IN ('PKID10','PKID11'))
ORDER BY rh.subs_id
)where ph_correct='OK';

恕我直言没有。 实际上,对于彼此依赖的视图过多的情况,存在未记录的参数_complex_view_merging。当您过度使用这种模式时,Oracle 优化器将简单地放弃,性能将消失。此参数以某种方式驱动其行为。

但这仍然是一种更好的方法,而不是将SQL包装到PL/SQL函数中,然后在另一个SQL中使用它们。

如果您不在视图之间创建超级复杂的依赖关系,则可以。您甚至可以限制对基础表的访问,并让用户查看他们需要查看的内容。

PS:如果您想在另一个视图中使用它们,则不应在视图中使用"排序依据"。

我会说逻辑数据库限制在这里适用。"视图"不是直接指定的,但"表"是重要的,每个数据库的表数是无限的。

虽然,正如汤姆问答所说:

。具有 100,000 个表的架构设计将是我会严重质疑的事情。我不知道有任何人类团队可以亲自设计、实施或维护这样的事情。

所以 - 创建任意数量的视图,你不会达到限制。

相关内容

  • 没有找到相关文章

最新更新