当前位置:文档之家› 如何看懂Oracle数据AWR报告

如何看懂Oracle数据AWR报告

如何看懂Oracle数据AWR报告
如何看懂Oracle数据AWR报告

如何看懂Oracle数据库

AWR报告

Oracle优化经验总结

李申章

2014/3/22

本来来源于互联网,实际的系统性能优化工作,进行归纳整理,提炼介绍如何学习看懂Oracle数据库AWR报告,作为经验分享,特编写此文。

目录

一、AWR报告介绍 (1)

1.AWR使用 (1)

2.AWR操作 (2)

(1)查看当前的AWR保存策略 (2)

(2)调整AWR配置 (3)

3.AWR名词术语 (4)

(1)SQL ordered by Elapsed Time (4)

(2)SQL ordered by CPU Time (5)

(3)SQL ordered by Gets (5)

(4)SQL ordered by Reads (5)

(5)SQL ordered by Executions: (5)

(6)SQL ordered by Parse Calls (5)

(7)SQL ordered by Sharable Memory (5)

(8)SQL ordered by Version Count (5)

(9)SQL ordered by Cluster Wait Time (5)

二、WORKLOAD REPOSITORY report for (6)

三、Report Summary (6)

1.Cache Sizes (6)

2.Load Profile (7)

(1)Oracle的硬解析和软解析 (8)

3.Instance Efficiency Percentages (Target 100%) (9)

4.Shared Pool Statistics (11)

5.Top 5 Timed Events (12)

四、RAC Statistics (13)

1.Global Cache Load Profile (13)

2.Global Cache Efficiency Percentages (Target local+remote 100%) (13)

3.Global Cache and Enqueue Services - Workload Characteristics (13)

4.Global Cache and Enqueue Services - Messaging Statistics (14)

五、Main Report (14)

六、More RAC Statistics (14)

七、Wait Events Statistics (14)

1.等待事件介绍 (15)

(1)db file scattered read 文件分散读取 (15)

(2)db file sequential read 文件顺序读取 (15)

(3)buffer busy wait 缓冲区忙 (16)

(4)常见的等待事件和解决方法 (26)

2.Time Model Statistics (27)

3.Wait Class 等待事件的类型 (28)

4.Wait Events非空闲等待事件 (28)

(1)查询所有等待事件及其属性: (28)

(2)查询Oracle 10gR1提供的12个等待事件类: (29)

5.Background Wait Events空闲等待事件 (33)

6.Operating System Statistics (35)

7.Service Statistics (36)

8.Service Wait Class Stats (36)

9.SQL Statistics (36)

(1)SQL ordered by Elapsed Time (37)

(2)SQL ordered by CPU Time (38)

(3)SQL ordered by Gets (38)

(4)SQL ordered by Reads (40)

(5)SQL ordered by Executions (41)

(6)SQL ordered by Parse Calls (42)

(7)SQL ordered by Sharable Memory (43)

(8)SQL ordered by Version Count (44)

(9)SQL ordered by Cluster Wait Time (44)

(10)Complete List of SQL Text (46)

10.Instance Activity Statistics (49)

(1)Instance Activity Stats (49)

(2)Instance Activity Stats - Absolute Values (55)

(3)Instance Activity Stats - Thread Activity (55)

11.IO Stats (55)

(1)Tablespace IO Stats (56)

(2)File IO Stats (56)

(3)Buffer Pool Statistics (57)

12.Advisory Statistics (57)

(1)Instance Recovery Stats (57)

(2)Buffer Pool Advisory (58)

(3)PGA Aggr Summary (58)

(4)PGA Aggr Target Stats (58)

(5)PGA Aggr Target Histogram (59)

(6)PGA Memory Advisory (59)

(7)Shared Pool Advisory (60)

(8)SGA Target Advisory (60)

(9)Streams Pool Advisory (60)

(10)Java Pool Advisory (60)

(11)Wait Statistics (60)

(12)Buffer Wait Statistics (61)

(13)Enqueue Activity (61)

13.Undo Statistics (61)

(1)Segment Summary (62)

(2)Undo Segment Stats (62)

https://www.doczj.com/doc/a715326847.html,tch Statistics (63)

(1)Latch Activity (66)

(2)Latch Sleep Breakdown (70)

(3)Latch Miss Sources (70)

(4)Parent Latch Statistics (70)

(5)Child Latch Statistics (71)

15.Segment Statistics (71)

(1)Segments by Logical Reads (71)

(2)Segments by Physical Reads (71)

(3)Segments by Row Lock Waits (72)

(4)Segments by ITL Waits (72)

(5)Segments by Buffer Busy Waits (72)

(6)Segments by Global Cache Buffer Busy (72)

(7)Segments by CR Blocks Received (72)

(8)Segments by Current Blocks Received (72)

16.Dictionary Cache Statistics (73)

(1)Dictionary Cache Stats (73)

(2)Dictionary Cache Stats (RAC) (74)

17.Library Cache Statistics (74)

(1)Library Cache Activity (74)

(2)Library Cache Activity (RAC) (74)

18.Memory Statistics (75)

(1)Process Memory Summary (75)

(2)SGA Memory Summary (75)

(3)SGA breakdown difference (76)

19.Streams Statistics (76)

(1)Streams CPU/IO Usage (77)

(2)Streams Capture (77)

(3)Streams Apply (77)

(4)Buffered Queues (77)

(5)Buffered Subscribers (77)

(6)Rule Set (77)

20.Resource Limit Stats (77)

21.init.ora Parameters (77)

八、More RAC Statistics (78)

1.Global Enqueue Statistics (78)

2.Global CR Served Stats (80)

3.Global CURRENT Served Stats (80)

4.Global Cache Transfer Stats (81)

一、A WR报告介绍

Oracle 10g之前对数据库做性能检测使用Statspack工具。Oracle Database 10g提供了一个显著改进的工具:自动工作负载信息库(AWR:Automatic Workload Repository)。Oracle建议用户用这个取代Statspack。AWR实质上是一个Oracle 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。与Statspack不同,快照由一个称为MMON的新的后台进程默认自动地每小时采集一次。为了节省空间,采集的数据在7天后自动清除。快照频率和保留时间都可以由用户修改。AWR是通过对比两次快照(Snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分。它产生两种类型的输出:文本格式(类似于Statspack报表的文本格式但来自于AWR信息库)和默认的HTML格式(拥有到部分和子部分的所有超链接),从而提供了非常用户友好的报表。

AWR使用几个表来存储采集的统计数据,所有的表都存储在新的名称为SYSAUX的特定表空间中的SYS模式下,并且以WRM$_*和WRH$_*的格式命名。前一种类型存储元数据信息(如检查的数据库和采集的快照),后一种类型保存实际采集的统计数据。H代表“历史数据(historical)”而M代表“元数据(Metadata)”。在这些表上构建了几种带前缀DBA_HIST_的视图,这些视图可以用来编写您自己的性能诊断工具。视图的名称直接与表相关;例如,视图DBA_HIST_SYSMETRIC_SUMMARY是在WRH$_SYSMETRIC_SUMMARY 表上构建的。

1.AWR使用

获取Oracle数据库的AWR报告,有很多种方法,可以利用专业的Oracle 开发管理工具,如Toad、PLSQL等工具软件。也可以使用Oracle自带的Sqlplus 命令行管理。个人则更喜欢Sqlplus命令行管理工具,理由是不受操作系统、应用程序的限制,简单易用。

SQL>@?/rdbms/admin/awrrpt.sql

执行上述SQL语句命令,获取AWR报告的交互界面如下:

Specify the Report Type

~~~~~~~~~~~~~~~~~~~~~~~

Would you like an HTML report, or a plain text report?

Enter 'html' for an HTML report, or 'text' for plain text

Defaults to 'html'

输入 report_type 的值:

Type Specified: html

Specify the number of days of snapshots to choose from

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entering the number of days (n) will result in the most recent

(n) days of snapshots being listed. Pressing without specifying a number lists all completed snapshots.

输入 num_days 的值: 1

Listing the last day's Completed Snapshots

Snap

Instance DB Name Snap Id Snap Started Level

------------ ------------ --------- ------------------ -----

orcl10g ORCL10G 142 03 7月 2009 08:11 1

143 03 7月 2009 09:00 1

144 03 7月 2009 10:00 1

145 03 7月 2009 11:00 1

146 03 7月 2009 12:01 1

Specify the Begin and End Snapshot Ids

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

输入 begin_snap 的值: 142

Begin Snapshot Id specified: 142

输入 end_snap 的值: 146

End Snapshot Id specified: 146

Specify the Report Name

~~~~~~~~~~~~~~~~~~~~~~~

The default report file name is awrrpt_1_142_146.html. To use this name, press to continue, otherwise enter an alternative.

输入 report_name 的值: D:\awrrpt_1_142_146.html

Report written to D:\awrrpt_1_142_146.html

上述介绍的是最简单的使用方式,对于数据库优化、运维管理来说,每次按

照上述方式,比较耗费时间和力气,如果熟悉操作系统批处理命令、及Oracle

的PLSQL语言开发,那么就可以对上述使用方式稍加修改,就能够按照特定的需

求自东导出AWR报告。在运维管理的过程中,曾按照特定的需求,对做了相应的

完善,得到了很好的应用效果,这里不做详述,如果感兴趣,欢迎交流经验。2.AWR操作

(1)查看当前的AWR保存策略

SQL> col snap_interval format a20

SQL> col retention format a20

SQL> select * from dba_hist_wr_control;

DBID SNAP_INTERVAL RETENTION TOPNSQL

---------- -------------------- -------------------- ---------- 262089084 +00000 01:00:00.0 +00007 00:00:00.0 DEFAULT

以上结果表示:每小时产生一个SNAPSHOT,保留7天。

(2)调整AWR配置

AWR配置都是通过dbms_workload_repository包进行配置。

调整AWR产生snapshot的频率和保留策略,如将收集间隔时间改为30 分钟一次。并且保留5天时间(单位都是分钟):

SQL>exec

dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60);

