问题描述
嗨,
我需要从2个不同的模式获取表的数据。所以我创建了一个视图,它将有2个不同模式的2个表的联合。
例如: 创建或替换视图acct_details为
选择column1,column2。。表1中的列n
联盟
选择列n1,列2。。表2 @ database_link_name中的列n
实际上,Table1和Table2两个表都有巨大的数据,例如银行等的所有帐户详细信息。
因此,vie wis需要花费大量时间来加载并在新创建的视图上进行选择需要更多时间来执行。
请帮助我如何设计视图,以便提高性能。
我需要从2个不同的模式获取表的数据。所以我创建了一个视图,它将有2个不同模式的2个表的联合。
例如: 创建或替换视图acct_details为
选择column1,column2。。表1中的列n
联盟
选择列n1,列2。。表2 @ database_link_name中的列n
实际上,Table1和Table2两个表都有巨大的数据,例如银行等的所有帐户详细信息。
因此,vie wis需要花费大量时间来加载并在新创建的视图上进行选择需要更多时间来执行。
请帮助我如何设计视图,以便提高性能。
专家解答
两个模式还是两个数据库?
对于两个模式,您只需要:
选择column1,column2。。schema1.Table1中的列n
联盟
选择column1,column2。。schema2.Table2中的列n
如果用于两个 * 数据库 *,则需要数据库链接。
* 如果 * 每个表中的行是互斥的 (即,两者之间没有行重叠),那么您应该将 “UNION” 更改为 “UNION ALL”
这应该会带来好处。
如果仍然很慢,那么您可能需要考虑将远程数据刷新到本地数据库的实体化视图,以便两个表现在都是本地的。
对于两个模式,您只需要:
选择column1,column2。。schema1.Table1中的列n
联盟
选择column1,column2。。schema2.Table2中的列n
如果用于两个 * 数据库 *,则需要数据库链接。
* 如果 * 每个表中的行是互斥的 (即,两者之间没有行重叠),那么您应该将 “UNION” 更改为 “UNION ALL”
这应该会带来好处。
如果仍然很慢,那么您可能需要考虑将远程数据刷新到本地数据库的实体化视图,以便两个表现在都是本地的。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




