日期:2014-05-16 浏览次数:20401 次
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: 因为未启用行移动功能, 不能闪回表
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的参数化是不是有点多余呢?
SQL> select substr(dname,1,2) from dept;
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
S