关闭AWR,把interval设为0则关闭自动捕捉快照:

SQL> exec

dbms_workload_repository.modify_snapshot_settings(interval=>0);

手工创建一个快照

SQL> exec dbms_workload_repository.create_snapshot();

查看快照

SQL> select * from sys.wrh$_active_session_history;

手工删除指定范围的快照

SQL> exec dbms_workload_repository.drop_snapshot_range(low_snap_id => 973, high_snap_id => 999, dbid => 262089084);

创建Baseline,保存这些数据用于将来分析和比较

SQL> exec dbms_workload_repository.create_baseline(start_snap_id => 1003, end_snap_id => 1013, 'apply_interest_1');

删除Baseline

SQL> exec dbms_workload_repository.drop_baseline(baseline_name =>

'apply_interest_1', cascade => false);

将AWR数据导出并迁移到其它数据库以便于以后分析

SQL> exec DBMS_SWRF_INTERNAL.AWR_EXTRACT(dmpfile => 'awr_data.dmp', mpdir => 'DIR_BDUMP', bid => 1003, eid => 1013);

迁移AWR数据文件到其他数据库

SQL> exec dbms_swrf_internal.awr_load(schname => 'awr_test', dmpfile => 'awr_data.dmp', dmpdir => 'dir_bdump');

把AWR数据转移到SYS模式中:

SQL> exec dbms_swrf_internal.move_to_awr (schname => 'test');

3.AWR名词术语

(1)SQL ordered by Elapsed Time

记录了执行总和时间的TOP SQL(请注意是监控范围内该SQL的执行时间总和,而不是单次SQL执行时间 Elapsed Time = CPU Time + Wait Time)。

Elapsed Time(S): SQL语句执行用总时长,此排序就是按照这个字段进行的。注意该时间不是单个SQL跑的时间,而是监控范围内SQL执行次数的总和时间。单位时间为秒。Elapsed Time = CPU Time + Wait Time

DB Time:是记录的服务器花在数据库运算(非后台进程)和等待(非空闲等待)上的时间。不包括Oracle后台进程消耗的时间。

CPU Time(s): 为SQL语句执行时CPU占用时间总时长,此时间会小于等于Elapsed Time时间。单位时间为秒。

Executions: SQL语句在监控范围内的执行次数总计。

Elap per Exec(s):执行一次SQL的平均时间。单位时间为秒。

% Total DB Time:为SQL的Elapsed Time时间占数据库总时间的百分比。

SQL ID:SQL语句的ID编号,点击之后就能导航到下边的SQL详细列表中,

点击IE的返回可以回到当前SQL ID的地方。

SQL Module:显示该SQL是用什么方式连接到数据库执行的,如果是用SQL*Plus或者PL/SQL链接上来的那基本上都是有人在调试程序。一般用前台应用链接过来执行的sql该位置为空。

SQL Text:简单的sql提示,详细的需要点击SQL ID。

(2)SQL ordered by CPU Time

记录了执行占CPU时间总和时间最长的TOP SQL(请注意是监控范围内该SQL 的执行占CPU时间总和,而不是单次SQL执行时间)。

(3)SQL ordered by Gets

记录了执行占总buffer gets(逻辑IO)的TOP SQL(请注意是监控范围内该SQL的执行占Gets总和,而不是单次SQL执行所占的Gets)。

(4)SQL ordered by Reads

记录了执行占总磁盘物理读(物理IO)的TOP SQL(请注意是监控范围内该SQL的执行占磁盘物理读总和,而不是单次SQL执行所占的磁盘物理读)。

(5)SQL ordered by Executions:

记录了按照SQL的执行次数排序的TOP SQL。该排序可以看出监控范围内的SQL执行次数。

(6)SQL ordered by Parse Calls

记录了SQL的软解析次数的TOP SQL。说到软解析(soft prase)和硬解析(hard prase),就不能不说一下Oracle对sql的处理过程。

(7)SQL ordered by Sharable Memory

记录了SQL占用library cache的大小的TOP SQL。Sharable Mem (b):占用library cache的大小,单位是byte。

(8)SQL ordered by Version Count

记录了SQL的打开子游标的TOP SQL。

(9)SQL ordered by Cluster Wait Time

记录了集群的等待时间的TOP SQL。

二、W ORKLOAD REPOSITORY report for

DB Name DB Id Instance Inst num Release RAC Host DB 1314098396 DB1 1 10.2.0.5.0 YES DB1

Snap Id Snap Time Sessions Cursors/Session Begin Snap: 2678 21-mar -14 14:04:50 24 1.5

End Snap: 2680 21-mar -14 15:23:37 26 1.5

Elapsed: 78.79 (mins)

DB Time: 11.05 (mins)

从awr report的Elapsed time和DB Time就能大概了解db的负载。

DB Time不包括Oracle后台进程消耗的时间。如果DB Time远远小于Elapsed 时间,说明数据库比较空闲,反之,则说明数据库比较繁忙。

DB Time= cpu time + wait time(不包含空闲等待)(非后台进程)

说白了就是db time就是记录的服务器花在数据库运算(非后台进程)和等待(非空闲等待)上的时间。

DB time = cpu time + all of nonidle wait event time

分析结论:DB数据服务器中显示系统有8个逻辑CPU(4个物理CPU)。在79分钟里收集了3次快照数据,数据库耗时11分钟,平均每个CPU耗时1.4分钟,CPU利用率只有大约2%(1.4/79)。说明系统压力非常小。

可是对于批量系统,数据库的工作负载总是集中在一段时间内。如果快照周期不在这一段时间内,或者快照周期跨度太长而包含了大量的数据库空闲时间,所得出的分析结果是没有意义的。这也说明选择分析时间段很关键,要选择能够代表性能问题的时间段。

三、R eport Summary

1.Cache Sizes

Begin End

Buffer Cache: 3,344M 3,344M Std Block Size: 8K

Shared Pool Size: 704M 704M Log Buffer: 14,352K

显示SGA中每个区域的大小(在AMM改变它们之后),可用来与初始参数值比较。

Shared Pool主要包括Library Cache和Dictionary Cache。Library Cache 用来存储最近解析(或编译)后SQL、PL/SQL和Java classes等。Library Cache 用来存储最近引用的数据字典。发生在Library Cache或Dictionary Cache的Cache Miss代价要比发生在Buffer Cache的代价高得多。因此Shared Pool的设置要确保最近使用的数据都能被Cache。

2.Load Profile

Per Second Per Transaction Redo size: 918,805.72 775,912.72

Logical reads: 3,521.77 2,974.06

Block changes: 1,817.95 1,535.22

Physical reads: 68.26 57.64

Physical writes: 362.59 306.20

User calls: 326.69 275.88

Parses: 38.66 32.65

Hard parses: 0.03 0.03

Sorts: 0.61 0.51

Logons: 0.01 0.01

Executes: 354.34 299.23

Transactions: 1.18

% Blocks changed per Read: 51.62 Recursive Call %: 51.72

Rollback per transaction %: 85.49 Rows per Sort: ########

显示数据库负载概况,将之与基线数据比较才具有更多的意义,如果每秒或每事务的负载变化不大,说明应用运行比较稳定。单个的报告数据只说明应用的负载情况,绝大多数据并没有一个所谓“正确”的值,然而Logons大于每秒1~2个、Hard parses大于每秒100、全部parses超过每秒300表明可能有争用问题。

Redo size:每秒产生的日志大小(单位字节),可标志数据变更频率, 数据库任务的繁重与否。

Logical reads:每秒/每事务逻辑读的块数.平决每秒产生的逻辑读的block 数。Logical Reads= Consistent Gets + DB Block Gets

Block changes:每秒/每事务修改的块数

Physical reads:每秒/每事务物理读的块数

Physical writes:每秒/每事务物理写的块数

User calls:每秒/每事务用户call次数

Parses:每秒解析SQL次数。包括fast parse,soft parse和hard parse 三种数量的综合。软解析每秒超过300次意味着你的"应用程序"效率不高,调整session_cursor_cache。在这里,fast parse指的是直接在PGA中命中的情况(设置了session_cached_cursors=n);soft parse是指在shared pool中命中的情形;hard parse则是指都不命中的情况。

Hard parses:其中硬解析的次数,硬解析太多,说明SQL重用率不高。每秒产生的硬解析次数, 每秒超过100次,就可能说明你绑定使用的不好,也可能是共享池设置不合理。这时候可以启用参数cursor_sharing=similar|force,该参数默认值为exact。但该参数设置为similar时,存在bug,可能导致执行计划的不优。

