需求比较简单,送分题:
有5帐表t_main、t_msg、t_desc、t_evt、t_mas;
t_main是实际数据表,数据量在20万左右,其他几个是信息表,数据量400左右;需要联合5帐表创建一个试图,试图最终效果是,希望看到各种实现方式,以及性能优劣:
pk_id message description event manager update
表名:t_main
pk_id msgid descid evtid masid update
主键 表名:t_msg
msgid message
主键 消息内容 表名:t_desc
descid description
主键 表名:t_evt
evtid event
主键 表名:t_mas
masid manager
主键
有5帐表t_main、t_msg、t_desc、t_evt、t_mas;
t_main是实际数据表,数据量在20万左右,其他几个是信息表,数据量400左右;需要联合5帐表创建一个试图,试图最终效果是,希望看到各种实现方式,以及性能优劣:
pk_id message description event manager update
表名:t_main
pk_id msgid descid evtid masid update
主键 表名:t_msg
msgid message
主键 消息内容 表名:t_desc
descid description
主键 表名:t_evt
evtid event
主键 表名:t_mas
masid manager
主键
select pk_id, message, description, event, manager from
t_main left join t_msg on t_main.msgid=t_msg.msgid
left join t_desc on t_main.descid=t_desc.descid
left join t_evt on t_main.evtid=t_evt.evtid
left join t_mas on t_main.masid=t_mas.masid;
create or replace view t_vw as
select pk_id, message, description, event, manager
from t_main t
left join t_msg a on t.msgid=a.msgid
left join t_desc b on t.descid=b.descid
left join t_evt c on t.evtid=c.evtid
left join t_mas d on t.masid=d.masid;
--如果直接使用t_mas.masid(表名.列,可能会出现重复数据,或是根本就执行不了)
create or replace view t_vw as
select t.pk_id, a.message, b.description, c.event, d.manager,t.update
from t_main t
left join t_msg a on t.msgid=a.msgid
left join t_desc b on t.descid=b.descid
left join t_evt c on t.evtid=c.evtid
left join t_mas d on t.masid=d.masid;
--如果直接使用t_mas.masid(表名.列,可能会出现重复数据,或是根本就执行不了)