9 Oracle深度学习笔记 性能调优汇总

本文总结了Oracle数据库的性能调优要点,包括硬解析过程、库高速缓存命中率的检查和优化。通过分析数据字典高速缓存命中率、硬解析的TRC文件以及库高速缓存相关统计,提供了调整数据库性能的有效方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

9. Oracle深度学习笔记——性能调优汇总

欢迎转载,转载请标明出处:http://blog.youkuaiyun.com/notbaron/article/details/50621026         

数据字典高速缓存命中率

数据字典高速缓存命中率如下:

select (sum(gets-getmisses-fixed))/sum(gets)"data dictionary hit ratio" from v$rowcache;

 

data dictionary hit ratio

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

                .975728791

参考95~99%

1.  硬解析过程

alter session set sql_trace=true;

alter system flush shared_pool;

select table_name from user_tables whererownum<=5;

打开TRC文件如下:

PARSING IN CURSOR #140195096140104 len=50dep=0 uid=0 oct=3 lid=0 tim=700865302 hv=17921204 ad='97a9d708'sqlid='83dx9sc0j2x5n'

select table_name from user_tables whererownum<=5

END OF STMT

PARSE#140195096140104:c=106000,e=131031,p=2,cr=727,cu=0,mis=1,r=0,dep=0,og=1,plh=5472353,tim=700865301

….

再执行相同的命令如下,查看TRC文件如下:

*** 2016-01-30 17:55:48.379

CLOSE#140195096140104:c=0,e=100,dep=0,type=0,tim=1039278193

=====================

PARSING IN CURSOR #140195096140104 len=50dep=0 uid=0 oct=3 lid=0 tim=1039279623 hv=17921204 ad='97a9d708'sqlid='83dx9sc0j2x5n'

select table_name from user_tables whererownum<=5

END OF STMT

PARSE #140195096140104:c=1000,e=937,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=5472353,tim=1039279622

……

发现命中。

使用tkprof处理一下:

具体使用,可以直接输入tkprof

打开结果文件如下:

select table_name

from

 user_tables where rownum<=5

 

 

call    count       cpu    elapsed       disk     query    current        rows

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

Parse       2      0.05       0.06          0          5          0           0  

Execute     2      0.00       0.00          0          0          0           0  

Fetch       4      0.00       0.00          0        140          0          10 

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

total       8      0.06       0.07          0        145          0          10 

 

Misses in library cacheduring parse: 1

2.  库高速缓存命中率

select sum(pinhits)/sum(pins) Library_cache_hit_ratiofrom v$librarycache;

 

LIBRARY_CACHE_HIT_RATIO

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

              .927807473

参考大于99%

确定库高速缓存的效率

select namespace,pins,pinhits,reloads fromv$librarycache order by namespace;

 

NAMESPACE                                                                   PINS   PINHITS        RELOADS

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

AUDIT POLICY                                                                  66      56              0

BODY                                                                                1301    1097            16

CLUSTER                                                                         1318    1298              0

CONTEXT POLICY                                                                        2       0              0

DBINSTANCE                                                                       0       0              0

DBLINK                                                                                 0       0              0

DIRECTORY                                                                       51     41              0

EDITION                                                                            309     296              0

INDEX                                                                               4516    3082            72

OBJECT ID                                                                           0       0              0

PDB                                                                              0       0              0

QUEUE                                                                                10      6              0

RULESET                                                                             3       2              0

SCHEMA                                                                               0       0              0

SQL AREA                                                                       528694  508982          641

SQL AREA BUILD                                                                         0       0              0

SQL AREA STATS                                                                      6406     262              0

TABLE/PROCEDURE                                                             57487  44691          3245

TEMPORARY INDEX                                                                481       0           45

TEMPORARY TABLE                                                              3361       0          1962

TRIGGER                                                                           528     405              0

USER PRIVILEGE                                                                          1       0              0

 

22 rows selected.

其中RELOAD表示SQL语句在老化后又被重新装入库。可以使用DBMS_SHARED_POOL程序强迫将SQL语句保留在共享池的库高速缓存组中。