Sorts:每秒/每事务的排序次数

Logons:每秒/每事务登录的次数

Executes:每秒/每事务SQL执行次数

Transactions:每秒事务数.每秒产生的事务数,反映数据库任务繁重与否。

Blocks changed per Read:表示逻辑读用于修改数据块的比例.在每一次逻辑读中更改的块的百分比。

Recursive Call:递归调用占所有操作的比率.递归调用的百分比,如果有很多PL/SQL,那么这个值就会比较高。

Rollback per transaction:每事务的回滚率.看回滚率是不是很高,因为回滚很耗资源 ,如果回滚率过高,可能说明你的数据库经历了太多的无效操作 ,过多的回滚可能还会带来Undo Block的竞争。

该参数计算公式如下: Round(User rollbacks / (user commits + user rollbacks) ,4)* 100% 。

Rows per Sort:每次排序的行数

(1)Oracle的硬解析和软解析

提到软解析(soft prase)和硬解析(hard prase),就不能不说一下Oracle 对sql的处理过程。当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程:

1、语法检查(syntax check)

检查此sql的拼写是否语法。

2、语义检查(semantic check)

诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。

3、对sql语句进行解析(prase)

利用内部算法对sql进行解析,生成解析树(parse tree)及执行计划(execution plan)。

4、执行sql,返回结果(execute and return)

其中,软、硬解析就发生在第三个过程里。

Oracle利用内部的hash算法来取得该sql的hash值,然后在library cache 里查找是否存在该hash值;

假设存在,则将此sql与cache中的进行比较;

假设“相同”,就将利用已有的解析树与执行计划,而省略了优化器的相关工作。这也就是软解析的过程。

诚然,如果上面的两个假设中任有一个不成立,那么优化器都将进行创建解析树、生成执行计划的动作。这个过程就叫硬解析。

创建解析树、生成执行计划对于sql的执行来说是开销昂贵的动作,所以,应当极力避免硬解析,尽量使用软解析。

如何提高SQL解析效率,最有效的是SQL语句尽量使用变量绑定的书写方式。

3.Instance Efficiency Percentages (Target 100%)

Buffer Nowait %: 100.00 Redo NoWait %: 100.00

Buffer Hit %: 98.72 In-memory Sort %: 99.86

Library Hit %: 99.97 Soft Parse %: 99.92

Execute to Parse %: 89.09 Latch Hit %: 99.99

Parse CPU to Parse Elapsd %: 7.99 % Non-Parse CPU: 99.95

本节包含了Oracle关键指标的内存命中率及其它数据库实例操作的效率。其中Buffer Hit Ratio 也称Cache Hit Ratio,Library Hit ratio也称Library Cache Hit ratio。同Load Profile一节相同,这一节也没有所谓“正确”的值,而只能根据应用的特点判断是否合适。在一个使用直接读执行大型并行查询的

DSS环境,20%的Buffer Hit Ratio是可以接受的,而这个值对于一个OLTP系统是完全不能接受的。根据Oracle的经验,对于OLTP系统,Buffer Hit Ratio 理想应该在90%以上。

Buffer Nowait:表示在内存获得数据的未等待比例。在缓冲区中获取Buffer 的未等待比率。Buffer Nowait的这个值一般需要大于99%。否则可能存在争用,可以在后面的等待事件中进一步确认。

Buffer Hit:表示进程从内存中找到数据块的比率,监视这个值是否发生重大变化比这个值本身更重要。对于一般的OLTP系统,如果此值低于80%,应该给数据库分配更多的内存。数据块在数据缓冲区中的命中率,通常应在95%以上。否则,小于95%,需要调整重要的参数,小于90%可能是要加db_cache_size。一个高的命中率,不一定代表这个系统的性能是最优的,比如大量的非选择性的索引被频繁访问,就会造成命中率很高的假相(大量的db file sequential read),但是一个比较低的命中率,一般就会对这个系统的性能产生影响,需要调整。命中率的突变,往往是一个不好的信息。如果命中率突然增大,可以检查top buffer get SQL,查看导致大量逻辑读的语句和索引,如果命中率突然减小,可以检查top physical reads SQL,检查产生大量物理读的语句,主要是那些没有使用索引或者索引被删除的。

Redo NoWait:表示在LOG缓冲区获得BUFFER的未等待比例。如果太低(可参考90%阀值),考虑增加LOG BUFFER。当redo buffer达到1M时,就需要写到redo log文件,所以一般当redo buffer设置超过1M,不太可能存在等待buffer空间分配的情况。当前,一般设置为2M的redo buffer,对于内存总量来说,应该不是一个太大的值。

Library Hit:表示Oracle从Library Cache中检索到一个解析过的SQL 或PL/SQL语句的比率,当应用程序调用SQL或存储过程时,Oracle检查Library Cache确定是否存在解析过的版本,如果存在,Oracle立即执行语句;如果不存在,Oracle解析此语句,并在Library Cache中为它分配共享SQL区。低的library hit ratio会导致过多的解析,增加CPU消耗,降低性能。如果library hit ratio 低于90%,可能需要调大shared pool区。STATEMENT在共享区的命中率,通常应该保持在95%以上,否则需要要考虑:加大共享池;使用绑定变量;修改cursor_sharing等参数。

Latch Hit:Latch是一种保护内存结构的锁,可以认为是SERVER进程获取访问内存数据结构的许可。要确保Latch Hit>99%,否则意味着Shared Pool latch 争用,可能由于未共享的SQL,或者Library Cache太小,可使用绑定变更或调大Shared Pool解决。要确保>99%,否则存在严重的性能问题。当该值出现问题的时候,我们可以借助后面的等待时间和latch分析来查找解决问题。

Parse CPU to Parse Elapsd:解析实际运行时间/(解析实际运行时间+解析中等待资源时间),越高越好。计算公式为:Parse CPU to Parse Elapsd %= 100*(parse time cpu / parse time elapsed)。即:解析实际运行时间/(解析实际运行时间+解析中等待资源时间)。如果该比率为100%,意味着CPU等待时间为0,没有任何等待。

Non-Parse CPU :SQL实际运行时间/(SQL实际运行时间+SQL解析时间),太低表示解析消耗时间过多。计算公式为:% Non-Parse CPU =round(100*1-PARSE_CPU/TOT_CPU),2)。如果这个值比较小,表示解析消耗的CPU时间过多。与PARSE_CPU相比,如果TOT_CPU很高,这个比值将接近100%,这是很好的,说明计算机执行的大部分工作是执行查询的工作,而不是分析查询的工作。

Execute to Parse:是语句执行与分析的比例,如果要SQL重用率高,则这个比例会很高。该值越高表示一次解析后被重复执行的次数越多。计算公式为:Execute to Parse =100 * (1 - Parses/Executions)。本例中,差不多每execution 5次需要一次parse。所以如果系统Parses > Executions,就可能出现该比率小于0的情况。该值<0通常说明shared pool设置或者语句效率存在问题,造成反复解析,reparse可能较严重,或者是可能同snapshot有关,通常说明数据库性能存在问题。

In-memory Sort:在内存中排序的比率,如果过低说明有大量的排序在临时表空间中进行。考虑调大PGA(10g)。如果低于95%,可以通过适当调大初始化参数PGA_AGGREGATE_TARGET或者SORT_AREA_SIZE来解决,注意这两个参数设置作用的范围时不同的,SORT_AREA_SIZE是针对每个session设置的,PGA_AGGREGATE_TARGET则时针对所有的sesion的。

Soft Parse:软解析的百分比(softs/softs+hards),近似当作sql在共享区的命中率,太低则需要调整应用使用绑定变量。sql在共享区的命中率,小于<95%,需要考虑绑定,如果低于80%,那么就可以认为sql基本没有被重用。

4.Shared Pool Statistics

Begin End Memory Usage %: 47.19 47.50

% SQL with executions>1: 88.48 79.81

% Memory for SQL w/exec>1: 79.99 73.52

Memory Usage %:对于一个已经运行一段时间的数据库来说,共享池内存使用率,应该稳定在75%-90%间,如果太小,说明Shared Pool有浪费,而如果高于90,说明共享池中有争用,内存不足。这个数字应该长时间稳定在75%~90%。

如果这个百分比太低,表明共享池设置过大,带来额外的管理上的负担,从而在某些条件下会导致性能的下降。如果这个百分率太高,会使共享池外部的组件老化,如果SQL语句被再次执行,这将使得SQL语句被硬解析。在一个大小合适的系统中,共享池的使用率将处于75%到略低于90%的范围内。

SQL with executions>1:执行次数大于1的sql比率,如果此值太小,说明需要在应用中更多使用绑定变量,避免过多SQL解析。在一个趋向于循环运行的系统中,必须认真考虑这个数字。在这个循环系统中,在一天中相对于另一部分时间的部分时间里执行了一组不同的SQL语句。在共享池中,在观察期间将有一组未被执行过的SQL语句,这仅仅是因为要执行它们的语句在观察期间没有运行。只有系统连续运行相同的SQL语句组,这个数字才会接近100%。

