oracle v$sql中语句截断的解决方法及相关动态视图搜集

有时候想看看软件后台数据库到底执行了什么语句。比如大的erp系统,我们在查询的时候,后台执行了

什么语句或者过程都存储在v$sql表中。但是当sql语句很长的时候就出现了截断显现。
比如
select sql_text
from v$sql;
其中有一条不完整的sql语句:
 SELECT LSWLDW.LSWLDW_WLDWBH as CustomersCode,
LSWLDW.LSWLDW_DWMC as CustomersName,LSWLDW.LSWLDW_DWLB as CustomerSorts
,LSDWLB_LBMC AS CustomerSortName,LSWLDW.LSWLDW_DQBH as CustomerAreas
,LSDQZD_DQMC AS CustomerAreaName,   LSWLDW.HelpTag
, LSWLDW.LSWLDW_JC as ShortName,nvl(LSWLDW.LSWLDW_SH,' ') as SH
, LSWLDW.IsDetail as Detail,LSWLDW.Layer, LSWLDW.OfTrade
,nvl(LSWLDW.LSWLDW_CJDW,' ') as LSWLDW_CJDW, LSWLDW.OfTrade AS OfTradeCode
,nvl(OfTradeItem."NAME",' ') AS OfTradeName
,nvl(OwnerType."NAME",' ') AS OwnerType
From LSWLDW LEFT OUTER JOIN LSDWLB ON LSWLDW.LSWLDW_DWLB = LSDWLB.LSDWLB_LBBH
LEFT OUTER JOIN CodeItems OfTradeItem ON LSWLDW.OfTrade=OfTradeItem.Code AND

OfTradeItem.SetID='A003'
LEFT OUTER JOIN CodeItems OwnerType ON LSWLDW.OwnerType=OwnerType.Code AND

