我在Oracle中有一个包含LEFT JOIN的物化视图,需要很长时间才能更新.当我更新基础表时,运行需要63914.765秒(是的,这几乎是17个小时).
我在同一个表上使用LEFT JOIN,因为我想将数据从行转移到列.此Oracle版本中不提供pivot命令,并且在FAST REFRESH物化视图上不允许使用GROUP BY + CASE.
物化视图日志如下所示:
CREATE MATERIALIZED VIEW LOG ON Programmes_Titles
WITH PRIMARY KEY, rowid
INCLUDING NEW Values;
Run Code Online (Sandbox Code Playgroud)
Materialized View本身看起来像这样(它包含700000行,Programmes_Titles表包含900000行):
CREATE MATERIALIZED VIEW Mv_Web_Programmes
REFRESH FAST ON COMMIT
AS
SELECT
t1.ProgrammeId,
t1.Title as MainTitle,
t2.Title as SecondaryTitle,
--Primary key
t1.Title_Id as t1_titleId,
t2.Title_Id as t2_titleId,
t1.rowid as t1_rowid,
t2.rowid as t2_rowid
FROM
Programmes_Titles t1,
Programmes_Titles t2
WHERE
t1.Titles_Group_Type = 'mainTitle'
AND t1.Programme_Id = t2.Programme_Id(+) AND t2.Titles_Group_Type(+) = 'secondaryTitle'
Run Code Online (Sandbox Code Playgroud)
我使用的UPDATE语句是这样的:
UPDATE Programmes_Titles
SET Title = 'New title' …Run Code Online (Sandbox Code Playgroud) 我在Winforms ElementHost中有一个WPF窗口.我的窗口上的Tab键和箭头键没有触发KeyDown和PreviewKeyDown事件.
KeyUp和PreviewKeyUp似乎工作正常,对于大多数其他键,PreviewKeyDown也是如此,例如:AZ,0-9