Memory for SQL w/exec>1:执行次数大于1的SQL消耗内存的占比。这是与不频繁使用的SQL语句相比,频繁使用的SQL语句消耗内存多少的一个度量。这个数字将在总体上与% SQL with executions>1非常接近,除非有某些查询任务消耗的内存没有规律。在稳定状态下,总体上会看见随着时间的推移大约有75%~85%的共享池被使用。如果Statspack报表的时间窗口足够大到覆盖所有的周期,执行次数大于一次的SQL语句的百分率应该接近于100%。这是一个受观察之间持续时间影响的统计数字。可以期望它随观察之间的时间长度增大而增大。

小结:通过ORACLE的实例有效性统计数据,我们可以获得大概的一个整体印象,然而我们并不能由此来确定数据运行的性能。当前性能问题的确定,我们主要还是依靠下面的等待事件来确认。我们可以这样理解两部分的内容,hit统计帮助我们发现和预测一些系统将要产生的性能问题,由此我们可以做到未雨绸缪。而wait事件,就是表明当前数据库已经出现了性能问题需要解决,所以是亡羊补牢的性质。

5.Top 5 Timed Events

Event Waits Time(s) Avg Wait(ms) % Total Call Time Wait Class CPU time 515 77.6

SQL*Net more data from client 27,319 64 2 9.7 Network

log file parallel write 5,497 47 9 7.1 System I/O

db file sequential read 7,900 35 4 5.3 User I/O

db file parallel write 4,806 34 7 5.1 System I/O

这是报告概要的最后一节,显示了系统中最严重的5个等待,按所占等待时间的比例倒序列示。当我们调优时,总希望观察到最显著的效果,因此应当从这里入手确定我们下一步做什么。例如如果‘buffer busy wait’是较严重的等待事件,我们应当继续研究报告中Buffer Wait和File/Tablespace IO区的内容,识别哪些文件导致了问题。如果最严重的等待事件是I/O事件,我们应当研究按

物理读排序的SQL语句区以识别哪些语句在执行大量I/O,并研究Tablespace 和I/O区观察较慢响应时间的文件。如果有较高的LATCH等待,就需要察看详细的LATCH统计识别哪些LATCH产生的问题。

一个性能良好的系统,CPU Time应该在top 5的前面,否则说明你的系统大部分时间都用在等待上。

在这里,log file parallel write是相对比较多的等待,占用了7%的CPU 时间。

通常,在没有问题的数据库中,CPU time总是列在第一个。

更多的等待事件,参见本报告的Wait Events一节。

四、R AC Statistics

Begin End Number of Instances: 2 2

1.Global Cache Load Profile

Per Second Per Transaction Global Cache blocks received: 4.16 3.51

Global Cache blocks served: 5.97 5.04

GCS/GES messages received: 408.47 344.95

GCS/GES messages sent: 258.03 217.90

DBWR Fusion writes: 0.05 0.05

Estd Interconnect traffic (KB) 211.16

2.Global Cache Efficiency Percentages (Target

local+remote 100%)

Buffer access - local cache %: 98.60

Buffer access - remote cache %: 0.12

Buffer access - disk %: 1.28

3.Global Cache and Enqueue Services - Workload

Characteristics

Avg global enqueue get time (ms): 0.1

Avg global cache cr block receive time (ms): 1.1

Avg global cache current block receive time (ms): 0.8

Avg global cache cr block build time (ms): 0.0

Avg global cache cr block send time (ms): 0.0

Global cache log flushes for cr blocks served %: 3.5 Avg global cache cr block flush time (ms): 3.9 Avg global cache current block pin time (ms): 0.0 Avg global cache current block send time (ms): 0.0 Global cache log flushes for current blocks served %: 0.4 Avg global cache current block flush time (ms): 3.0

4.Global Cache and Enqueue Services - Messaging

Statistics

Avg message sent queue time (ms): 0.0 Avg message sent queue time on ksxp (ms): 0.3 Avg message received queue time (ms): 0.5 Avg GCS message process time (ms): 0.0 Avg GES message process time (ms): 0.0 % of direct sent messages: 14.40 % of indirect sent messages: 77.04 % of flow controlled messages: 8.56

五、M ain Report

?Wait Events Statistics

?SQL Statistics

?Instance Activity Statistics

?IO Stats

?Buffer Pool Statistics

?Advisory Statistics

?Wait Statistics

?Undo Statistics

?Latch Statistics

?Segment Statistics

?Dictionary Cache Statistics

?Library Cache Statistics

?Memory Statistics

?Streams Statistics

?Resource Limit Statistics

?init.ora Parameters

六、M ore RAC Statistics

?RAC Report Summary

?Global Enqueue Statistics

?Global CR Served Stats

?Global CURRENT Served Stats

?Global Cache Transfer Stats

七、W ait Events Statistics

?Time Model Statistics

?Wait Class

?Wait Events

?Background Wait Events

?Operating System Statistics

?Service Statistics

?Service Wait Class Stats

1.等待事件介绍

Oracle等待事件是衡量Oracle运行状况的重要依据及指示,等待事件分为两类:空闲等待事件和非空闲等待事件, TIMED_STATISTICS = TRUE 那么等待事件按等待的时间排序,= FALSE那么事件按等待的数量排序。运行statspack期间必须session上设置TIMED_STATISTICS = TRUE,否则统计的数据将失真。空闲等待事件是oracle正等待某种工作,在诊断和优化数据库时候,不用过多注意这部分事件,非空闲等待事件专门针对oracle的活动,指数据库任务或应用程序运行过程中发生的等待,这些等待事件是我们在调整数据库应该关注的。对于常见的等待事件,说明如下:

(1)db file scattered read 文件分散读取

该事件通常与全表扫描或者fast full index scan有关。因为全表扫描是被放入内存中进行的进行的,通常情况下基于性能的考虑,有时候也可能是分配不到足够长的连续内存空间,所以会将数据块分散(scattered)读入Buffer Cache中。该等待过大可能是缺少索引或者没有合适的索引(可以调整optimizer_index_cost_adj) 。这种情况也可能是正常的,因为执行全表扫描可能比索引扫描效率更高。当系统存在这些等待时,需要通过检查来确定全表扫描是否必需的来调整。因为全表扫描被置于LRU(Least Recently Used,最近最少适用)列表的冷端(cold end),对于频繁访问的较小的数据表,可以选择把他们Cache 到内存中,以避免反复读取。当这个等待事件比较显著时,可以结合v$session_longops 动态性能视图来进行诊断,该视图中记录了长时间(运行时间超过6 秒的)运行的事物,可能很多是全表扫描操作(不管怎样,这部分信息都是值得我们注意的)。

关于参数OPTIMIZER_INDEX_COST_ADJ=n:该参数是一个百分比值,缺省值为100,可以理解为FULL SCAN COST/INDEX SCAN COST。当n%* INDEX SCAN COST

(2)db file sequential read 文件顺序读取

整代码,特别是表连接:该事件说明在单个数据块上大量等待,该值过高通常是由于表间连接顺序很糟糕(没有正确选择驱动行源),或者使用了非选择性索引。通过将这种等待与statspack报表中已知其它问题联系起来(如效率不高的sql),通过检查确保索引扫描是必须的,并确保多表连接的连接顺序来调整。

(3)buffer busy wait 缓冲区忙

增大DB_CACHE_SIZE,加速检查点,调整代码:

当进程需要存取SGA中的buffer的时候,它会依次执行如下步骤的操作:

当缓冲区以一种非共享方式或者如正在被读入到缓冲时,就会出现该等待。该值不应该大于1%。当出现等待问题时,可以检查缓冲等待统计部分(或V$WAITSTAT),确定该等待发生在什么位置:

如果等待是否位于段头(Segment Header)。这种情况表明段中的空闲列表(freelist)的块比较少。可以考虑增加空闲列表(freelist,对于Oracle8i DMT)或者增加freelist groups(在很多时候这个调整是立竿见影的(alter table tablename strorage(freelists 2)),在8.1.6之前,这个freelists参数不能动态修改;在8.1.6及以后版本,动态修改feelists需要设置COMPATIBLE至少为8.1.6)。也可以增加PCTUSED与PCTFREE之间距离(PCTUSED-to-pctfreegap),其实就是说降低PCTUSED的值,尽快使块返回freelist列表被重用。如果支持自动段空间管理(ASSM),也可以使用ASSM模式,这是在ORALCE 920以后的版本中新增的特性。

如果这一等待位于undo header,可以通过增加回滚段(rollback segment)来解决缓冲区的问题。

如果等待位于undo block上,我们需要增加提交的频率,使block可以尽快被重用;使用更大的回滚段;降低一致读所选择的表中数据的密度;增大DB_CACHE_SIZE。

如果等待处于data block,表明出现了hot block,可以考虑如下方法解决:①将频繁并发访问的表或数据移到另一数据块或者进行更大范围的分布(可以增大pctfree值,扩大数据分布,减少竞争),以避开这个"热点"数据块。②也可以减小数据块的大小,从而减少一个数据块中的数据行数,降低数据块的热度,减小竞争;③检查对这些热块操作的SQL语句,优化语句。④增加hot block 上的initrans值。但注意不要把initrans值设置的过于高了,通常设置为5就足够了。因为增加事务意味着要增加ITL事务槽,而每个ITL事务槽将占用数据块中24个字节长度。默认情况下,每个数据块或者索引块中是ITL槽是2个,在增加initrans的时候,可以考虑增大数据块所在的表的PCTFREE值,这样

