我有一个记录用户访问的表,这张表的数据每天会由job更新,从服务器上获取前一天的数据,然后我想统计当天的用户访问量,并放入实体化视图中
不知下面我建立的是否正确,请高手指点
/*数据表*/
CREATE TABLE ACCESSLOG
(
LOGDATE DATE,
AREAIDVARCHAR2(60 BYTE),
LOGID VARCHAR2(4000 BYTE)
);
ALTER TABLE ACCESSLOG ADD (
CONSTRAINT ACCESSLOG_PK
PRIMARY KEY
(LOGID);
/*建立日志*/
CREATE MATERIALIZED VIEW LOG ON ACCESSLOG;
/*建立实体化视图*/
CREATE MATERIALIZED VIEWMV_ACCESSLOG
REFRESH FORCE ON DEMAND WITH ROWID
AS
select count(1) acc_count, to_date(TO_CHAR(LOGDATE, 'yyyy-mm-dd'),'yyyy-mm-dd') acc_date,areaid
from ACCESSLOG group by to_date(TO_CHAR(LOGDATE, 'yyyy-mm-dd'),'yyyy-mm-dd'),areaid;
/* 创建刷新组 */
BEGIN
DBMS_REFRESH.MAKE (
name => 'REFRESH_GRP',
list => '',
next_date => SYSDATE,
interval => 'trunc(SYSDATE + 1)+7/24');
END;
/
commit;
/* 将物化视图添加到刷新组 */
BEGIN
DBMS_REFRESH.ADD (
name => 'REFRESH_GRP',
list => 'MV_ACCESSLOG',
lax => TRUE);
END;
/
commit; |