`

使用plsql后一些常见的操作贴出来

阅读更多
/**创建一个访问分析表*/
create table AccessAnalyser(
       accessAnalyserId NUMBER(11) primary key,
       projectName VARCHAR2(32),
       actionName VARCHAR2(128),
       actionstatus VARCHAR2(32),
       invokeTime NUMBER(11),
       ipAddress VARCHAR2(16),
       logFileName VARCHAR2(128),
       actionDate DATE,
       createdDate DATE
);
/**创建一个序列作为访问分析表的主键*/
create sequence S_AccessAnalyser
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
/**清空一个表的所有数据,注意与delete的区别*/
truncate table accessanalyser;
/**重命名一个列字段名称*/
ALTER TABLE accessanalyser RENAME COLUMN logFileName to fileName;
/**删除一个表的一个列字段*/
alter table accessanalyser drop column fileName;
/**在一个表里面增加一列字段*/
alter table AccessAnalyser add actionstatus VARCHAR2(32);
/**设置外键,这里假设访问分析表(AccessAnalyser)包含帐户表(Accounts)的主键作为外键*/
alter table AccessAnalyser add accountsId NUMBER(11);
ALTER TABLE AccessAnalyser ADD CONSTRAINT accessAccountsFk
FOREIGN KEY (accountsId) REFERENCES Accounts(accountsId);
/**删除一个外键约束,以及删除一个外键关系项*/
ALTER TABLE AccessAnalyser drop CONSTRAINT accessAccountsFk;
alter table AccessAnalyser drop column accountsId;

/**给一个列字段加上注释*/
comment on column AccessAnalyser.invokeTime is '访问响应时间';
/**给一个表加上注释*/
comment on table AccessAnalyser is '访问分析表';
/**给多个字段创建索引,并设置顺序*/
create index accessurlstatus on accessanalyser (actionstatus asc,actionName desc);

/**查看非正常访问情况*/
select * from accessanalyser t
where t.projectname = 'portal' and t.actionstatus != '200'
order by  t.invoketime desc;
/**查看非正常响应的状态码以及访问响应情况*/
select t.actionstatus as 状态编码,count(*) as 访问次数,avg(t.invoketime) as 平均响应时间
from accessanalyser t
where t.projectname = 'portal' and t.actionstatus != '200'
group by  t.actionstatus;
/**只统计action链接的访问次数和访问时间*/
select t.actionname as 链接地址,count(*) as 访问次数,max(t.invoketime) as 最大响应时间,min(t.invoketime) as 最小响应时间,avg(t.invoketime) as 平均响应时间
from AccessAnalyser t
where t.projectname = 'portal' and t.actionname like '%.do'
group by t.actionname order by avg(t.invoketime) desc;
/**统计所有链接类型的访问次数和访问时间*/
select t.actionname as 链接地址,count(*) as 访问次数,max(t.invoketime) as 最大响应时间,min(t.invoketime) as 最小响应时间,avg(t.invoketime) as 平均响应时间
from AccessAnalyser t where t.projectname = 'portal'
group by t.actionname having avg(t.invoketime)>50 order by avg(t.invoketime) desc;
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics