帮忙看一下一个关于数据库连接的SQL语句

[复制链接]
查看11 | 回复1 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
在TollDB_Aix数据库下有下面一个表
create table GLB_LANESTATUS
(
RECORDTYPE NUMBER(2),
NETWORKCHAR(8) not null,
STATIONCHAR(16) not null,
LANE CHAR(10) not null,
SEGMENTCHAR(6) not null,
TIME CHAR(28) not null,
OPERATORID CHAR(10),
SHIFTNUMBER(1),
LANESTATUS NUMBER(1),
DEVICESTATUS CHAR(48),
TIMEFLAG CHAR(28)
)
tablespace TS_DATA
alter table GLB_LANESTATUS
add constraint PK_GLB_LANESTATUS primary key (NETWORK,STATION,SEGMENT,LANE,TIME)
using index
tablespace INDX
在本地有一个表tbl_rtLaneStatus和上面的表 结构相同
在本地创建了一个数据库连接TollDB_AIX
执行下面的语句会产生表死锁
insert into tbl_rtlanestatus
select * from GLB_LANESTATUS@TollDB_AIX
where
(NETWORK,STATION,LANE ,
SEGMENT ,TIME) in
( select NETWORK,STATION,LANE ,
SEGMENT ,max(TIME) from GLB_LANESTATUS@TollDB_AIX
group by select NETWORK,STATION,LANE ,SEGMENT
)

请各位大侠指点
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
有复杂的远程查询的情况,最好把查询部分做成一个VIEW
(分布的复杂查询可能导致优化器不能选择最好的执行计划)
远程:
create view v as select * from GLB_LANESTATUS
where
(NETWORK , STATION , LANE ,
SEGMENT , TIME ) in
( select NETWORK , STATION , LANE ,
SEGMENT , max(TIME) from GLB_LANESTATUS
group by select NETWORK , STATION , LANE , SEGMENT
)

本地:
insert into tbl_rtlanestatus
select * from v@TollDB_AIX;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行