Oracle实验报告

Oracle数据库实验报告 实验一:Oracle 10g安装卸载及相关工具配置 一、实验目标: 安装Oracle 10g,了解OEM,通过DBCA安装数据库,通过DBCA删除数据库,sqldeveloper连接数据库,卸载oracle 10g。 二、实验学时数 2学时 三、实验步骤和内容: 1、安装Oracle10g(默认安装数据库) 双击setup.exe, 选择基本安装,安装目录D:盘,标准版,默认数据库orcl,口令bhbh。 进入先决条件检查界面时:网络配置需求选项不用打勾,直接下一步,是。 直到安装成功。 2、登陆和了解OEM 主要是已网页的形式来对数据库进行管理。

http://主机IP:1158/em 用户名:sys 口令:bhbh 身份:sysdba 或者 用户名:system 口令:bhbh 身份:normal 3、通过DBCA删除已安装的默认数据库orcl 程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->删除数据库->…… 4、通过DBCA安装数据库xscj 程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->创建数据库->…… 5、sqldeveloper连接数据库 打开sqldeveloper,新建连接 连接名:system_ora 用户名:system 口令:bhbh 主机名:本机计算机名 SID:xscj 测试,显示成功,连接,保存。

6、卸载oracle 10g Windows下 1>停止所有Oracle服务,点Universal Installer卸载 2>删除注册表中的所有关于Oracle项 在HKEY_LOCAL_MACHINE\SOFTWARE下,删除Oracle目录 3>删除硬盘上所有Oracle文件。 (1)Oracle安装文件 (2)系统目录下,在Program files文件夹中的Oracle文件 四、上机作业 根据实验步骤完成逐个实验目标中的任务。 五、心得体会 通过这次的实验,我了解了oracle数据库的情况。懂得了数据库就是把数据存储在一个类似与仓库的地方,需要用时才从数据库里调出来。通过上机实践,知道了装数据库和卸载数据库,并且学会了怎样连数据库。 实验二:Oracle 10g手工建数据库 一、实验目标: 安装Oracle 10g数据库环境,手工建立数据库;通过Net Configuration Assistant建立监听,使用sqldeveloper连接数据库测试。 二、实验学时数 2学时 三、实验步骤和内容: 先安装好Oracle 10g数据库环境(不安装默认数据库)。 1.创建好相关的目录

Oracle 实验4(实验报告)-PL_SQL程序设计

学期 Oracle数据库应用技术 实验报告 选课序号: 班级: 学号: 姓名: 指导教师:史金余 成绩: 2017年月日

目录 1.实验目的 (1) 2.实验内容 (1) 2.1 触发器设计 (2) 2.2 存储过程、自定义函数设计 (2) 2.3 程序包设计 (3) 3.实验步骤 (3) 3.1 创建表空间RESTAURANT,创建用户DINER (3) 3.2 创建餐饮系统数据库的所有表,并向各表插入演示数据 (4) 3.3 完成【实验内容】中的触发器、存储过程、函数和程序包等 功能设计,将程序脚本保存到文本文件Source.sql中 (7) 4.实验总结 (13)

PL/SQL程序设计 1.实验目的 ◆掌握PL/SQL程序设计基本技巧,包括基本数据类型、表类型、数组类 型、匿名程序块、控制语句、PL/SQL中使用SQL语句、游标、错误处 理等。 ◆熟悉和掌握PL/SQL中关于存储过程、函数、包和触发器程序设计技术。 2.实验内容 实验平台:PL/SQL Developer或Oracle的其它客户端管理工具。 某餐饮系统数据库(加粗字段为主键,斜体字段为外键),请创建如下各数据表,并实现如下存储过程、函数、包和触发器等功能设计,将程序脚本保存到文本文件Source.sql中: (1)菜肴类别表MK(菜肴类别编号MKid,菜肴类别名称MkName),菜肴类别名称:鱼类、蔬菜类、凉菜类、肉类、主食类和酒水类等。 (2)菜单信息表MList(菜肴编号Mid,菜肴名称Mname,菜肴类别MKid,菜肴单价Mprice,菜肴成本单价Mcost,更新日期Mdate)。 (3)餐台类别表DK(餐台类别编号DKid,餐台类别名称DkName),餐台类别:包间和散台等。 (4)餐台信息表Dinfo (餐台编号Did,餐台名称Dname,餐台类别DKid,座位数Dseats,更新日期Ddate)。 (5)消费单主表C (消费单号Cid,餐台编号Did,消费开始时间StartTime,结账时间EndTime,消费金额合计Smoney,盈利金额合计SPsum),其中,消费金额合计=消费单明细表CList中该消费单号的所有消费记录的消费金额的合计,即SUM(消费金额)或SUM(菜肴单价×消费数量),盈利金额合计=消费单明细表CList中该消费单号的所有消费记录的盈利合计,即SUM((菜肴单价- 菜肴成本单价)×消费数量)。 (6)消费单明细表CList (消费单号Cid,序号Sid,菜肴编号Mid,菜肴名称Mname,消费数量Cqty,菜肴单价Mprice,菜肴成本单价Mcost,消费金额Cmoney) ,消费金额=消费数量×菜肴单价;消费数量为正数是正常点菜,消费数量为负数是退菜,消费数量为0是赠菜。

数据库sqlserver实验报告

实验一熟悉常用的 DBMS:SQL SERVER2008、Oracle 试验内容及要求: (1)了解不同数据库管理系统及不同版本的相应功能特点 目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX和INGRES。这些产品都支持多平台,如UNIX、VMS、Windows,但支持的程度不一样。IBM的DB2也是成熟的关系型数据库。但是,DB2是内嵌于IBM的AS/400系列机中,只支持OS/400操作系统。 1.MySQL MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。 MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。与其他数据库管理系统相比,MySQL具有以下优势: (1)MySQL是一个关系数据库管理系统。 (2)MySQL是开源的。 (3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。 (4)MySQL服务器工作在客户/服务器或嵌入系统中。 (5)有大量的MySQL软件可以使用。 2.SQL Server SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。 目前最新版本是SQL Server2005,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。 SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,

四川师范大学《oracle》实验报告

声明:此文档只作为学习参考,不得用作它途! 实验一了解ORACLE环境,使用ORACLE数据库实用工具 1.目的要求: 了解ORACLE数据库的各个常用工具软件 2.实验内容: 在ORACEL数据库下使用SQL*PLUS ,SQL*PLUS Worksheet,PL/SQL Developer 工具,企业管理器等实用工具与Oracle交互。并在企业管理器中观察ORACLE的底层存储原理。在PL/SQL Developer中书写简单的SQL语言。 3.主要仪器设备及软件 1)PC 2)ORACLE数据库 实验二熟悉SQL语言 1.目的要求 在SQL*PLUS或PL/SQL Developer工具中编写SQL语句 2.实验内容

在ORACLE 数据库中定义用户,给用户赋权限,创建,修改和删除表格,视图等数据库对象,并向表格中插入,修改和删除数据。体会SQL语言中ORACLE的“方言”。 对自己建立的表做查询:包括单表查询,多表查询,嵌套查询,分组查询,相关查询 3.主要仪器设备及软件 1)PC 2)ORACLE数据库 自定义用户:create user taozi identified by taozi; 给用户赋DBA权限:grant dba to taozi; 创建表格 student,sc,course: Create table student (sno char(10) primary key, sname varchar(20) not null, sage smallint, ssex char(2), sdept varchar(20)); Create table course (cno char(10) primary key, cname varchar(50) not null, credit smallint); Create table sc (sno char(10), cno char(10), grade smallint, primary key(sno,cno)); 创建视图:create view oracle as (select sno,sname,sage from student); 删除视图:delete oracle; 为student 表增加一列 jiguan: alter table student add jiguan varchar(10); 删除jiguan 列:alter table student drop column jiguan; 删除student 表结构:drop table student; 插入数据:insert into student values('004','AA','21','f','MA'); insert into student values('005','BB','20','m','CS');

oracle实验报告

四川师范大学计算机学院oracle实验报告册 院系名称:计算机科学学院 课程名称:oracle数据库运用与开发 实验学期2012 年至2013 年第 1 学期 专业班级:电子商务2010级5班 姓名:苏瑶学号:2010110338 指导教师:俞晓老师 实验最终成绩:

实验一了解ORACLE环境,使用ORACLE数据库实用工具 (验证性实验 4学时) 1.目的要求: 了解ORACLE数据库的各个常用工具软件 2.实验内容: 在ORACEL数据库下使用SQL*PLUS ,SQL*PLUS Worksheet,PL/SQL Developer工具,企业管理器等实用工具与Oracle交互。并在企业管理器中观察ORACLE的底层存储原理。在PL/SQL Developer中书写简单的SQL语言。 3.主要仪器设备及软件 1)PC 2)ORACLE数据库

--创建用户 create user user1 identified by user1; --赋给用户建表、连接等权限 grant connect to user1; grant create any table to user1; grant resource ,dba to u1; --连接用户 Conn user1/user1; --收回权限(dba ) revoke dba from u1;

