用户管理
创建用户
CREATE USER USR_FUT_YHGL_CJ IDENTIFIED BY "123456789";
设置用户的缺省表空间
CREATE TABLESPACE TBS_FUT_YHGL_BKJ DATAFILE 'FUT_BKJ_CJ02.dbf' SIZE 128;
CREATE USER USR_FUT_YHGL_BKJ IDENTIFIED BY "123456789" DEFAULT TABLESPACE TBS_FUT_YHGL_BKJ;
限制用户使用的最大存储空间
CREATE USER USR_FUT_YHGL_ZDKJ IDENTIFIED BY "123456789" DISKSPACE LIMIT 64;
修改用户
ALTER USER USR_FUT_YHGL_CJ LIMIT SESSION_PER_USER 10, CONNECT_IDLE_TIME UNLIMITED;
删除用户
DROP USER USR_FUT_YHGL_CJ;
表空间管理
创建表空间,可以设定为固定大小和自动扩展
CREATE TABLESPACE FUT_BKJ_CJ02 DATAFILE 'FUT_BKJ_CJ02.dbf' SIZE 128 AUTOEXTEND ON;
向表空间增加数据文件
ALTER TABLESPACE FUT_BKJ_CJ01 ADD DATAFILE 'FUT_BKJ_CJ03.dbf' SIZE 128;
创建表和索引到新建表空间
CREATE TABLE TAB_FUT_BKJ_BSY (ID INT) TABLESPACE FUT_BKJ_BSY;
CREATE INDEX IDX_FUT_BKJ_BSY ON TAB_FUT_BKJ_BSY (ID) TABLESPACE FUT_BKJ_BSY;
修改表空间
--修改表空间名字
ALTER TABLESPACE FUT_BKJ_CJ01 RENAME TO FUT_BKJ_CJ03;
--修改数据文件的大小
ALTER TABLESPACE FUT_BKJ_CJ03 RESIZE DATAFILE 'FUT_BKJ_CJ01.dbf' TO 200;
删除表空间
DROP TABLESPACE FUT_BKJ_CJ02;
行列混合表空间
CREATE TABLESPACE TS1 DATAFILE '/dmdata/DAMENG/TS1.dbf' SIZE 128 WITH HUGE PATH '/dmdata/DAMENG/HUGE1';
CREATE TABLE AS SELECT创建表
CREATE TABLE ADV_GJGN_CRET2 AS SELECT * FROM ADV_GJGN_CRET1;
DROP TABLE IF EXISTS删除表
DROP TABLE IF EXISTS ADV_GJGN_DTIE;
修改用户的缺省表空间
ALTER USER USR_ADV_GJGN_QSBKJ DEFAULT TABLESPACE TS_ADV_GJGN_QSBKJ;
修改用户的索引缺省表空间
ALTER USER USR_ADV_GJGN_SYBKJ DEFAULT INDEX TABLESPACE TS_ADV_GJGN_SYBKJ;
执行计划操作符耗时统计
--开启ET功能统计 SQL 语句执行过程中每个操作符的实际开销
SP_SET_PARA_VALUE(1,'ENABLE_MONITOR',1);
SP_SET_PARA_VALUE(1,'MONITOR_SQL_EXEC',1);
--执行SQL语句,记录执行号。
SELECT COUNT(*) FROM TEST WHERE c3<1000000;
--查看对应SQL语句开销
ET(704);
闪回查询
--修改UNDO_RETENTION参数
sp_set_para_double_value(1,'UNDO_RETENTION',900);
--连接数据库成功后,执行如下SQL命令
SET TIME ON;
CREATE TABLE TEST_FLASH(id int,NAME VARCHAR2(100));
--开启闪回功能,执行如下SQL命令
SP_SET_PARA_VALUE(1,'ENABLE_FLASHBACK',1);
--插入数据,执行如下SQL命令
INSERT INTO TEST_FLASH VALUES(1,'TEST1');
INSERT INTO TEST_FLASH VALUES(2,'TEST2');
COMMIT;
SELECT * FROM TEST_FLASH;
--删除数据,执行如下sql命令,记录删除时间点
DELETE FROM TEST_FLASH WHERE ID=1;
COMMIT;
SELECT * FROM TEST_FLASH;
--因为误操作,误删除id等于1的数据,想查看原来的数据,执行如下sql命令
SELECT * FROM TEST_FLASH WHEN TIMESTAMP '2023-08-16 10:40:46';
--恢复被删除的数据,执行如下sql命令
CREATE TABLE TEST_FLASH_BAK AS SELECT * FROM TEST_FLASH WHEN TIMESTAMP '2023-08-16 10:40:46';
SELECT * FROM TEST_FLASH_BAK WHERE ID=1;