`

Oracle系列之一 点滴积累

 
阅读更多

1、解锁用户

如果用户被锁,用用户登陆的时候会提示:

Sql代码  收藏代码
  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、收集执行计划:   

Sql代码  收藏代码
  1. exec dbms_stats.gather_table_stats(user,'gtt2');//用户某表的执行计划  
Sql代码  收藏代码
  1. exec dbms_stats.gather_schema_stats(user,gather_temp=>true);//用户所有表,包括临时表  

 dbms_stats会自动提交事务的

4、创建临时表,oracle临时表是静态表

1)、会话级临时表,提交事务后数据仍然可见

Sql代码  收藏代码
  1. create global temporary table gtt1(x number) on commit preserve rows;  

2)、事务级临时表,提交事务后数据就被删除了。用此种方式创建的临时表,无法用dbms_stats收集执行计划

Sql代码  收藏代码
  1. 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代码  收藏代码
  1. SQL>variable scn number;  
Sql代码  收藏代码
  1. SQL>exec :scn := dbms_flashback.get_system_change_number;  

2)、获取表闪回时段的数据

Sql代码  收藏代码
  1. SQL>select * from t as of scn :scn;  

3)、把表恢复到某个闪回时刻,从执行的sql看闪回命令会回滚当前会话未提交事务。另,如果表被删除了,此处就无法闪回了(?)。下边此处出错表明未启用移动行

Sql代码  收藏代码
  1. SQL>flashback table t to scn :scn;  
Sql代码  收藏代码
  1. SQL> flashback table t to scn 80975242;  
  2. flashback table t to scn 80975242  
  3.                 *  
  4. 第 1 行出现错误:  
  5. ORA-08189: 因为未启用行移动功能, 不能闪回表<span style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;">  
  6. </span>  
Sql代码  收藏代码
  1. SQL>alter table t enable row movement;  
7、设置当前事务级别,如何设置会话级的事务隔离level,如何查询当前事务隔离级别,如何查询当前会话级事务隔离级别?
Sql代码  收藏代码
  1. SQL>set transaction isolation level serializable;  

8、游标共享

Sql代码  收藏代码
  1. SQL>alter session set cursor_sharing=force;  

但是共享有副作用,同一条sql在cursor_sharing=force/exat是后产生了两条不同的执行计划,substr的参数化是不是有点多余呢?

Sql代码  收藏代码
  1. <span style="white-space: normal;"><span style="white-space: pre;">SQL> select substr(dname,1,2) from dept;</span></span>  
  2. SUBS  
  3. ----  
  4. AC  
  5. RE  
  6. SA  
  7. OP  
  8.   
  9. SQL> select sql_text from v$sql where sql_text like '%substr(dname%';  
  10.   
  11. SQL_TEXT  
  12. ----------------------------------------  
  13. select substr(dname,1,2) from dept  
  14. select substr(dname,:"SYS_B_0",:"SYS_B_1"from dept  

 9、从spfile创建pfile

Sql代码  收藏代码
  1. SQL>create pfile='e:\pfile.txt' from spfile;  

 10、修改spfile中参数的值

Sql代码  收藏代码
  1. SQL> alter system set pga_aggregate_target = 256m comment='test' scope=both ;  
  2.   
  3. 系统已更改。  

 11、获取当前服务器进程id

Sql代码  收藏代码
  1. SQL>select p.spid from v$session s left join v$process p on s.paddr = p.addr   
  2. where s.audsid=userenv('sessionid');  

12、延迟约束

Sql代码  收藏代码
  1. SQL> create table t2(  
  2.     x int constraint x_not_null not null deferrable,  
  3.     y int constraint y_not_null not null,  
  4.     z varchar2(30));  
Sql代码  收藏代码
  1. SQL> set constraint x_not_null deferred;  
Sql代码  收藏代码
  1. SQL> insert into t2 values(null,3,'x');  
  2. 已创建 1 行。  
  3. SQL> commit;  
  4. commit  
  5. *  
  6. 第 1 行出现错误:  
  7. ORA-02091: 事务处理已回退  
  8. ORA-02290: 违反检查约束条件 (SCOTT.X_NOT_NULL)  

  13、当前会话使用的undo段大小

Sql代码  收藏代码
  1. 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代码  收藏代码
  1. SQL>create or replace procedure get_cpu_time as  
  2.      begin   
  3.           dbms_output.put_line('cpu time: ' || dbms_utility.get_cpu_time);  
  4.         dbms_output.put_line('time: ' || dbms_utility.get_time);  
  5.     end;  
  6.     /  
  7.   
  8. 过程已创建。  
  9.   
  10. SQL>exec get_cpu_time;  
  11. cpu time: 420  
  12. time: 3512889  
  13.   
  14. PL/SQL 过程已成功完成。  

  15、获取最热块

 

Sql代码  收藏代码
  1. select tch,file#,dbablk,  
  2.     case when obj = 4294967295  
  3.     then 'rbs/compat segment'  
  4.     else(select max('(' || object_type||')' || owner || '.' || object_name) ||   
  5.         decode(count(*),1,'','maybe!')  
  6.         from dba_objects  
  7.         where data_object_id = x.obj)  
  8.     end what  
  9. from (  
  10.     select tch,file#,dbablk,obj   
  11.     from x$bh  
  12.     where state <> 0  
  13.     order by tch desc) x  
  14. where rownum <= 5;   

 16、会话锁定关系

Sql代码  收藏代码
  1. select   
  2.     (select username from v$session where sid = a.sid) blocker,  
  3.     a.sid,  
  4.     ' is blocking ',  
  5.     (select username from v$session where sid = b.sid) blockee,  
  6.     b.sid  
  7. from v$lock a,v$lock b  
  8. where a.block = 1   
  9.     and b.request > 0  
  10.     and a.id1 = b.id1  
  11.     and a.id2 = b.id2;  

17、查看数据库是否强制写事务日志redo log

 

Sql代码  收藏代码
  1. SQL> select force_logging from v$database;  
  2.   
  3. FORCE_  
  4. ------  
  5. NO  

18、查看数据库事务日志redo log模式

 

Sql代码  收藏代码
  1. SQL> select log_mode from v$database;  
  2.   
  3. LOG_MODE  
  4. ------------------------  
  5. NOARCHIVELOG  

19、查看sql语句生成redo log的size之一:set autotrace on,会看到统计信息里有

20、查看sql语句生成redo log的size之二,通过此语句在sql执行前后获取,然后计算出来。

Sql代码  收藏代码
  1. SQL> select ms.value from v$mystat ms left join v$statname sn on sn.statistic# = ms.statistic# where sn.name = 'redo size';  
  2.   
  3.      VALUE  
  4. ----------  
  5.    1198620  

21、查看当前事务使用的undo blocks数量:

Sql代码  收藏代码
  1. 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);  
  2.   
  3.  USED_UBLK  
  4. ----------  
  5.         18  

22、...

转http://yueyemaitian.iteye.com/blog/1185413

分享到:
评论

相关推荐

    Oracle点滴积累

    expimp导出导入工具的使用.doc,Oracle 单记录函数.doc,Oracle 的内存管理.ppt,Oracle9I计划管理表空间.pdf,Oracle备份与恢复.doc,Oracle返回树关系列表Sql.doc,Oracle里时间的应用.doc,Oracle体系结构概述....

    oracle系列培训教程

    1. **Oracle简介**(Oracle系列培训教程之一:oracle简介.doc):这部分教程通常会涵盖Oracle的历史、版本演化,以及Oracle数据库在企业级应用中的地位。它可能会介绍Oracle数据库的基本组件,如数据块、表空间、...

    达内内部oracle系列教程

    达内的内部Oracle系列教程,是针对这一核心IT技术进行深入讲解的宝贵资源,旨在帮助学习者掌握Oracle的精髓,提升数据库管理和编程技能。 一、Oracle数据库基础 Oracle数据库系统的基础包括数据模型、数据库结构和...

    ORACLE SQL性能优化系列

    ORACLE SQL性能优化系列 ORACLE SQL性能优化是数据库管理员和开发者非常关心的一个话题。为了提高数据库的性能,ORACLE 提供了多种优化技术。下面我们将详细介绍 ORACLE SQL 性能优化系列中的一些重要知识点。 一...

    Oracle系列培训教程之一: oracle简介.doc

    ### Oracle系列培训教程知识点概览 #### 一、Oracle公司及产品概述 Oracle,寓意“甲骨文”,作为全球第二大软件公司,自1979年起便深耕于数据库技术领域,率先推出了基于SQL标准的关系数据库产品。Oracle不仅以其...

    【Oracle点滴积累】Oracle 19c安装Critical Patch Update for January 2023

    OPatch 12.2.0.1.36 for DB 19.0.0.0.0 (Jan 2023)

    Oracle积累.chm

    日常工作中积累的oracle数据库开发经验积累,全是可用的经典案例和说明

    Oracle四大宝典之一:Oracle Sql基础 中文版

    第三章 ORACLE SQL 单行函数 第四章 从多表中查询数据 第五章 用组函数合计数据 第六章 子查询 第七章 操纵数据 第八章 创建和管理表 第九章 内置约束 第十章 创建视图 第十一章 其他数据库对象 第十二章 控制用户...

    系列之五:ORACLE EBS 系统主数据管理(D )

    系列之五:ORACLE EBS 系统主数据管理(D )

    Oracle 医疗卫生行业系列资料之一

    Oracle 医疗卫生行业系列资料之一 Oracle 医疗卫生行业系列资料,该系列共有6个资料。这是第1个 第二个在:http://download.csdn.net/source/1197786 第三个在:http://download.csdn.net/source/1197790 第四个在:...

    Oracle系列培训教材

    Oracle是全球最广泛使用的商业数据库管理系统之一,以其高效、稳定和强大的功能著称。这套教材涵盖了Oracle的各个方面,包括但不限于数据库基础、SQL语言、数据库管理、性能优化、安全策略以及备份与恢复等。 首先...

    oracle系列培训教程

    Oracle是世界上最广泛使用的数据库管理系统之一,它以其稳定性、可扩展性和功能强大而闻名。本"Oracle系列培训教程"旨在为初学者提供一个全面的Oracle学习平台,帮助大家掌握Oracle的基本操作和管理技能。 首先,...

    系列之一:ORACLE-EBS-的前世今生

    系列之一:ORACLE_EBS_的前世今生

    ORACLE函数介绍 全系列中文

    oracle函数介绍 1 著名函数之单值函数 pdf oracle函数介绍 2 非著名函数之单值函数 pdf oracle函数介绍 3 著名函数之聚合函数 pdf oracle函数介绍 4 非著名函数之聚合函数 pdf oracle函数介绍 5 分析函数简述 ...

    oracle系列培训教材之一安装及配置网络配置与连接PPT教案.pptx

    oracle系列培训教材之一安装及配置网络配置与连接PPT教案.pptx

    oracle查询一个月之内数据

    根据提供的标题、描述、标签及部分内容,我们可以了解到本篇文章主要关注的是如何在Oracle数据库中查询一个月内的数据。这里的关键在于日期范围的确定以及如何利用Oracle的内置函数来完成这一任务。接下来,我们将...

    oracle ebs系列帮助文档

    具体到文件名"oracle ebs系列",我们可以推测这可能是一个包含多个子主题的文档集合,覆盖了Oracle EBS的多个模块。例如,可能会有专门针对财务模块的文档,详细讲解如何进行账务处理、预算控制、报表生成等;供应链...

    oracle系列培训.ppt

    初步认识Oracle的组成, oracle架构的基础知识 使用Oracle进行开发,如建立Oracle连接,PL/SQL的使用等 PowerDesign,PL/SQL Developer等工具的使用

Global site tag (gtag.js) - Google Analytics