------------------------------------------------------------------------- 实验二熟悉SQL语言 (验证性实验 4学时) 1.目的要求 在SQL*PLUS或PL/SQL Developer工具中编写SQL语句 2.实验内容 在ORACLE 数据库中定义用户,给用户赋权限,创建,修改和删除表格,视图等数据库对象,并向表格中插入,修改和删除数据。体会SQL语言中ORACLE的“方言”。 对自己建立的表做查询:包括单表查询,多表查询,嵌套查询,分组查询,相关查询 3.主要仪器设备及软件 1)PC 2)ORACLE数据库 --修改数据: update student set sAge=19where sage=18; --删除数据: delete from student where sname='吴芳'; --输出成绩大于60小于80的学生的名字 select sname from student,sc where grade >60and grade <80and student.sno=sc.sno; --输出学生表中的总人数 select count(*)from student;

《Oracle数据库》实验报告

实验二Oracle数据库开发环境下PL/SQL编程(2学时) 【实验目的】 (1)掌握PL/SQL 的基本使用方法。 (2)在SQL*PLUS环境下运行PL/SQL的简单程序。 (3)应用PL/SQL 解决实际问题 【实验内容与步骤】 一、实验内容: 1、用PL/SQL实现:输入eno的值,显示emp表中对应记录的内容。 2、用PL/SQL完成:读入三个数,计算并输出它们的平均值及三个数的乘积。

3、对职工表emp中的雇员SCOTT提高奖金,若工种为MANAGER,则奖金提高其原来的20%;若工种为SALESMAN,则奖金提高其原来的15%;若工种为ANALYST,则奖金提高其原来的10%, 其它都按原来的7%提高。

4、用PL/SQL块实现下列操作 公司为每个职工增加奖金:若职工属于30号部门,则增加$150;若职工属于20号部门, 则增加$250;若职工属于10号部门,则增加$350。(提示:游标请自行阅读相关内容) DECLARE addcomm https://www.doczj.com/doc/a715326847.html,m%type; CURSOR emp_cursor IS select deptno from emp; BEGIN

FOR emprec IN emp_cursor LOOP IF emprec.deptno=30 THEN addcomm:=150; ELSIF emprec.deptno=20 THEN addcomm:=250; ELSIF emprec.deptno=10 THEN addcomm:=350; END IF; Update emp set comm=comm+ addcomm where deptno= emprec.deptno; END LOOP; COMMIT WORK; END; 实验三PL/SQL触发器和存储过程(2学时) 【实验目的】 (1)了解触发器的类型。 (2)掌握PL/SQL触发器的使用方法。 (3)了解存储过程的使用方法。 (4)掌握存储过程的使用方法。 【实验内容】 实验内容: 1、编写一个数据库触发器,当任何时候某个部门从dept表中删除时,该触发器将从emp 表中删除该部门的所有雇员。(要求:emp表、dept表均为复制后的表) CREATE OR REPLACE TRIGGER del_emp_deptno BEFORE DELETE ON dept FOR EACH ROW BEGIN DELETE FROM emp WHERE deptno=:OLD.deptno; END;

21oracle实训报告

B04900046 编号: 学号:201240420121 Array ORACLE数据库系统实训 题目高校设备管理系统的设计与实现 专业网络工程 班级1班 姓名张长江 同组人员邓鹏飞、程文高、黄晓欢 指导教师张国军 2015 年 6 月27 日

目录 一实训概述 (2) 二数据需求分析 (3) 2.1实体及属性 (3) 2.2实体与实体的联系 (3) 2.3功能分析 (3) 2.3.1设备查找 (3) 2.3.2添加设备 (4) 2.3.3 编辑设备 (4) 2.3.4删除设备 (4) 2.3.5反馈管理 (4) 2.4 数据流 (4) 三概念设计(E-R) (7) 四逻辑结构设计和物理结构设计 (8) 1.1逻辑结构设计 (8) 1.2物理结构设计 (8) 1.2.1索引 (9) 1.2.2视图 (10) 1.2.3存储过程 (10) 五数据库在ORACLE中的实现 (11) 六课程实训总结 (14) 参考文献 (15)

一实训概述 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。 在了解了ORACLE数据库后,我们有必要对ORACLE和Sybase SQL Server 的比较,Oracle采用的是并行服务器模式,而Sybase SQL Server采用的是虚拟服务器模式,它没有将一个查询分解成多个子查询,再在不同的CPU上同时执行这些子查询。我们可以说在对称多处理方面Oracle的性能优于Sybase的性能。业务量往往在系统运行后不断提高,如果数据库数量达到GB以上时,我们在提高系统的性能方面可以从两方面入手,一种是提高单台服务器的性能,还有就是增加服务器数目。基于此,如果我们是提高单台服务器的性能,选择Oracle 数据库较好,因为它们能在对称多CPU的系统上提供并行处理。相反,由于Sybase的导航服务器使网上的所有用户都注册到导航服务器并通过导航服务提出数据访问请求,导航服务器则将用户的请求分解,然后自动导向由它所控制的多台SQL Server,从而在分散数据的基础上提供并行处理能力,我们可以选择它。这些都是在其他条件和环境相同的情况下比较的,这样才有可比性。在数据的分布更新方面,Oracle采用的是基于服务器的自动的2PC(两阶段提交),而Sybase采用的则是基于客户机DB-Library或CT-Library的可编程的2PC,因此我们在选择数据库方面,必须根据需要进行选择,比如,从事的社会保险软件的开发,考虑到数据量大,并发操作比较多,实时性要求高,我们后台基本采取的是ORACLE数据库。Oracle服务器由Oracle数据库和Oracle实例组成。Oracle实例由系统全局区内存结构和用于管理数据库的后台进程组成。

oracle设计实验报告材料

课程设计 课程题目:ORACLE应用系统设计设计题目:音像店信息管理系统 专业:计算机科学与技术 班级:计131 组员:李霆桑珠扎西虞洲 学号: 130761 130767 130762 日期: 2016-03-04 信息工程学院计算机科学与技术

目录 一.课程目的………………………………………………………. 二.题目要求……………………………………………………… 三.日期安排………………………………………………………. 四.组内分工……………………………………………………… 五.实验条件......................................................... ........................... 六.实验内容......................................................... ........................... (1)第一部分:Oracle管理技术……………………………………… 1.数据库管理…………………………………………………….. 2.角色和用户管理………………………………………………... 3.表和视图管理………………………………………………….. 4.索引和序列管理………………………………………………... 5.PL/SQL编程…………………………………………………… 6.使用游标、存储过程和触发器………………………………… 7.表空间管理……………………………………………………… 8.文件管理………………………………………………………… (2)第二部分:Oracle开发技术……………………………………….. ①数据库设计………………………………………………………………… ②界面设计.................................................... ③结果测试…………………………………………………………………… 七.问题及解决…………………………………………………….. 八.总结...............................................

oracle实习报告陈华波

Oracle数据库技术 实习报告 姓名:陈华波 学院:计算机学院 专业:计算机科学与技术 学号:20111002654 班级:191112 指导老师:吴湘宁 时间:2015年1月6日

一、主要操作步骤 (一)配置监听程序:开始菜单中打开Oracle - OraDb11g_home1——配置和移植工具——Net Configuration Assistant; (二)使用使用Oracle SQL Developer链接所创建的数据库 在开始菜单中打开Oracle - OraDb11g_home1——应用程序开发——SQL Developer (三)使用PowerDesigner建立简单的关系型数据库 1、建表 打开PowerDesigner新建一个表,双击该表格,可以更改表属性,并为表添加字段 2、添加字段 3、添加表关系 4、生成物理数据模型 点击Tools——》Generate Physical Data Model,将概念数据模型转化为物理数据模型; 5、生成SQL命令语句 Database-》Generate Database,运行SQL Developer,打开生成的*.sql文件; 6、生成rtf格式数据设计报告 7、实习截图:

二、实习总结 通过老师在课上的讲解和几次上机实践,学会了Oracle数据库的基本理论知识和简单的操作。能够安装Oracle数据库,配置监听程序,学会了用PowerDesigner进行数据库建模,可以进行PL/SQL语言编程,学会简单操作PLSQL Developer等等。 学会使用Powerdesigner软件,建立关系型的数据库模型,添加字段,建立表关系,生成物理数据模型、SQL语句,等等。 以前在面向对象程序设计课程设计中使用过Access数据库,这个学习的Oracle被称之为大型的、专业数据库,广泛应用在各种大型项目中。然而,我的课程设计没有开发大型项目,没能够感受到Oracle大型数据库区别于其他中小型数据库的特性。不过,有一点可以感受到,那就是Oracle占用的计算机资源较多,在自己的电脑上运行比较慢。 总的来说这个课程还是学到了很多知识,和我们本学期的空间数据库课程有相通的地方,在以后会继续自学Oracle,争取更加熟练的使用。 三、报告

数据库系统实验报告图书馆管理系统oraclejava

湖南科技大学 数学与计算科学学院 数据库系统 课程设计 课程设计题目:图书馆管理系统指导教师:刘*芳 学生院系:数学学院 学生班级:信计*班 学生姓名:黎*文 学生学号: **

目录

