oracle怎么用rda oracle怎么用sql语句把一个表的所有字段名转为大写

oracle rac awr报告中std怎么分析

AWR 是 Oracle 10g 版本 推出的新特性, 全称叫Automatic Workload Repository-自动负载信息库

公司主营业务:网站建设、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出隆化免费做网站回馈大家。

AWR 是通过对比两次快照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分。

WORKLOAD REPOSITORY report for

DB Name

DB Id

Instance

Inst num

Release

RAC

Host

ICCI

1314098396

ICCI1

1

10.2.0.3.0

YES

HPGICCI1

Snap Id

Snap Time

Sessions

Cursors/Session

Begin Snap:

2678

25-Dec-08 14:04:50

24

1.5

End Snap:

2680

25-Dec-08 15:23:37

26

1.5

Elapsed:

78.79 (mins)

DB Time:

11.05 (mins)

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

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

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

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

在79分钟里(其间收集了3次快照数据),数据库耗时11分钟,RDA数据中显示系统有8个逻辑CPU(4个物理CPU),

平均每个CPU耗时1.4分钟,CPU利用率只有大约2%(1.4/79)。说明系统压力非常小。

列出下面这两个来做解释:

Report A:

Snap Id Snap Time Sessions Curs/Sess

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

Begin Snap: 4610 24-Jul-08 22:00:54 68 19.1

End Snap: 4612 24-Jul-08 23:00:25 17 1.7

Elapsed: 59.51 (mins)

DB Time: 466.37 (mins)

Report B:

Snap Id Snap Time Sessions Curs/Sess

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

Begin Snap: 3098 13-Nov-07 21:00:37 39 13.6

End Snap: 3102 13-Nov-07 22:00:15 40 16.4

Elapsed: 59.63 (mins)

DB Time: 19.49 (mins)

服务器是AIX的系统,4个双核cpu,共8个核:

/sbin bindprocessor -q

The available processors are: 0 1 2 3 4 5 6 7

先说Report A,在snapshot间隔中,总共约60分钟,cpu就共有60*8=480分钟,DB time为466.37分钟

则:cpu花费了466.37分钟在处理Oralce非空闲等待和运算上(比方逻辑读)

也就是说cpu有 466.37/480*100% 花费在处理Oracle的操作上,这还不包括后台进程

看Report B,总共约60分钟,cpu有 19.49/480*100% 花费在处理Oracle的操作上

很显然,Report B中服务器的平均负载很低。

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

可是对于批量系统,数据库的工作负载总是集中在一段时间内。如果快照周期不在这一段时间内,

或者快照周期跨度太长而包含了大量的数据库空闲时间,所得出的分析结果是没有意义的.

这也说明选择分析时间段很关键,要选择能够代表性能问题的时间段。

Report Summary

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等。

dictionary cache用来存储最近引用的数据字典。

发生在library cache或dictionary cache的cache miss代价要比发生在buffer cache的代价高得多。

因此shared pool的设置要确保最近使用的数据都能被cache。

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:每次排序的行数

注:

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中的进行比较;

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

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

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

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 Hit99%,否则意味着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基本没有被重用。

Shared Pool Statistics

Begin

End

Memory Usage %:

47.19

47.50

% SQL with executions1:

88.48

79.81

% Memory for SQL w/exec1:

79.99

73.52

Memory Usage %:对于一个已经运行一段时间的数据库来说,共享池内存使用率,应该稳定在75%-90%间,

如果太小,说明Shared Pool有浪费,而如果高于90,说明共享池中有争用,内存不足。

这个数字应该长时间稳定在75%~90%。如果这个百分比太低,表明共享池设置过大,带来额外的管理上的负担,从而在某些条件下会导致性能的下降。

如果这个百分率太高,会使共享池外部的组件老化,如果SQL语句被再次执行,这将使得SQL语句被硬解析。

在一个大小合适的系统中,共享池的使用率将处于75%到略低于90%的范围内.

SQL with executions1:执行次数大于1的sql比率,如果此值太小,说明需要在应用中更多使用绑定变量,避免过多SQL解析。

 

 

 

如何分析Oracle

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

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

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

指标公式:

每个CPU耗时:=DB Time / 逻辑cpu个数=11.05/8=1.4

CPU利用率:DB Time / (逻辑cpu个数*Elapsed)=11.05/(8*78.19) *100%=2%

我想学oracle数据库,请教如何安装单机版.怎么使用啊

服务器与客户端可以装在一台电脑上,装上oracle数据库服务器就足够了,这时你已经拥有oracle客户端的功能。(1)你可以通过第三方软件:如 PLSQL Developer(非常强大的Oracle数据库操作软件)来操作Oracle数据库;(2)当然装完Oracle数据库服务器以后,你也可以通过控制台来操作,步骤如下:开始-〉运行-〉cmd(打开控制台窗口)-〉敲入 sqlplus -输入正确的用户名密码(如scott/tiger)就可以操作了。

装完Oracle数据库服务器以后,如果你还装Oracle客户端(Client),那么你在连接数据库的时候记得加上完整的数据库服务名:如scott/tiger@127.0.0.1:1521/YourInstanceName

这样也能保证正确的操作数据库了。

oracle 里面declare怎么用啊?

1、启动plsql并登陆oracle数据库。

2、创建测试表-- 创建表create table TestTable(  id      varchar2(36) not null,  colcode nvarchar2(50),colname nvarchar2(50));-- 给表名添加备注 comment on table TestTable is '测试表';-- 添加主键alter table TestTable add constraint ID primary key (ID)。

3、插入测试数据(除了F8执行SQL之外,还需要点击【提交】按钮才能将数据插入到数据库)。

4、desc 作为降序排序的关键字,按照COLCODE 列降序展示表数据SELECT * FROM TESTTABLE ORDER BY COLCODE DESC。

5、【DESC + 表名】:显示表的详细字段(直接在Plsql的sql窗口中执行会报错)。

名称栏目:oracle怎么用rda oracle怎么用sql语句把一个表的所有字段名转为大写
本文路径:https://www.cdcxhl.com/article20/hjohco.html

成都网站建设公司_创新互联,为您提供小程序开发外贸网站建设网站设计品牌网站建设网站收录云服务器

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司