1、解锁用户
如果用户被锁,用用户登陆的时候会提示:
- ORA-28000: the account is locked
解决:
sys/*** as sysdba 登陆后
alter user scott account unlock;
2、orcle自带工具
1)、%ORACLE_HOME%\rdbms\admin\utlxplan.sql 创建plan_table
2)、%ORACLE_HOME%\sqlplus\admin\plustrace.sql 创建plustrace角色
3)、%ORACLE_HOME%\rdbms\admin\spcreate.sql 安装statspack
3、收集执行计划:
- exec dbms_stats.gather_table_stats(user,'gtt2');//用户某表的执行计划
- exec dbms_stats.gather_schema_stats(user,gather_temp=>true);//用户所有表,包括临时表
dbms_stats会自动提交事务的
4、创建临时表,oracle临时表是静态表
1)、会话级临时表,提交事务后数据仍然可见
- create global temporary table gtt1(x number) on commit preserve rows;
2)、事务级临时表,提交事务后数据就被删除了。用此种方式创建的临时表,无法用dbms_stats收集执行计划
- create global temporary table gtt2(x number) on commit delete rows;
5、v$statname系统里所有统计项信息,v$mystat当前会话统计信息,v$sesstat实例启动以来所有会话的统计信息,v$sysstat保存所有session的累计值
6、闪回flashback
1)、获取当前闪回号
- SQL>variable scn number;
- SQL>exec :scn := dbms_flashback.get_system_change_number;
2)、获取表闪回时段的数据
- SQL>select * from t as of scn :scn;
3)、把表恢复到某个闪回时刻,从执行的sql看闪回命令会回滚当前会话未提交事务。另,如果表被删除了,此处就无法闪回了(?)。下边此处出错表明未启用移动行
- SQL>flashback table t to scn :scn;
- SQL> flashback table t to scn 80975242;
- flashback table t to scn 80975242
- *
- 第 1 行出现错误:
- ORA-08189: 因为未启用行移动功能, 不能闪回表<span style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;">
- </span>
- SQL>alter table t enable row movement;
- SQL>set transaction isolation level serializable;
8、游标共享
- SQL>alter session set cursor_sharing=force;
但是共享有副作用,同一条sql在cursor_sharing=force/exat是后产生了两条不同的执行计划,substr的参数化是不是有点多余呢?
- <span style="white-space: normal;"><span style="white-space: pre;">SQL> select substr(dname,1,2) from dept;</span></span>
- SUBS
- ----
- AC
- RE
- SA
- OP
- SQL> select sql_text from v$sql where sql_text like '%substr(dname%';
- SQL_TEXT
- ----------------------------------------
- select substr(dname,1,2) from dept
- select substr(dname,:"SYS_B_0",:"SYS_B_1") from dept
9、从spfile创建pfile
- SQL>create pfile='e:\pfile.txt' from spfile;
10、修改spfile中参数的值
- SQL> alter system set pga_aggregate_target = 256m comment='test' scope=both ;
- 系统已更改。
11、获取当前服务器进程id
- SQL>select p.spid from v$session s left join v$process p on s.paddr = p.addr
- where s.audsid=userenv('sessionid');
12、延迟约束
- SQL> create table t2(
- x int constraint x_not_null not null deferrable,
- y int constraint y_not_null not null,
- z varchar2(30));
- SQL> set constraint x_not_null deferred;
- SQL> insert into t2 values(null,3,'x');
- 已创建 1 行。
- SQL> commit;
- commit
- *
- 第 1 行出现错误:
- ORA-02091: 事务处理已回退
- ORA-02290: 违反检查约束条件 (SCOTT.X_NOT_NULL)
13、当前会话使用的undo段大小
- SQL>select b.value from v$statname a left join v$mystat b on a.statistic# = b.statistic# where a.name = 'redo size';
14、获取当前时间和当前cpu时间
- SQL>create or replace procedure get_cpu_time as
- begin
- dbms_output.put_line('cpu time: ' || dbms_utility.get_cpu_time);
- dbms_output.put_line('time: ' || dbms_utility.get_time);
- end;
- /
- 过程已创建。
- SQL>exec get_cpu_time;
- cpu time: 420
- time: 3512889
- PL/SQL 过程已成功完成。
15、获取最热块
- select tch,file#,dbablk,
- case when obj = 4294967295
- then 'rbs/compat segment'
- else(select max('(' || object_type||')' || owner || '.' || object_name) ||
- decode(count(*),1,'','maybe!')
- from dba_objects
- where data_object_id = x.obj)
- end what
- from (
- select tch,file#,dbablk,obj
- from x$bh
- where state <> 0
- order by tch desc) x
- where rownum <= 5;
16、会话锁定关系
- select
- (select username from v$session where sid = a.sid) blocker,
- a.sid,
- ' is blocking ',
- (select username from v$session where sid = b.sid) blockee,
- b.sid
- from v$lock a,v$lock b
- where a.block = 1
- and b.request > 0
- and a.id1 = b.id1
- and a.id2 = b.id2;
17、查看数据库是否强制写事务日志redo log
- SQL> select force_logging from v$database;
- FORCE_
- ------
- NO
18、查看数据库事务日志redo log模式
- SQL> select log_mode from v$database;
- LOG_MODE
- ------------------------
- NOARCHIVELOG
19、查看sql语句生成redo log的size之一:set autotrace on,会看到统计信息里有
20、查看sql语句生成redo log的size之二,通过此语句在sql执行前后获取,然后计算出来。
- SQL> select ms.value from v$mystat ms left join v$statname sn on sn.statistic# = ms.statistic# where sn.name = 'redo size';
- VALUE
- ----------
- 1198620
21、查看当前事务使用的undo blocks数量:
- SQL> select t.used_ublk from v$transaction t left join v$session s on s.taddr = t.addr where s.sid = (select sid from v$mystat where rownum = 1);
- USED_UBLK
- ----------
- 18
22、...
转http://yueyemaitian.iteye.com/blog/1185413
相关推荐
expimp导出导入工具的使用.doc,Oracle 单记录函数.doc,Oracle 的内存管理.ppt,Oracle9I计划管理表空间.pdf,Oracle备份与恢复.doc,Oracle返回树关系列表Sql.doc,Oracle里时间的应用.doc,Oracle体系结构概述....
oracle系列之网络服务配置手册 oracle server listener tnsnames
ORACLE SQL性能优化系列 ORACLE SQL性能优化系列 ORACLE SQL性能优化系列
Oracle系列培训教程系列,该系列一共7个
Oracle系列培训教程之五:逻辑结构
oracle 10g application server系列之安装攻略
日常工作中积累的oracle数据库开发经验积累,全是可用的经典案例和说明
系列之五:ORACLE EBS 系统主数据管理(D )
Oracle 医疗卫生行业系列资料之一 Oracle 医疗卫生行业系列资料,该系列共有6个资料。这是第1个 第二个在:http://download.csdn.net/source/1197786 第三个在:http://download.csdn.net/source/1197790 第四个在:...
oracle 工作积累 oracle 工作积累 oracle 工作积累
Oracle系列教材Oracle系列教材Oracle系列教材Oracle系列教材Oracle系列教材Oracle系列教材
Oracle系列.docx
oracle查询一个月之内数据,例如查询某个月用户使用短信多少跳
系列之一:ORACLE_EBS_的前世今生
Oracle系列培训教程系列,该系列一共7个
oracle函数介绍 1 著名函数之单值函数 pdf oracle函数介绍 2 非著名函数之单值函数 pdf oracle函数介绍 3 著名函数之聚合函数 pdf oracle函数介绍 4 非著名函数之聚合函数 pdf oracle函数介绍 5 分析函数简述 ...
系统学习ORACLE ERP EBS的详细资料
oracle系列培训教材之一安装及配置网络配置与连接PPT教案.pptx
Oracle系列培训教程系列,该系列一共7个
【源代码】《涂抹Oracle-三思笔记之一步步学Oracle》