一.任务书 1.题目:图书馆管理系统 2.内容及要求: (1)创建数据库存储信息 (2)开发java前端程序,使用数据库。 (3)具有实际应用价值 3.实验成员分工: 黎*文:主要负责物理结构,数据库实施,数据库与前端的连接处理操作。 沈*杰:主要负责系统界面、概念与逻辑结构的设计,并进行维护调试。 二.相关技术与环境介绍 开发工具:oracle 11g,Eclipse 开发语言:Java 开发环境:JDK 运行环境:Windows 10 其他辅助工具:PowerDesigner165,edrawmax 核心技术:JOBC对数据库的操作,java操作界面的设计,各种布局方式和插件(1)使用JFrame控件进行界面设计 (2)使用静态字段实现窗体间的数据传递 (3)使用代码方式向容器控件中添加控件 (4)数据库连接和前台操作 (5)数据库和开发工具之间的编码转换 三.需求分析 图书馆管理系统是一个高度集成的图书信息处理系统,通过将图书馆的各种功能进行整合,从而达到显示检索信息,提高工作效率,降低管理成本等目的。一个典型的图书馆管理系统应该能够管理所有的图书种类,图书信息以及读者信息,还需要提供各种图书信息的检索查询功能。该系统还需要能够对图书的借阅,归还进行管理,并对读者的罚款进行自动计算。通过该系统的自动化管理,能够大

大减少图书馆管理人员,还能减少管理人员的工作任务,从而降低管理开销和成本。一个完整的图书馆管理系统包括前台和后台,前台主要是显示在计算机屏幕上的显示界面,有各种指令按钮,操作框以及文本框,后台主要是为前台的一些操作提供一些必要的数据,也就是一个相对于系统比较完整的数据库,操作员以及各类图书的信息,借书者的信息等等。 此次的图书馆管理系统有如下几个重要功能: (1)管理员可以方便进行图书管理,用户管理,管理员管理。图书管理包括图书信息以及图书分类的添加,修改,删除。用户管理包括用户信息的添加,删除,修改。管理员管理包括管理员信息的添加,删除,修改等。 (2)管理员可以修改自己的以及用户密码,修改前需先核实自己的原始密码。 (3)实现模糊查询,使用户得到更多的相关记录。并且考虑使用的方便性,一些经常使用的输入无须用户输入,比如进行图书查询时图书分类只须用户做选择就可以。 (4)如果出现超期未还的情况,能够就做出记录,并作出相应处罚处理。 四.概念结构设计 E-R图的设计 (1)学生E-R图:

ORACLE实训心得体会

o r a c l e实训 总结 系别:信管院班级:姓名:浦江峰学号 日期: 2012年12月21日 实训总结: 由于感到oracle实训担子很重,而自己的学识、能力和阅历与其任职都有一定的距离,所以总 不敢掉以轻心,总在学习,向书本学习、向周围的同学学习,向老师请教,这样下来感觉自己半年来 还是有了一定的进步。 颠末一个星期的oracle数据库实训,让我体会到了日常仄凡是很多课堂上所无法实践知晓的, 让人收获颇丰,明白如何去应用。而本次数据库实训的目标是让我们把握数据库系统的原理。将理论 与实践相结合,利用现有的数据库管理系统硬件、范例、科学地完成一个设计。 这个星期是我们oracle 数据库管理课的实训,经过一个星期的实训,让我领会到了许多平时课 堂上所没有接受的课外知识,很让人受益匪浅,懂得如何去运用,而进行的一次分析设计综合的训练。而本次实训的目的是让我们掌握数据库系统的原理、技术。将理论与实际相结合,应用现有的数据库 管理系统软件,规范、科学地完成一个设计与实现。这次我们实训的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从实 训中让我更明白一些知识,表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就 会越深刻。我们实训的另一个内容是数据库的约束、视图、查询。从中我们了解到查询语句的基本结构,和简单select语句的使用,多表连接查询。而在视图的操作中,也了解到了视图是常见的数据库对象,是提供查看和存取数据的另一种途径,对查询执行的大部分操作,使用视图一样可以完成。使 用视图不仅可以简化数据操作,还可以提高数据库的安全性,不仅可以检索数据,也可以通过视图向 基表中添加、修改和删除数据。存储过程、触发器也是我们实训的内容之一,在操作中有建立存储过程,执行存储过程,及查看和修改存储过程,这些都是非常基础的东西,但对用户却是非常重要的呢,只有熟悉了t_sql语言,才能更好的掌握更多的东西。我们还学习了,数据库的管理、数据的导入、 导出、备份和还原。有oracle 安全访问控制;登录账户的管理;数据库角色的管理;用户权限管理。维护数据库的安全是确保数据库正常运行的重要工作。数据的备份是对oracle数据事务日志进行拷贝,数据库备份记录了在进行备份操作的数据库中所有数据的状态。而数据的备份还分为数据库完整备份、差异备份、事务日志备份、文件及文件组备份。做数据备份就是为了以后的数据库恢复用。在实训内 容上我们还做了图书管理数据库,其中的要求包含了许多数据库的对象,综合了我们所学的许多知识,让我们更努力的把所学到的东西运用上去。 实训课是在学习与探索中度过的,短暂的一星期实训是结束了,但其中让我们学到了许多知识,出现许多未知的为什么,如仓库管理数据库的初步设置、数据备份与还原的步骤,如何建立视图、触 发器等一系列的问题,正是在老师和同学的共同努力之下,我们才一步步把问题解决了,最终完成了 不可能完成的任务。 日期:2012年12月21日篇二:oracle实训总结 oracle数据库管理与应用实训总结 在这一周oracle数据库管理与应用的实训的时间里,实训老师针对我们本学期的学习,有针对 性地对我们进行了很有价值的实训工作,从最基础的字段类型,到一般的oracle语句,如创建数据表、视图、存储过程、触发器等,给我们细心讲解,虽然oracle数据库管理与应用的课已经学习了将近一学期,但对其简单的知识点运用的都不是很熟练,没能真正去融会贯通。 不过,经过为期一周的针对性实训,我学到了很多知识,把以前学的所有知识点都贯穿到一起,又温习了一遍,让我们能从真正意义上了解到oracle数据库的用处。 不论再用到什么软件编写网站,都会用到数据库连接,都要从那个数据库中调用数据,这说明了数据库的重要性,认识到学习数据库的必要性。oracle数据库是很重要的数据库系统。在数据库实训 过程中,难免会出现小错误,但经过我们的讨论研究,加上老师认真的辅导,我们会解决这些错误, 从而更加熟练掌握oracle数据库。这一周不仅学到了oracle数据库的知识,还培养了我们的团队合

Oracle11g实验报告

目录 1oracle数据库sqlplus工具-sqlplus常用命令操作手册 (1) 1.1管理员的本地登录sqlplus / as sysdba (1) 1.2sqlplus 工具使用help index 显示所有你可以输入的sqlplus命令 (4) 2EM 企业管理dbconsole 图形管理界面-管理开发-SQL-development (7) 2.1==========EM 企业管理dbconsole 图形管理界面===== (7) 2.2============使用oracle管理开发工具oracle sql developer管理数据库 (18) 3使用第三方工具PL-SQL development管理数据库 (25) 3.1安装oracle-instantclient,在安装目录下面创建/network/admin,然后将服务 器上su -oracle (26) 3.2下面开始安装PL-SQL-development,打开软件安装包,Chinese.exe是汉化包, keygen.exe是破解补丁包,setup.exe是安装包,先双击安装包安装 (27) 4SQL语句基础1 (32) 4.1select :从1个或多个表中查找数据。 (32) 4.2----------------desc 表名:查看表的字段信息----------------- (33) 4.3---------------------------列别名------------------- (34) 4.4||-------------连接符 (35) 4.5---------原意显示--------------------- (36) oracle数据库sqlplus工具-sqlplus常用命令操作手册 管理员的本地登录sqlplus / as sysdba sqlplus -sql 结构化查询语句登录

oracle实验报告

Oracle实验报告 姓名 学院: 年级: 班级: 指导老师:

实验一了解ORACLE环境,使用ORACLE数据库实用工具 (验证性实验4学时) 1.目的要求: 了解ORACLE数据库的各个常用工具软件 2.实验内容: 在ORACEL数据库下使用SQL*PLUS ,SQL*PLUS Worksheet,PL/SQL Developer工具,企业管理器等实用工具与Oracle交互。并在企业管理器中观察ORACLE的底层存储原理。在PL/SQL Developer中书写简单的SQL语言。 简单SQL语句:select * from student; 3.主要仪器设备及软件 1)PC 2)ORACLE数据库 ------------------------------------------------------------------------- 实验二熟悉SQL语言 (验证性实验4学时) 1.目的要求 在SQL*PLUS或PL/SQL Developer工具中编写SQL语句 2.实验内容 在ORACLE 数据库中定义用户,给用户赋权限,创建,修改和删除表格,视图等数据库对象,并向表格中插入,修改和删除数据。体会SQL语言中ORACLE的“方言”。 对自己建立的表做查询:包括单表查询,多表查询,嵌套查询,分组查询,相关查询 自定义用户:create user zy identified by qwer; 赋权限:grant dba to zy; 建表,插入数据: create table student (sno char(9) primary key, sname char(20) unique, ssex char (2), sage smallint, sdept char(20) ); insert into student(sno,sname,ssex,sage,sdept) values('001','李勇','男','20','CS'); insert into student(sno,sname,ssex,sage,sdept)values('002','刘晨','女','19','CS'); insert into student(sno,sname, ssex,sage,sdept)values('003','王敏','女','18','MA'); insert into student(sno,sname,ssex,sage,sdept)values('004','李浩','男','19','MA'); insert into student(sno,sname, ssex,sage,sdept)values('005','张力','男','19','IS');