OwnerType.SetID='A004'
LEFT OUTER JOIN LSDQZD ON LSWLDW.LSWLDW_DQBH = LSDQZD.LSDQZD_DQBH  where 1=1
and LSWLDW_TYBZ='0' and LSWLDW.LSWLDW_WLDWBH in
 (select LSWLDW_WLDWBH from   
 (select Rownum rn,LSWLDW_WLDWBH from 
      (select LS
select LS下面的语句就被截断了.

第一种解决方法:通过sql语句实现

我们查找该语句的sql_id或者hash_value
select sql_text,sql_id,hash_value
from v$sql

结果为:
      sql语句    3fvcnc7ngu0gp 3908895221

通过查询v$sqltext显示完整的sql语句

select sql_text from v$sqltext
where hash_value='3908895221'
order by piece;

或者
from v$sqltext
where sql_id='3fvcnc7ngu0gp'
order by piece;


查询出来的结果到文本编辑器中整理格式就可以了.


第二种方法:使用sqlplus

在V$sql中有sql_fulltext字段,它存储这完整的sql,字段类型是clob

首先设置sqlplus

set heading off
set long 40000

其次输入查询语句
select sql_fulltext from v$sql where sql_id='3fvcnc7ngu0gp';
或者使用语句
select dbms_lob.substr(sql_fulltext) from v$sql where sql_id='3fvcnc7ngu0gp';

就能够得出完整的sql。

第三种解决方法:使用第三方工具

在V$sql中有sql_fulltext字段,它存储这完整的sql,字段类型是clob.
使用pl/sql dev 直接打开就能看到完整的代码.
一般的第三方oracle工具够有次功能。

下面是完整的sql语句:

 SELECT LSWLDW.LSWLDW_WLDWBH as CustomersCode, LSWLDW.LSWLDW_DWMC as CustomersNa
me,LSWLDW.LSWLDW_DWLB as CustomerSorts,LSDWLB_LBMC AS CustomerSortName,LSWLDW.LS
WLDW_DQBH as CustomerAreas,LSDQZD_DQMC AS CustomerAreaName,   LSWLDW.HelpTag, LS
WLDW.LSWLDW_JC as ShortName,nvl(LSWLDW.LSWLDW_SH,' ') as SH, LSWLDW.IsDetail as
Detail,LSWLDW.Layer, LSWLDW.OfTrade,nvl(LSWLDW.LSWLDW_CJDW,' ') as LSWLDW_CJDW,
LSWLDW.OfTrade AS OfTradeCode,nvl(OfTradeItem."NAME",' ') AS OfTradeName,nvl(Own
erType."NAME",' ') AS OwnerType From LSWLDW LEFT OUTER JOIN LSDWLB ON LSWLDW.LSW
LDW_DWLB = LSDWLB.LSDWLB_LBBH LEFT OUTER JOIN CodeItems OfTradeItem ON LSWLDW.Of
Trade=OfTradeItem.Code AND OfTradeItem.SetID='A003'LEFT OUTER JOIN CodeItems Own
erType ON LSWLDW.OwnerType=OwnerType.Code AND OwnerType.SetID='A004' LEFT OUTER
JOIN LSDQZD ON LSWLDW.LSWLDW_DQBH = LSDQZD.LSDQZD_DQBH  where 1=1 and LSWLDW_TYB
Z='0' and LSWLDW.LSWLDW_WLDWBH in  (select LSWLDW_WLDWBH from     (select Rownum
 rn,LSWLDW_WLDWBH from        (select LSWLDW_WLDWBH from lswldw  where 1=1 and L

SWLDW_TYBZ='0' order by lswldw_wldwbh ) where Rownum <= 12    ) where rn >= 1 )
ORDER BY LSWLDW.LSWLDW_WLDWBH。

如果还有好的方法,请赐教。谢谢!

v$sqlarea,v$sql,v$sqltext提供的sql语句区别?
来源:本站整理 作者:佚名 时间:2006-08-02 20:46:33

  v$sqltext
  存储的是完整的SQL,SQL被分割
  
  SQL> desc v$sqltext
  Name Null? Type
  ----------------------------------------- -------- ----------------------------
  ADDRESS RAW(4) ---------
  HASH_VALUE NUMBER --------- 和 address 一起唯一标志一条sql
  COMMAND_TYPE NUMBER
  PIECE NUMBER ---------- 分片之后的顺序编号
  SQL_TEXT VARCHAR2(64) -------------- 注意长度
  
  v$sqlarea --------- 存储的SQL 和一些相关的信息,比如累计的执行次数,逻辑读,物理读等统计信息
  SQL> desc v$sqlarea
  Name Null? Type
  ----------------------------------------- -------- ----------------------------
  SQL_TEXT VARCHAR2(1000)
  SHARABLE_MEM NUMBER
  PERSISTENT_MEM NUMBER
  RUNTIME_MEM NUMBER
  SORTS NUMBER
  VERSION_COUNT NUMBER
  LOADED_VERSIONS NUMBER
  OPEN_VERSIONS NUMBER
  USERS_OPENING NUMBER
  FETCHES NUMBER
  EXECUTIONS NUMBER
  USERS_EXECUTING NUMBER
  LOADS NUMBER
  FIRST_LOAD_TIME VARCHAR2(38)
  INVALIDATIONS NUMBER
  PARSE_CALLS NUMBER
  DISK_READS NUMBER
  BUFFER_GETS NUMBER
  ROWS_PROCESSED NUMBER
  COMMAND_TYPE NUMBER
  OPTIMIZER_MODE VARCHAR2(25)
  PARSING_USER_ID NUMBER
  PARSING_SCHEMA_ID NUMBER
  KEPT_VERSIONS NUMBER
  ADDRESS RAW(4)
  HASH_VALUE NUMBER
  MODULE VARCHAR2(64)
  MODULE_HASH NUMBER
  ACTION VARCHAR2(64)
  ACTION_HASH NUMBER
  SERIALIZABLE_ABORTS NUMBER
  CPU_TIME NUMBER
  ELAPSED_TIME NUMBER
  IS_OBSOLETE VARCHAR2(1)
  CHILD_LATCH NUMBER
  
  v$sql ---------- 存储的是具体的SQL 和执行计划相关信息,实际上,v$sqlarea 可以看做 v$sql 根据 sqltext 等 做了 group by 之后的信息
  
  SQL> desc v$sql
  Name Null? Type
  ----------------------------------------- -------- ----------------------------
  SQL_TEXT VARCHAR2(1000)
  SHARABLE_MEM NUMBER
  PERSISTENT_MEM NUMBER
  RUNTIME_MEM NUMBER
  SORTS NUMBER
  LOADED_VERSIONS NUMBER
  OPEN_VERSIONS NUMBER
  USERS_OPENING NUMBER
  FETCHES NUMBER
  EXECUTIONS NUMBER
  USERS_EXECUTING NUMBER
  LOADS NUMBER
  FIRST_LOAD_TIME VARCHAR2(38)
  INVALIDATIONS NUMBER
  PARSE_CALLS NUMBER
  DISK_READS NUMBER
  BUFFER_GETS NUMBER
  ROWS_PROCESSED NUMBER
  COMMAND_TYPE NUMBER
  OPTIMIZER_MODE VARCHAR2(10)
  OPTIMIZER_COST NUMBER
  PARSING_USER_ID NUMBER
  PARSING_SCHEMA_ID NUMBER
  KEPT_VERSIONS NUMBER
  ADDRESS RAW(4)
  TYPE_CHK_HEAP RAW(4)
  HASH_VALUE NUMBER
  PLAN_HASH_VALUE NUMBER
  CHILD_NUMBER NUMBER ---------- 注意这个
  MODULE VARCHAR2(64)
  MODULE_HASH NUMBER
  ACTION VARCHAR2(64)
  ACTION_HASH NUMBER
  SERIALIZABLE_ABORTS NUMBER
  OUTLINE_CATEGORY VARCHAR2(64)
  CPU_TIME NUMBER
  ELAPSED_TIME NUMBER
  OUTLINE_SID NUMBER -------------- 注意这里跟 outline 有关
  CHILD_ADDRESS RAW(4)
  SQLTYPE NUMBER
  REMOTE VARCHAR2(1)
  OBJECT_STATUS VARCHAR2(19)
  LITERAL_HASH_VALUE NUMBER
  LAST_LOAD_TIME VARCHAR2(38)
  IS_OBSOLETE VARCHAR2(1)
  CHILD_LATCH NUMBER
  
  另外注意这个
  QL> desc v$sql_plan
  Name Null? Type
  ----------------------------------------- -------- ----------------------------
  ADDRESS RAW(4)
  HASH_VALUE NUMBER
  CHILD_NUMBER NUMBER ------------ 注意这个和 v$sql 里面的相同字段
  OPERATION VARCHAR2(60)
  OPTIONS VARCHAR2(60)
  OBJECT_NODE VARCHAR2(20)
  OBJECT# NUMBER
  OBJECT_OWNER VARCHAR2(30)
  OBJECT_NAME VARCHAR2(64)
  OPTIMIZER VARCHAR2(40)
  ID NUMBER
  PARENT_ID NUMBER
  DEPTH NUMBER
  POSITION NUMBER
  SEARCH_COLUMNS NUMBER
  COST NUMBER
  CARDINALITY NUMBER
  BYTES NUMBER
  OTHER_TAG VARCHAR2(70)
  PARTITION_START VARCHAR2(10)
  PARTITION_STOP VARCHAR2(10)
  PARTITION_ID NUMBER
  OTHER VARCHAR2(4000)
  DISTRIBUTION VARCHAR2(40)
  CPU_COST NUMBER
  IO_COST NUMBER
  TEMP_SPACE NUMBER
  ACCESS_PREDICATES VARCHAR2(4000)
  FILTER_PREDICATES VARCHAR2(4000)
  
  
  实际上,看起来同样的一句SQL ,往往具有不同的执行计划
  如果是不同的数据库用户,那么相应的涉及的 对象 可能都不一样,注意v$sql 中
  OBJECT# NUMBER
  OBJECT_OWNER VARCHAR2(30)
  OBJECT_NAME VARCHAR2(64)
  OPTIMIZER VARCHAR2(40)
  
  即使是相同的数据库用户,若 session 的优化模式、session 级的参数 等不一样,执行计划也能不同。所以即使相同的sql,也可能具有不同的执行计划!
  
  v$sql join to v$sql_plan 就代表了具体的sql的执行计划,通过下面3个字段做连接
  
  ADDRESS RAW(4)
  HASH_VALUE NUMBER
  CHILD_NUMBER NUMBER
  而v$SQLAREA 忽略了 执行计划 等差异,只是在形式上sql文本看起来一样!相当于做了个聚合,是多个不同执行计划的sql的聚合和累计信息

首先,你要以dba身份登陆数据库。  
  第二,为某个用户开启sql跟踪。那个用户就是你要跟踪的、正在执行sql语句的那个用户。命令如下:  
  execute   dbms_system.set_sql_trace_in_session(sid,serial#,true)  
  其中参数的意义是,sid-会话id,serial#-序列号,这两个参数可以从v$session中得到。  
  第三,上面的命令执行成功之后数据库就自动对该用户所发出的所有sql语句进行跟踪,并把结果写在用户跟踪文件里。用户跟踪文件存放在数据库服务器上,路径请参考init.ora文件中的udump参数值。文件名为ora_sid_xxxx.trc(for   unix)或者oraxxxxx.trc(for   NT),其中xxxx文件系统进程编号,这个编号可以从v$process和v$session两个表通过关联的方式查询得到。当然你也可以简单的查看一下哪个trc文件的日期最新,哪个文件就是你要的结果了。  
  第四,如果你觉得可以了,那么就关闭对该用户的跟踪吧。  
  execute   dbms_system.set_sql_trace_in_session(sid,serial#,false)

(1).查看相关进程在数据库中的会话  
  Select   a.sid,a.serial#,a.program,   a.status   ,  
  substr(a.machine,1,20),   a.terminal,b.spid  
  from   v$session   a,   v$process   b  
  where   a.paddr=b.addr  
  and   b.spid   =   &spid;  
   
  (2).查看数据库中被锁住的对象和相关会话  
  select   a.sid,a.serial#,a.username,a.program,  
  c.owner,   c.object_name    
  from   v$session   a,   v$locked_object   b,   all_objects   c  
  where   a.sid=b.session_id   and  
  c.object_id   =   b.object_id;  
   
  (3).查看相关会话正在执行的SQL  
  select   sql_text   from   v$sqlarea   where   address   =    
  (   select   sql_address   from   v$session   where   sid   =   &sid   );  
   V$sqlarea的语句是不完整的  
  v$sqltext上可以查询到完整语句,但仅仅也是在缓冲区中的.可以结合v$session查询  
  如果想知道用户的语句.有几种办法的  
  1、跟踪  
  2、审计  
  3、Trigger  
  4、logmnr(仅仅dml)

SELECT   *   FROM   v$sqltext   ORDER   BY   1,4  
   
  这就是服务器上正在执行的完成的sql语句。

SELECT   osuser,   username,   sql_text   from   v$session   a,   v$sqltext   b  
            where   a.sql_address   =b.address   order   by   address,   piece;

V$SQLTEXT

  本视图包括Shared pool中SQL语句的完整文本,一条SQL语句可能分成多个块被保存于多个记录内。

  注:V$SQLAREA只包括头1000个字符。

V$SQLTEXT中的常用列

l         HASH_VALUE:SQL语句的Hash值

l         ADDRESS:sql语句在SGA中的地址

l         SQL_TEXT:SQL文本。

l         PIECE:SQL语句块的序号

V$SQLTEXT中的连接列

Column                                          View                                    Joined Column(s)

HASH_VALUE, ADDRESS         V$SQL, V$SESSION            HASH_VALUE, ADDRESS

HASH_VALUE. ADDRESS         V$SESSION                          SQL_HASH_VALUE, SQL_ADDRESS

示例:已知hash_value:3111103299,查询sql语句:

select * from v$sqltext

where hash_value='3111103299'

orderby piece

V$SQLAREA

  本视图持续跟踪所有shared pool中的共享cursor,在shared pool中的每一条SQL语句都对应一列。本视图在分析SQL语句资源使用方面非常重要。

V$SQLAREA中的信息列

l         HASH_VALUE:SQL语句的Hash值。

l         ADDRESS:SQL语句在SGA中的地址。

这两列被用于鉴别SQL语句,有时,两条不同的语句可能hash值相同。这时候,必须连同ADDRESS一同使用来确认SQL语句。

l         PARSING_USER_ID:为语句解析第一条CURSOR的用户

l         VERSION_COUNT:语句cursor的数量

l         KEPT_VERSIONS:

l         SHARABLE_MEMORY:cursor使用的共享内存总数

l         PERSISTENT_MEMORY:cursor使用的常驻内存总数

l         RUNTIME_MEMORY:cursor使用的运行时内存总数。

l         SQL_TEXT:SQL语句的文本(最大只能保存该语句的前1000个字符)。

l         MODULE,ACTION:使用了DBMS_APPLICATION_INFO时session解析第一条cursor时的信息

V$SQLAREA中的其它常用列

l         SORTS: 语句的排序数

l         CPU_TIME: 语句被解析和执行的CPU时间

l         ELAPSED_TIME: 语句被解析和执行的共用时间

l         PARSE_CALLS: 语句的解析调用(软、硬)次数

l         EXECUTIONS: 语句的执行次数

l         INVALIDATIONS: 语句的cursor失效次数

l         LOADS: 语句载入(载出)数量

l         ROWS_PROCESSED: 语句返回的列总数

V$SQLAREA中的连接列

Column                                          View                                                               Joined Column(s)

HASH_VALUE, ADDRESS         V$SESSION                                                     SQL_HASH_VALUE, SQL_ADDRESS

HASH_VALUE, ADDRESS         V$SQLTEXT, V$SQL, V$OPEN_CURSOR   HASH_VALUE, ADDRESS

SQL_TEXT                                   V$DB_OBJECT_CACHE                               NAME

示例:

1.查看消耗资源最多的SQL:

SELECT hash_value, executions, buffer_gets, disk_reads, parse_calls

 FROM V$SQLAREA

 WHERE buffer_gets > 10000000OR disk_reads > 1000000

 ORDERBY buffer_gets + 100 * disk_reads DESC;

2.查看某条SQL语句的资源消耗:

SELECT hash_value, buffer_gets, disk_reads, executions, parse_calls

 FROM V$SQLAREA

 WHERE hash_Value = 228801498AND address = hextoraw('CBD8E4B0');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录如下: 1 Oracle 结构组件 目标 1-2 基本结构概述 1-3 Oracle 服务器 1-4 Oracle 实例 1-5 建立连接和创建会话 1-6 Oracle 数据库 1-7 物理结构 1-8 内存结构 1-9 系统全局区(SGA) 1-10 共享池 1-12 库缓存 1-13 数据字典缓冲区 1-14 数据库缓冲区 1-15 重做日志缓冲区 1-18 大储存池 1-19 JAVA 池 1-20 程序全局区(PGA) 1-21 进程结构 1-22 用户进程 1-23 服务进程 1-24 后台进程 1-25 数据库写进程(DBWn) 1-26 日志写进程(LGWR) 1-27 系统监控器(SMON) 1-28 进程监控器(PMON) 1-29 检查点进程(CKPT) 1-30 归档进程(ARCn) 1-31 逻辑结构 1-32 执行一个 SQL 语句 1-33 小结 1-34 2 Oracle 服务器入门 目标 2-2 数据库管理工具 2-3 Oracle 通用安装程序 2-4 交互式安装 2-5 使用反应文件的非交互式安装 2-6 Oracle 数据库配置助手 2-8 最优灵活体系结构(OFA) 2-9 Oracle 软件和文件位置 2-10 数据库管理员用户 2-11 ii 数据管理员的验证方式 2-12 使用密码文件验证 2-13 SQL*PLUS 2-14 Oracle 企业管理器 2-15 Oracle 企业管理器结构:基于 JAVA 的控制台和应用程序 2-16 Oracle 企业管理器结构:管理节点 2-17 Oracle 企业管理器控制台 2-18 DBA 工具 2-19 小结 2-20 3 管理 Oracle 实例 目标 3-2 初始化参数文件 3-3 PFILE initSID.ora 3-5 PFILE 例子 3-6 SPFILE spfileSID.ora 3-7 创建一个 SPFILE 3-8 SPFILE 例子 3-9 Oracle 管理文件 3-10 Oracle 管理文件例子 3-11 打开一个数据库 3-12 STARTUP 命令 3-15 ALTER DATABASE 命令 3-16 以受限模式打开数据库 3-17 以只读模式打开数据库 3-18 关闭数据库 3-19 关闭选项 3-20 用检测诊断文件管理一个实例 3-22 警报日志文件 3-23 后台跟踪文件 3-24 用户跟踪文件 3-25 允许和禁止用户跟踪 3-26 小结 3-26 4 创建数据库 目标 4-2 管理和组织一个数据库 4-3 创建的前提条件 4-4 规划数据文件的位置 4-5 创建数据库的方法 4-6 操作系统环境 4-7 使用数据库配置助手 4-8 创建数据库 4-9 数据库信息 4-10 iii 典型或用户自定义安装 4-11 其它参数 4-12 完成数据库创建 4-13 手动创建数据库 4-14 准备参数文件 4-15 创建 SPFILE 4-15 启动实例 4-16 创建数据库 4-17 使用 OMF 创建数据库 4-19 差错检测 4-20 数据库创建以后 4-21 小结 4-22 5 数据字典内容和使用 目标 5-2 数据字典 5-3 数据字典内容 5-5 如何使用数据字典 5-6 数据字典视图种类 5-7 动态性能表 5-8 查询数据字典和动态性能视图 5-9 数据字典例子 5-10 小结 5-10 6 维护控制文件 目标 6-2 控制文件 6-3 控制文件的内容 6-4 使用 SPFILE 多重控制文件 6-5 使用 init.ora 多重控制文件 6-6 用 OMF 管理控制文件 6-7 获得控制文件的信息 6-8 小结 6-9 7 维护重做日志文件 目标 7-2 使用重做日志文件 7-3 重做日志文件的结构 7-4 重做日志是如何工作的 7-5 强制日志切换和检查点 7-6 增加联机重做日志组 7-7 增加联机重做日志成员 7-8 删除联机重做日志组 7-9 删除联机重做日志成员 7-10 iv 清除、重定位或重命名联机重做日志文件 7-11 联机重做日志的配置 7-12 用 OMF 管理联机重做日志 7-13 获取组和成员的信息 7-14 归档重做日志文件 7-16 小结 7-18 8 管理表空间和数据文件 目标 8-2 概述 8-3 数据库的储存层次 8-5 SYSTEM 和非 SYSTEM 表空间 8-7 创建表空间 8-8 表空间的空间管理 8-9 本地管理表空间 8-10 字典管理表空间 8-11 改变存储设置 8-12 回滚表空间 8-13 临时表空间 8-14 缺省临时表空间 8-15 缺省临时表空间的限制 8-16 脱机状态 8-17 只读表空间 8-19 删除表空间 8-20 改变表空间的大小 8-21 允许数据文件的自动增长 8-22 手工改变数据文件的大小 8-23 给表空间添加数据文件 8-24 移动数据文件:ALTER TABLESPACE 8-25 为表空间的创建设置 ORACLE 管理文件(OMF) 8-27 使用 OMF 创建表空间 8-28 获得表空间的信息 8-29 小结 8-29 9 储存结构与关系 目标 9-2 概述 9-3 段的类型 9-4 储存子句的优先次序 9-7 片的分配和重新分配 9-8 使用和释放片 9-9 数据块 9-10 数据块的内容 9-11 块空间的利用的参数 9-12 v 自动段空间管理 9-14 设置自动段空间管理 9-16 手动数块管理 9-17 块空间的用法 9-18 数据字典视图 9-19 获取储存信息 9-20 小结 9-21 10 管理回滚段 目标 10-2 回滚段管理概述 10-3 回滚段 10-4 回滚段:用途 10-5 读一致性 10-6 回滚段的类型 10-7 自动回滚管理:概念 10-8 自动回滚管理:设置 10-9 自动回滚管理:初始化参数 10-10 自动回滚管理:UNDO 表空间 10-11 自动回滚管理:改变和 UNDO 表空间 10-12 自动回滚管理:转换 UNDO 表空间 10-13 自动回滚管理:删除一个 UNDO 表空间 10-14 自动回滚管理:其它参数 10-15 回滚数据的状态 10-16 自动回滚管理:调整 UNDO 表空间大小 10-17 自动回滚管理回滚配额 10-18 获取回滚段信息 10-19 小结 10-20 11 管理表 目标 11-2 储存用户数据 11-3 Oracle 数据类型 11-5 ROWID 格式 11-8 行的结构 11-10 创建一张表 11-11 创建临时表 11-13 创建表:指南 11-14 修改储存参数 11-15 手工分配片 11-16 重构非分区表 11-17 截断一张表 11-18 删除一张表 11-19 删除一列 11-20 vi 使用 UNUSED 选项 11-21 获取表的信息 11-23 小结 11-25 12 管理索引 目标 12-2 索引的分类 12-3 B 树索引 12-4 位图索引 12-6 B 树索引和位图索引的比较 12-7 创建普通 B 树索引 12-8 创建索引:指导 12-10 创建位图索引 12-11 修改索引的储存参数 12-12 分配和回收索引空间 12-13 重构索引 12-14 联机重构索引 12-16 合并索引 12-17 检查索引的有效性 12-18 删除索引 12-19 确认不使用的索引 12-20 获取索引信息 12-21 小结 12-21 13 维护数据的完整性 目标 13-2 数据的完整性 13-3 约束的类型 13-4 约束的状态 13-5 约束的检测 13-7 定义即时约束或延迟约束 13-8 强制主键和唯一键 13-9 外部关键字的考虑 13-10 在建表时定义完整性约束 13-11 定义约束的指导原则 13-13 允许约束 13-14 使用 EXCEPTIONS 表 13-16 获取约束信息 13-18 小结 13-20 14 管理密码安全和资源 目标 14-2 配置文件 14-3 密码管理 14-4 vii 允许密码管理 14-5 帐号密码锁定 14-6 密码寿命和过期 14-7 密码历史 14-8 密码验证 14-9 用户自定义密码函数 14-10 密码验证函数 VERIFY_FUNCTION 14-11 创建配置文件:密码设置 14-12 修改配置文件:密码设置 14-14 删除配置文件:密码设置 14-15 资源管理 14-16 允许资源限制 14-17 在会话级别设置资源限制 14-18 在调用级别设置资源限制 14-19 创建配置文件:资源限制 14-20 使用数据库资源管理器管理资源的使用 14-22 资源计划指示 14-24 获取密码和资源限制的信息 14-25 小结 14-26 15 管理用户 目标 15-2 用户和安全 15-3 数据库方案 15-4 检查创建用户 15-5 创建新用户:数据库验证 15-6 创建新用户:操作系统验证 15-8 改变用户的表空间限额 15-9 删除用户 15-10 获取用户的信息 15-11 小结 15-12 16 管理权限 目标 16-2 管理权限 16-3 系统权限 16-4 系统权限:例子 16-5 授予系统权限 16-6 SYSDBA 和 SYSOPER 权限 16-7 系统权限限制 16-8 回收系统权限 16-9 使用 WITH ADMIN OPTION 选项时回收系统权限 16-10 对象权限 16-11 授予对象权限 16-12 viii 回收对象权限 16-13 使用 WITH GRANT OPTION 选项时回收对象权限 16-14 获取权限信息 16-15 审计 16-16 审计指南 16-17 审计种类 16-19 数据库审计 16-20 审计选项 16-21 查看审计选项 16-23 获取审计记录 16-24 小结 16-25 17 管理角色 目标 17-2 角色 17-3 角色的优点 17-4 创建角色 17-5 预定义的角色 17-6 修改角色 17-7 分配角色 17-8 建立默认角色 17-9 应用程序角色 17-10 允许和禁止角色 17-11 撤销用户角色 17-13 删除角色 17-14 创建角色指南 17-15 使用密码和默认角色指导原则 17-16 显示角色信息 17-17 小结 17-18 18 使用全球支持 目标 18-2 全球支持特性 18-3 不同类型的方案编码 18-4 数据库的字符集和国家字符集 18-6 选择 Oracle 数据库字符集的指导原则 18-7 选择 Oracle 数据库国家字符集的指导原则 18-8 为双字节字符数据库选择一种统一代码方案 18-9 为双字节字符数据类型选择一种统一代码方案 18-10 指定语言相关行为 18-11 为服务器指定语言相关行为 18-12 语言和地区相关的缺省值 18-13 为会话指定语言相关的行为 18-14 客户端-服务器体系的字符集 18-15 ix 为会话指定语言相关的行为 18-16 语言排序 18-17 NLS 排序 18-18 在 SQL 函数使用 NLS 参数 18-20 语言索引支持 18-23 使用 NLS 导入和装载数据 18-24 获取字符集相关的信息 18-25 获取 NLS 相关的设置信息 18-26 全球支持实用工具 18-30 小结 18-31
前言 1 简介 课程目标 1-2 建议日程表 1-3 课程目标 1-4 Oracle 产品和服务 1-5 Oracle Database 10 g :“g”代表网格 1-6 Oracle 数据库体系结构 1-8 数据库结构 1-9 Oracle 内存结构 1-10 进程结构 1-12 Oracle 实例管理 1-13 服务器进程和数据库缓冲区高速缓存 1-14 物理数据库结构 1-15 表空间和数据文件 1-17 SYSTEM 和 SYSAUX 表空间 1-18 段、区和块 1-19 逻辑和物理数据库结构 1-20 课程示例: HR 方案 1-22 数据库体系结构:结构化组件概要 1-23 小结 1-24 2 安装 Oracle 数据库软件 课程目标 2-2 Oracle 数据库管理员的任务 2-3 用于管理 Oracle 数据库的工具 2-4 安装:系统要求 2-6 检查系统要求 2-7 灵活体系结构 (OFA) 2-8 使用灵活体系结构 2-9 设置环境变量 2-11 Oracle Universal Installer (OUI) 2-13 安装 Oracle 软件 2-14 数据库配置选项 2-15 执行配置脚本 2-16 完成安装 2-17 高级安装选项 2-18 安装选项:无提示模式 2-19 小结 2-20 练习概览:安装 Oracle 软件 2-21 3 创建 Oracle 数据库 课程目标 3-2 为数据库制定计划 3-3 数据库:示例 3-4 Database Configuration Assistant (DBCA) 3-5 使用 DBCA 创建数据库 3-6 口令管理 3-12 创建数据库设计模板 3-13 使用 DBCA 删除数据库 3-14 小结 3-16 练习概览:使用 DBCA 3-17 4 管理 Oracle 实例 课程目标 4-2 管理框架 4-3 启动和停止 Database Control 4-4 Oracle Enterprise Manager 4-5 访问 Oracle Enterprise Manager 4-6 数据库主页 4-7 使用 SQL*Plus 和 iSQL*Plus 访问数据库 4-8 使用 iSQL*Plus 4-9 为了以 SYSDBA 和 SYSOPER 身份进行访问而设置 iSQL*Plus 4-10 使用 SQL*Plus 4-12 从 Shell 脚本调用 SQL*Plus 4-13 从 SQL*Plus 调用 SQL 脚本 4-14 初始化参数文件 4-15 简化初始化参数 4-16 查看和修改初始化参数 4-18 数据库启动和关闭 4-19 启动 Oracle 数据库实例 4-20 启动 Oracle 数据库实例:NOMOUNT 4-21 启动 Oracle 数据库实例:MOUNT 4-22 启动 Oracle 数据库实例:OPEN 4-23 关闭 Oracle 数据库实例 4-24 关闭模式 4-25 SHUTDOWN 选项 4-26 使用 SQL*Plus 启动和关闭 4-29 查看预警日志 4-30 查看预警历史记录 4-31 动态性能视图 4-32 动态性能视图:用法示例 4-33 动态性能视图:注意事项 4-34 小结 4-35 练习概览:管理 Oracle 实例 4-36 5 管理数据库存储结构 课程目标 5-2 存储结构 5-3 如何存储表数据 5-4 数据库块的结构 5-5 表空间和数据文件 5-6 Oracle Managed Files (OMF) 5-7 表空间的空间管理 5-8 浏览存储结构 5-9 创建新表空间 5-10 本地管理表空间的存储 5-12 预配置数据库的表空间 5-14 变更表空间 5-16 对表空间执行的操作 5-18 删除表空间 5-20 查看表空间信息 5-21 采集存储信息 5-22 查看表空间内容 5-23 扩大数据库 5-24 什么是 Automatic Storage Management 5-25 ASM:主要功能和优点 5-26 ASM:概念 5-27 小结 5-28 练习概览:管理数据库存储结构 5-29 6 管理用户安全性 课程目标 6-2 数据库用户帐户 6-3 预定义帐户: SYS 和 SYSTEM 6-4 创建用户 6-5 验证用户 6-6 管理员验证 6-8 解除用户帐户的锁定并重置口令 6-9 权限 6-10 系统权限 6-11 对象权限 6-13 使用 ADMIN OPTION 撤销系统权限 6-14 使用 GRANT OPTION 撤销对象权限 6-15 角色的作用 6-16 将权限分配给角色以及将角色分配给用户 6-17 预定义角色 6-18 创建角色 6-19 保护角色 6-20 将角色分配给用户 6-21 概要文件和用户 6-22 实施口令安全功能 6-24 创建口令概要文件 6-26 提供的口令验证函数:VERIFY_FUNCTION 6-27 将限额分配给用户 6-28 小结 6-30 练习概览:管理用户 6-31 7 管理方案对象 课程目标 7-2 什么是方案 7-3 访问方案对象 7-5 命名数据库对象 7-6 指定表的数据类型 7-8 创建和修改表 7-11 了解数据完整性 7-13 定义约束条件 7-15 违反约束条件 7-16 约束条件状态 7-17 约束条件检查 7-19 使用 SQL 创建约束条件:示例 7-20 查看表的列 7-21 查看表的内容 7-22 对表执行的操作 7-23 删除表 7-24 截断表 7-25 索引 7-26 索引类型 7-27 B 树索引 7-28 位图索引 7-30 索引选项 7-32 创建索引 7-34 什么是视图 7-35 创建视图 7-36 序列 7-37 创建序列 7-38 使用序列 7-40 临时表 7-41 临时表:注意事项 7-43 数据字典:概览 7-44 数据字典视图 7-45 数据字典:用法示例 7-46 小结 7-47 练习概览:管理方案对象 7-48 8 管理数据和并发处理 课程目标 8-2 通过 SQL 处理数据 8-3 INSERT 命令 8-4 UPDATE 命令 8-5 DELETE 命令 8-6 MERGE 命令 8-7 COMMIT 和 ROLLBACK 命令 8-9 PL/SQL 8-10 管理 PL/SQL 对象 8-11 PL/SQL 对象 8-12 函数 8-13 过程 8-14 程序包 8-15 程序包说明和程序包体 8-16 内置程序包 8-17 触发器 8-18 触发事件 8-19 锁定 8-20 锁定机制 8-21 数据并发处理 8-22 DML 锁定 8-24 排队机制 8-25 锁定冲突 8-26 锁定冲突的可能原因 8-27 检测锁定冲突 8-28 解决锁定冲突 8-29 使用 SQL 解决锁定冲突 8-30 死锁 8-31 小结 8-32 练习概览:管理数据和并发处理 8-33 9 管理还原数据 课程目标 9-2 数据操纵 9-3 还原数据 9-4 事务处理和还原数据 9-6 存储还原信息 9-7 还原数据与重做数据 9-8 监视还原 9-9 管理还原 9-11 配置还原保留期 9-12 确保还原保留期 9-13 调整还原表空间的大小 9-14 使用还原指导 9-15 小结 9-16 练习概览:管理还原段 9-17 10 实施 Oracle 数据库安全性 课程目标 10-2 业界安全性要求 10-3 责任划分 10-5 数据库安全性 10-6 最少权限原则 10-8 应用最少权限原则 10-9 监视可疑活动 10-11 标准数据库审计 10-12 启用审计 10-13 统一审计线索 10-14 Enterprise Manager 审计页 10-15 指定审计选项 10-16 使用和维护审计信息 10-17 基于值审计 10-18 细粒度审计 10-20 FGA 策略 10-21 审计的 DML 语句:注意事项 10-23 FGA 准则 10-24 DBA 审计 10-25 维护审计线索 10-26 安全更新 10-27 应用安全补丁程序 10-28 小结 10-29 练习概览:实施 Oracle 数据库安全性 10-30 11 配置 Oracle 网络环境 课程目标 11-2 Oracle Net Services 11-3 Oracle Net Listener 11-4 建立网络连接 11-5 建立连接 11-6 用户会话 11-7 配置和管理 Oracle Network 的工具 1 监听程序控制实用程序 11-9 监听程序控制实用程序的语法 11-10 监听程序主页 11-12 网络服务管理页 11-13 创建监听程序 11-14 添加监听程序地址 11-15 数据库服务注册 11-16 命名方法 11-17 简便连接 11-18 本地命名 11-19 目录命名 11-20 外部命名方法 11-21 配置服务别名 11-22 高级连接选项 11-23 测试 Oracle Net 连接性 11-25 用户会话:专用服务器 11-26 用户会话:共享服务器 11-27 SGA 和 PGA 11-28 共享服务器:连接共享 11-29 不能使用共享服务器的情况 11-30 小结 11-31 练习概览:使用 Oracle Network 组件 11-32 12 主动维护 课程目标 12-2 主动维护 12-3 术语简介 12-4 优化程序统计信息 12-5 使用管理优化程序统计信息页 12-7 自动工作量资料档案库 (AWR) 12-9 AWR 基础结构 12-10 AWR 快照集 12-11 Enterprise Manager 和 AWR 12-12 管理 AWR 12-13 统计信息级别 12-14 数据库自动诊断监视程序 (ADDM) 12-15 ADDM 查找结果 12-16 ADDM 建议案 12-17 指导框架 12-18 Enterprise Manager 和指导 12-20 DBMS_ADVISOR 程序包 12-21 服务器生成的预警 12-22 服务器生成的默认预警 12-23 设置阈值 12-24 创建和测试预警 12-25 预警通知 12-26 对预警作出响应 12-28 预警类型和清理预警 12-29 自动维护任务 12-30 小结 12-31 练习概览:主动维护 12-32 13 性能管理 课程目标 13-2 性能监视 13-3 性能监视:顶级会话 13-7 性能监视:顶级服务 13-8 SQL 优化指导:概览 13-9 SQL 优化指导选项和建议案 13-10 使用 SQL 优化指导 13-11 使用 SQL 优化指导:示例 13-12 SQL 优化指导: SQL 统计信息 13-14 SQL 优化指导:确定重复的 SQL 13-15 使用 SQL 访问指导 13-16 管理内存组件 13-18 。。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值