一、动态性能视图
1、查看服务器key有效期
sql
select expired_date from v$license;
2、查看数据库版本信息
sql
select * from v$version;
3、查看数据库信息
sql
select * from V$DATABASE;
4、查看实例信息
csharp
select * from v$instance;
5、查看数据库动态视图
csharp
select * from V$DYNAMIC_TABLES;
6、查看数据库表空间
csharp
select * from V$TABLESPACE;
7、查看数据库配置参数
sql
select * from V$PARAMETER;
8、查看所有ini 参数和 dminit建库信息
csharp
select * from V$DM_INI;
9、查看归档信息
csharp
select * from V$DM_ARCH_INI;
10、查看日志信息
csharp
select * from V$RLOG
11、显示活动连接的所有信息。
sql
select * from V$CONNECT;
12、显示当前会话的具体信息
csharp
select * from V$SESSIONS;
13、显示系统当前会话的一些状态统计信息
csharp
select * from V$SESSION_SYS;
14、连接语句句柄表,用于记录 SESSION 上语句句柄的信息
csharp
select * from V$OPEN_STMT;
15、显示当前会话历史的记录信息
csharp
select * from V$SESSION_HISTORY;
16、显示当前会话所有上下文的名字空间、属性和值
csharp
select * from V$CONTEXT;
17、记录当前会话上的相关统计信息
csharp
select * from V$SESSION_STAT;
18、显示执行 SQL 的历史记录信息
当 INI 参数 ENABLE_MONITOR=1 时,显示执行 SQL 的历史记录信息;可以方便用户 经常使用的记录进行保存。
csharp
select * from V$SQL_HISTORY
19、显示所有活动事务的信息
csharp
select * from V$TRX;
20、显示事务等待信息。
csharp
select * from V$TRXWAIT
21、显示当前事务可见的所有活动事务视图信息
csharp
select * from V$TRX_VIEW;
22、显示活动的事务锁信息
csharp
select * from V$LOCK;
23、记录死锁的历史信息
csharp
select * from V$DEADLOCK_HISTORY;
二、plsql
1、创建序列
sql
CREATE SEQUENCE "STUDENTS"."PSQU"
INCREMENT BY 1
START WITH 1
MAXVALUE 10000000
MINVALUE 1
NOCYCLE
NOCACHE
ORDER;
2、创建函数
1、生成随机字符串
sql
create or replace function randStr(n in int)
return varchar as
name varchar;
result varchar:='';
begin
for i in 1..n loop
name := char(convert(integer,rand()*100));
result := concat(result,name);
end loop;
return result;
end;
2、生成随机日期函数
sql
CREATE OR REPLACE FUNCTION myRandDate
/*函数参数(可选),格式为(<参数名称 参数类型(IN/OUT/INOUT) 数据类型>{, <参数名称 参数类型(IN/OUT/INOUT) 数据类型>})*/
(startYear IN int,endYear IN int)
/*返回 数据类型*/
RETURN timestamp
AS
/*变量说明部分*/
year INT;
month int;
day int;
strDate varchar;
result timestamp;
BEGIN
year := DBMS_RANDOM.VALUE(startYear, endYear);
month := DBMS_RANDOM.VALUE(1, 12);
day := DBMS_RANDOM.VALUE(1, 28);
strDate := concat(to_char(year),'-',to_char(month),'-',to_char(day));
result := TO_DATE(strDate);
return result;
END;
3、创建存储过程
批量插入数据
sql
create or REPLACE PROCEDURE TAB_INSERT(NUM INT)
AS
CNT INT;
BEGIN
SELECT MAX("userLogin"."userID") INTO CNT FROM "userLogin";
IF CNT IS NULL THEN
CNT:=0;
END IF;
FOR I in 1..NUM
LOOP
INSERT INTO "STUDENTS"."USERLOG" VALUES(PSQU.nextVal,CNT,RANDSTR(5000),myranddate(2018,2024));
COMMIT;
END LOOP;
END;
4、创建触发器
userLogin表中插入记录,对应的userLog表中也插入数据
sql
CREATE OR REPLACE TRIGGER "STUDENTS"."T_InsertUserLogin"
AFTER INSERT
ON "STUDENTS"."userLogin"
FOR EACH ROW
WHEN (1 = 1 /* 根据实际情况填写, 可选 */)
BEGIN
/*触发器体*/
INSERT INTO USERLOG("ID","USERID","CONTENT","LOGDATE") VALUES
(PSQU.nextVal,:new."userID",randstr(1000),SYSDATE);
END;