oracle实验报告模板

oracle实验报告模板 实验 1数据库管理 一、目的和要求 (1)了解 Oracle 数据库的逻辑结构和物理结构; (2)了解 Oracle Enterprise Manager 的使用情况; (3)学习关闭和启动数据库实例的方法; (4)学习使用 SQL 语句创建数据库的方法; (5)学习使用 SQL 语句删除数据库的方法。 二、实验准备 首先要了解 Oracle 数据库的逻辑结构,包括方案(schema)对象、数据块(data block)、区间(extent)、段(segment)和表空间(tablespace)等。数据库由若干个表空间组成,表空间由表组成,段由区间组成,区间则由数据块组成。Oracle 数据库的物理结构由构成数据库的操作系统文件所决定。每个 Oracle 数据库都由 3 种类型的文件组成:数据文件、日志文件和控制文件。这些数据库文件为数据库信息提供真正的物理存储。 Enterprise Manager 10g 是 Oracle 10g 提供的新的管理工具,简称 EM。使用它可以完成启动、关闭数据库,创建、删除数据库等功能。只有系统管理员或拥有 CREAT E DATABASE权限的用

户才能创建数据库。可以在 Enterprise Manager 中通过图形界面创建数据库,也可以使用 CREATE DATABASE 语句创建数据库。 三、实验内容 (1)练习使用不同方法启动和关闭数据库实例。 (2)练习使用不同方法创建和删除数据库,要使操作的数据库为用户管理数据库UserMan。 1.使用 SHUTDOWN 命令关闭数据库实例 练习使用 SHUTDOWN 命令关闭数据库实例,分别按以下方式启动数据库实例。 (1)正常关闭。等待当前所有已连接的用户断开与数据库的连接,然后关闭数据库。 正常关闭的语句如下: SHUTDOWN NORMAL (2)立即关闭。回退活动事务处理并断开所有已连接的用户,然后关闭数据库。立即 关闭的语句如下: SHUTDOWN IMMEDIATE (3)事务处理关闭。完成事务处理后断开所有已连接的用户,然后关闭数据库。事务 处理关闭的语句如下: SHUTDOWN TRANSACTIONAL

(完整word版)太原理工大学 oracle 大型数据库实验报告

本科实验报告 课程名称:大型数据库系统实验项目:创建数据库和表实验地点:多学科楼4506 专业班级:软件工程0901 学号:200 学生姓名: 指导教师: 2012年 4 月17 日

一、实验目的和要求 1.了解数据库的结构以及一些基本概念。 2.了解表的结构特点。 3.了解Oracle 11g的基本数据类型。 4.学会使用DBCA创建数据库。 5.学会使用界面方式创建表。 6.学会使用SQL语句手工创建数据库。 7.学会使用SQL语句创建表。 二、实验内容和原理 1.能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数 据库大小、SGA分配和存储数据库的文件。 3.确定数据库包含哪些表以及所包含的各表的结构,还要了解Oracle 11g 的常用数据类型,以创建数据库的表。 4.创建企业管理的员工管理数据库YGGL,包含Employees(员工自然 信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。 各表的结构如下所示。

三、主要仪器设备 Windows XP/7、oracle 10g/11g 四、操作方法与实验步骤 1.利用DBCA创建数据库 1)数据库名称为YGGL,它的全局数据库名称为YGGL。 2)控制文件三个,存放路径为……………………,名称分别为 CONTROL01.CR、CONTROL02.CR和CONTROL03.CR。 3)重做日志文件三个,大小为100MB,存放路径为:………………, 名称分别为redo01.log、redo02.log和redo03.log。 4)创建临时表空间temp01.dpf。 5)数字字符集为ZHS16GBK,国家字符集为AL16UTF16。 6)数据块大小为4KB。 进入DBCA,根据其提示逐步完成数据库的创建工作。 实际情况,我以创建表空间代替。 2.利用DBCA删除数据库(实际不操作) 3.在OEM和利用sql语句分别创建表 下面列出建表语句: /** 创建Departments表 */ create table Departments( department_id char(3), department_name varchar2(20) not null, note varchar2(100), constraint departments_pk primary key(department_id) ) tablespace yggl;

Oracle实验报告2答案

《Oracle数据库技术》 实验指导书2 基本SELECT、WHERE和ORDER BY 子句的使用

实验要求 1)掌握SQL*PLUS的基本使用. 2)掌握SELECT语句的简单用法. 3)掌握WHERE子句的用法。 4)掌握ORDER BY子句的用法。 实验步骤 (1)登录到SQL*Plus,初始用户名:SCOTT,口令为TIGER。 (2)分别显示EMP﹑DEPT﹑SALGRADE表结构,并查看表中的数据.

(3)创建一个查询显示每个雇员的姓名﹑工作﹑受雇日期及雇员编号,并且要将雇员编号作为第一列显示,最后将该SQL语句保存成文件plql.sql,并执行该脚本文件。 (4)将脚本文件plql.sql调取到SQL缓冲区,并将列标题设置为 Emp #,Employee,Job 及Hire Date,将SQL语句保存成文件plq2.sql,最后返回查询结果。

(5)创建一个查询显示工资大于2850美元的姓名及工资。将该查询保存成脚本文件p2q1.sql,并执行该文件。 (6)修改脚本文件p2q1.sql,显示工资不在1500到2850美元之间的雇员的姓名及工资,并以p2q2.sql文件重新保存该查询。 (7)修改文件p2q2.sql,显示在10和30部门工作并且工资大于1500美元的雇员

的姓名和工资,列标题显示为Employee和MonthlySalary,最后以p2q3.sql重新保存该文件, 返回查询结果。 (8)修改脚本文件p2q3.sql显示奖金比工资多10﹪以上的雇员的姓名﹑工资及奖金。将该查询保存成p2q4.sql脚本文件,并返回查询结果。 思考练习题 1.下面的SELECT语句能成功执行吗? SQL>SELECT ename, job, sal Salary 2 FROM emp; 可以执行! 2.下面的语句有三处错误,请纠正它们. SQL>SELECT empno,ename 2 salary *12 ANNUAL SLARY 3 FROM emp; 3.创建一个查询EMP表中检索出不重复的工作名称

ORACLE实验报告

实验报告课程名称:大型数据库系统实验项目:数据库实验 实验地点:逸夫楼202 专业班级:软件班学号:2010 学生姓名:王者清风 指导教师:沈晋原 20年4月12日

太原理工大学实验报告一 学院名称软件学院专业班级实验成绩学生姓名学号实验日期 课程名称大型数据库 系统实验题目 1、Oracle11g的安装与配置 2、创建数据库和表 一、实验目的和要求:了解Oracle11g的下载、解压及安装过程和正确的安装步骤。 了解和解决安装过程中的各种问题,以成功的安装这一大型数据库软件,使其相应的OEM,SQL Plus和SQL Developer都能够正常工作。 了解数据库的结构以及一些基本概念;了解表的结构特点;了解oracle11g的基本数据类型;学会使用DBCA创建数据库;学会使用界面方式创建表;学会使用SQL 语句手工创建数据库;学会使用SQL语句创建表。 二、实验内容: 1、下载Oracle11g 2、在笔记本电脑上解压和安装此大型数据库系统 3、解决安装过程中出现的各种问题,使其能够正常工作。给出安装阶段相应的截图以显示安装的成功。以及最终安装成功后打开的OEM界面、SQL Plus的登录界面和SQL Developer 的界面。 4、创建企业管理的员工管理数据库YGGL或在上列步骤中创建的数据库中创建下列表:employees表、departments表和salary表。各表的结构如教材p307-308页所示。 5.利用DBCA创建数据库。如教材p308页所示。为避免破坏以建立的数据库,此步骤中只要求给出书中要求各步骤的相应DBCA截图,而不完成其实际操作。 6、利用DBCA删除数据库。给出截图,不做实际操作。 7、根据教材p309页的要求,在YGGL或实验一创建的数据库的OEM中分别创建表。给出相应截图。 8、根据教材p309页的要求,在YGGL或实验一中创建的数据库的OEM中删除已创建的表。给出相应截图。 9、在SQL Developer中创建表 根据教材p309页的要求,用SQL Developer在YGGL或实验一中创建的数据库重建上述各表。注意,连接名可直接用数据库名而不必加'_ora',但要保证SID名要与数据库名一致。给出相应过程及结果截图。 10、使用SQL Developer删除所创建的Employees表。步骤如教材p310页所示。给出相应过程及结果截图 11、使用PL/SQL命令语句创建Employee表。此内容可在SQL Plus或SQL Developer环境中完成,如教材p310页所示。给出相应语句段及结果截图。

相关主题
文本预览
相关文档 最新文档