V$LIBRARY_CACHE_MEMORY视图确定库高速缓存内存对象的数目

V$SHARED_POOL_ADVICE视图提供各种尺寸的共享池预期可节省的分析时间的信息

3.  优化库高速缓存

l  CUSOR_SHARING

设置CURSOR_SHARING=FORCE来减轻非绑定变量的问题,强制进行绑定变量。

显示实例启动以来,硬分析数与执行数比较结果,如下:

select s.sid,s.value "Hard Parses", t.value"Executions Count" from v$sesstat s,v$sesstat t where s.sid=t.sid ands.statistic#=(select statistic# from v$statname where name='parse count(hard)') and t.statistic#=(select statistic# from v$statname where name='executecount') and s.value >0;

 

      SID Hard Parses Executions Count

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

          1        576                 3895

          9         15                   77

         15        11                   82

         16         8                   51

         21       325                 4506

         22         3                   15

         34         1                   19

         37          1                    1

         39        78                 1680

         45        12                  116

         47         1                    2

         67         6                   80

 

12 rows selected.

l  参数CURSOR_SPACE_FOR_TIME已废弃

l  SESSION_CACHED_CURSORS

一个session可以缓存多少个cursor,让后续相同的SQL语句不再打开游标,从而避免软解析的过程来提高性能。(绑定变量是解决硬解析的问题),软解析同硬解析一样,比较消耗资源.所以这个参数非常重要。

session_cached_cursors这个参数是控制sessioncursor cache的大小的。session_cached_cursors定义了session cursor cache中存储的cursor的个数。这个值越大,则会消耗的内存越多。设置在OPEN_CURSORS和会话中使用的游标的数目之间。

查看游标命中次数

select name,value from v$sysstat where name like'%cursor%';

NAME                                                                              VALUE

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

opened cursors cumulative                                                456915

opened cursors current                                                           33

pinned cursors current                                                            15

session cursor cache hits                                                   151457

session cursor cache count                                                  6346

cursor reload failures                                                               14

cursor authentications                                                          1219

 

7 rows selected.

查看总的分析次数:

select name,value from v$sysstat where name like'%parse%';

 

NAME                                                                              VALUE

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

ADG parselock X get attempts                                                         0

ADG parselock X get successes                                                        0

parse time cpu                                                                        1571

parse time elapsed                                                       4723

parse count (total)                                                      108089

parse count (hard)                                                        8458

parse count (failures)                                                               377

parse count (describe)                                                             21

 

8 rows selected.

4.  确定要定在共享池中的对象

select type,count(*) objects,sum(decode(kept,'YES',1,0))kept, sum(loads)-count(*) reloads from v$db_object_cache group by type order byobjects desc;

 

TYPE                                                                               OBJECTS    KEPT       RELOADS

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

CURSOR                                                                           6419       0           499

CURSOR STATS                                                                         1909    1114              0

TABLE                                                                                  691      30          884

VIEW                                                                                   341       0              5

PACKAGE                                                                          225       0         -120

TYPE                                                                                    163       0          -48

INDEX                                                                                 82      7            83

MULTI-VERSIONED OBJECT                                                            64     62              3

PACKAGE BODY                                                                         43      0              3

Optimizer Finding                                                            43       0              0

SEQUENCE                                                                         28      0           -18

SYNONYM                                                                         28       0           -21

LIBRARY                                                                             23       0           -19

TRIGGER                                                                            21       0              0

Optimizer Directive Owner                                                    16      0              0

FUNCTION                                                                         13      0              3

NONE                                                                                  13      0           -13

CLUSTER                                                                             7       6              0

TYPE BODY                                                                          4       0              0

PROCEDURE                                                                       4       0            -2

SCHEDULER CLASS                                                                    3       0              0

SCHEDULER JOB                                                                         3       0              0

SCHEDULER GLOBAL ATTRIBUTE                                                    2       0              0

QUEUE                                                                                  2       0              0

PUB SUB INTERNAL INFORMATION                                                         2       0              1

OPERATOR                                                                           2       0              0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值