<<Oracle数据库性能优化艺术(第五期)>> 第15周 基于Oracle RAC架构的性能优化
来源:互联网 发布:郑州七中分校知乎 编辑:程序博客网 时间:2024/04/19 05:25
1.演示通过设置不同的服务,达到RAC业务分割的效果。
[oracle@rac3 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac3
ora....C3.lsnr application ONLINE ONLINE rac3
ora.rac3.gsd application ONLINE ONLINE rac3
ora.rac3.ons application ONLINE ONLINE rac3
ora.rac3.vip application ONLINE ONLINE rac3
ora....SM2.asm application ONLINE ONLINE rac4
ora....C4.lsnr application ONLINE ONLINE rac4
ora.rac4.gsd application ONLINE ONLINE rac4
ora.rac4.ons application ONLINE ONLINE rac4
ora.rac4.vip application ONLINE ONLINE rac4
ora.racdb.db application ONLINE ONLINE rac4
ora....b1.inst application ONLINE ONLINE rac3
ora....b2.inst application ONLINE ONLINE rac4
[oracle@rac3 ~]$ srvctl add service -d racdb -s rac_fin -r "racdb1"
[oracle@rac3 ~]$ srvctl add service -d racdb -s rac_mfg -r "racdb2"
[oracle@rac3 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac3
ora....C3.lsnr application ONLINE ONLINE rac3
ora.rac3.gsd application ONLINE ONLINE rac3
ora.rac3.ons application ONLINE ONLINE rac3
ora.rac3.vip application ONLINE ONLINE rac3
ora....SM2.asm application ONLINE ONLINE rac4
ora....C4.lsnr application ONLINE ONLINE rac4
ora.rac4.gsd application ONLINE ONLINE rac4
ora.rac4.ons application ONLINE ONLINE rac4
ora.rac4.vip application ONLINE ONLINE rac4
ora.racdb.db application ONLINE ONLINE rac4
ora...._fin.cs application OFFLINE OFFLINE
ora....db1.srv application OFFLINE OFFLINE
ora...._mfg.cs application OFFLINE OFFLINE
ora....db2.srv application OFFLINE OFFLINE
ora....b1.inst application ONLINE ONLINE rac3
ora....b2.inst application ONLINE ONLINE rac4
[oracle@rac3 ~]$ crs_stat -v | egrep 'fin|mfg'
NAME=ora.racdb.rac_fin.cs
NAME=ora.racdb.rac_fin.racdb1.srv
NAME=ora.racdb.rac_mfg.cs
NAME=ora.racdb.rac_mfg.racdb2.srv
[oracle@rac3 ~]$ srvctl start service -d racdb -s "ora.racdb.rac_fin.cs,ora.racdb.rac_mfg.cs"
PRKP-1025 : The service ora.racdb.rac_fin.cs does not exist.
PRKP-1025 : The service ora.racdb.rac_mfg.cs does not exist.
[oracle@rac3 ~]$ srvctl start service -d racdb -s "ora.racdb.rac_fin.racdb1.srv,ora.racdb.rac_mfg.racdb2.srv"
PRKP-1025 : The service ora.racdb.rac_fin.racdb1.srv does not exist.
PRKP-1025 : The service ora.racdb.rac_mfg.racdb2.srv does not exist.
[oracle@rac3 ~]$ srvctl start service -d racdb -s "rac_fin,rac_mfg"
[oracle@rac3 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac3
ora....C3.lsnr application ONLINE ONLINE rac3
ora.rac3.gsd application ONLINE ONLINE rac3
ora.rac3.ons application ONLINE ONLINE rac3
ora.rac3.vip application ONLINE ONLINE rac3
ora....SM2.asm application ONLINE ONLINE rac4
ora....C4.lsnr application ONLINE ONLINE rac4
ora.rac4.gsd application ONLINE ONLINE rac4
ora.rac4.ons application ONLINE ONLINE rac4
ora.rac4.vip application ONLINE ONLINE rac4
ora.racdb.db application ONLINE ONLINE rac4
ora...._fin.cs application ONLINE ONLINE rac3
ora....db1.srv application ONLINE ONLINE rac3
ora...._mfg.cs application ONLINE ONLINE rac4
ora....db2.srv application ONLINE ONLINE rac4
ora....b1.inst application ONLINE ONLINE rac3
ora....b2.inst application ONLINE ONLINE rac4
[oracle@rac3 ~]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 09-JAN-2014 00:12:00
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER_RAC3
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 08-JAN-2014 20:35:05
Uptime 0 days 3 hr. 36 min. 55 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/ora10g/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /opt/ora10g/product/10.2.0/db_1/network/log/listener_rac3.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.203)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.103)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...
Service "+ASM_XPT" has 1 instance(s).
Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "RACDB" has 2 instance(s).
Instance "racdb1", status READY, has 2 handler(s) for this service...
Instance "racdb2", status READY, has 1 handler(s) for this service...
Service "RACDB_PR" has 2 instance(s).
Instance "racdb1", status READY, has 2 handler(s) for this service...
Instance "racdb2", status READY, has 1 handler(s) for this service...
Service "RACDB_PR_XPT" has 2 instance(s).
Instance "racdb1", status READY, has 2 handler(s) for this service...
Instance "racdb2", status READY, has 1 handler(s) for this service...
Service "rac_fin" has 1 instance(s).
Instance "racdb1", status READY, has 2 handler(s) for this service...
Service "rac_mfg" has 1 instance(s).
Instance "racdb2", status READY, has 1 handler(s) for this service...
Service "racdbXDB" has 2 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
Instance "racdb2", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@rac3 ~]$ cd $ORACLE_HOME/network/admin
[oracle@rac3 admin]$ vim tnsnames.ora
[oracle@rac3 admin]$ tail -32 tnsnames.ora
rac_fin =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac3-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rac_fin)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
rac_mfg =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac4-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rac_mfg)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
[oracle@rac3 admin]$ sqlplus system/oracle@rac_fin
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jan 9 00:17:22 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
racdb1
SQL> select sid,SERVICE_NAME from v$session where sid=(select sid from v$mystat where rownum=1);
SID SERVICE_NAME
---------- ----------------------------------------------------------------
138 rac_fin
SQL> conn system/oracle@rac_mfg
Connected.
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
racdb2
SQL> select sid,SERVICE_NAME from v$session where sid=(select sid from v$mystat where rownum=1);
SID SERVICE_NAME
---------- ----------------------------------------------------------------
147 rac_mfg
SQL>
通过以上步骤可以看到两个rac节点已被分割成了rac_fin和rac_mfg两个服务(业务).
--EOF--
2.对比将并行操作放在RAC多个节点执行和单个节点执行的效率。
INSTANCE_GROUPS和PARALLEL_INSTANCE_GROUP都是RAC参数,并且只能用于并行模式.
INSTANCE_GROUPS指定了节点属于哪个/哪些并行group,PARALLEL_INSTANCE_GROUP指定并行在哪个group里面的节点之间运行.
sqlplus / as sysdba
alter system set instance_groups='node1','allnodes' scope=spfile sid='racdb1';
alter system set instance_groups='node2','allnodes' scope=spfile sid='racdb2';
srvctl stop database -d racdb -o immediate
srvctl start database -d racdb
[oracle@rac3 admin]$ sqlplus scott/tiger
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jan 11 23:20:52 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> show parameter groups
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups string
instance_groups string node1, allnodes
SQL> show parameter instance_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string racdb1
SQL> create table t as select * from dba_objects;
Table created.
SQL> exec dbms_stats.gather_table_stats(user,'T');
PL/SQL procedure successfully completed.
SQL> alter session set tracefile_identifier = racpx;
Session altered.
SQL> alter session set events '10046 trace name context forever,level 12';
Session altered.
SQL> alter session set parallel_instance_group='allnodes';
Session altered.
SQL> select /*+ parallel(t,20) */ count(*) from t;
COUNT(*)
----------
46409
SQL> alter session set parallel_instance_group='node1';
Session altered.
SQL> select /*+ parallel(t,20) */ count(*) from t;
COUNT(*)
----------
46409
SQL> alter session set events '10046 trace name context off';
Session altered.
SQL> exit
[oracle@rac3 udump]$ tkprof racdb1_ora_6388_RACPX.trc racdb1_ora_6388_RACPX.trc.prf sys=no aggregate=no
TKPROF: Release 10.2.0.1.0 - Production on Sat Jan 11 23:36:50 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
[oracle@rac3 udump]$
...
********************************************************************************
alter session set parallel_instance_group='allnodes'
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 0 0 0
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 47
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
select /*+ parallel(t,20) */ count(*)
from
t
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.02 1.09 0 3 0 0
Fetch 2 0.02 0.07 0 0 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.04 1.17 0 3 0 1
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 47
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT AGGREGATE (cr=3 pr=0 pw=0 time=1171723 us)
16 PX COORDINATOR (cr=3 pr=0 pw=0 time=1167642 us)
0 PX SEND QC (RANDOM) :TQ10000 (cr=0 pr=0 pw=0 time=0 us)
0 SORT AGGREGATE (cr=0 pr=0 pw=0 time=0 us)
0 PX BLOCK ITERATOR (cr=0 pr=0 pw=0 time=0 us)
0 TABLE ACCESS FULL T (cr=0 pr=0 pw=0 time=0 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
KJC: Wait for msg sends to complete 2 0.00 0.00
reliable message 4 0.00 0.00
enq: KO - fast object checkpoint 4 0.00 0.00
enq: PS - contention 28 0.00 0.01
DFS lock handle 49 0.19 0.93 (等待49次,最长一次耗时0.19秒,总共等待了0.93秒)
PX Deq: reap credit 431 0.00 0.01
PX Deq: Join ACK 7 0.01 0.03
PX Deq Credit: send blkd 17 0.01 0.02
PX Deq: Parse Reply 16 0.05 0.05
SQL*Net message to client 2 0.00 0.00
PX Deq: Execute Reply 33 0.00 0.05
PX Deq: Signal ACK 9 0.00 0.00
SQL*Net message from client 2 0.00 0.00
********************************************************************************
alter session set parallel_instance_group='node1'
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 0 0 0
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 47
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
select /*+ parallel(t,20) */ count(*)
from
t
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.01 0 3 0 0
Fetch 2 0.00 0.02 0 0 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 0.04 0 3 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 47
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT AGGREGATE (cr=3 pr=0 pw=0 time=46627 us)
7 PX COORDINATOR (cr=3 pr=0 pw=0 time=45644 us)
0 PX SEND QC (RANDOM) :TQ10000 (cr=0 pr=0 pw=0 time=0 us)
0 SORT AGGREGATE (cr=0 pr=0 pw=0 time=0 us)
0 PX BLOCK ITERATOR (cr=0 pr=0 pw=0 time=0 us)
0 TABLE ACCESS FULL T (cr=0 pr=0 pw=0 time=0 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
rdbms ipc reply 4 0.00 0.00
KJC: Wait for msg sends to complete 1 0.00 0.00
reliable message 1 0.00 0.00
enq: KO - fast object checkpoint 4 0.00 0.00
enq: PS - contention 8 0.00 0.00
PX Deq: Join ACK 3 0.00 0.00
PX Deq: Parse Reply 1 0.00 0.00
SQL*Net message to client 2 0.00 0.00
PX Deq: Execute Reply 46 0.00 0.02
PX Deq: Signal ACK 3 0.00 0.00
SQL*Net message from client 2 0.00 0.00
********************************************************************************
...
从以上trace可以看出本例中单节点的并行执行效率大大高于多节点的效率
参考
如何控制RAC跨节点并行计算
http://space6212.itpub.net/231499/viewspace-1045349/
--EOF--
3.演示RAC的cache fusion对数据块访问效率的影响。
通过trace以下两种情况来查看cache fusion对数据块访问效率的影响:
a. 在节点1查询t2
b. 在节点2更新t2表后,再次在节点1运行同样的查询
比较两次查询的资源消耗情况与等待事件.
[oracle@rac3 udump]$ sqlplus scott/tiger@racdb1
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jan 12 00:33:56 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> drop table t2 purge;
Table dropped.
SQL> create table t2 as select * from dept;
Table created.
SQL> exec dbms_stats.gather_table_stats(user,'T2');
PL/SQL procedure successfully completed.
SQL> alter session set tracefile_identifier = CF;
Session altered.
SQL> alter session set events '10046 trace name context forever,level 12';
Session altered.
SQL> select * from t2;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> select 'update t2 in another node and commit' notes from dual;
NOTES
------------------------------------
update t2 in another node and commit
+========================================================+
在节点2更新t2并提交,此处在另一个session中运行:
[oracle@rac4 ~]$ sqlplus scott/tiger@racdb2
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jan 12 00:29:01 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> update t2 set loc='testloc';
4 rows updated.
SQL> commit;
Commit complete.
SQL>
+========================================================+
以下回到节点1:
SQL> select * from t2;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING testloc
20 RESEARCH testloc
30 SALES testloc
40 OPERATIONS testloc
SQL> alter session set events '10046 trace name context off';
Session altered.
SQL> exit
[oracle@rac3 udump]$ tkprof racdb1_ora_32125_CF.trc racdb1_ora_32125_CF.trc.prf sys=no aggregate=no
TKPROF: Release 10.2.0.1.0 - Production on Sun Jan 12 00:36:13 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
[oracle@rac3 udump]$ view racdb1_ora_32125_CF.trc.prf
...
********************************************************************************
alter session set events '10046 trace name context forever,level 12'
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1 0.00 0.00 0 0 0 0
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 47
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
select *
from
t2
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 4 0 4
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 0.00 0 4 0 4
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 47
Rows Row Source Operation
------- ---------------------------------------------------
4 TABLE ACCESS FULL T2 (cr=4 pr=0 pw=0 time=38 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 0.00 0.00
********************************************************************************
select 'update t2 in another node and commit' notes
from
dual
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 0 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 0.00 0 0 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 47
Rows Row Source Operation
------- ---------------------------------------------------
1 FAST DUAL (cr=0 pr=0 pw=0 time=5 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 0.00 0.00
library cache lock 1 0.00 0.00
********************************************************************************
select *
from
t2
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 4 4 0 4
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 0.00 4 4 0 4
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 47
Rows Row Source Operation
------- ---------------------------------------------------
4 TABLE ACCESS FULL T2 (cr=4 pr=4 pw=0 time=2262 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
gc cr multi block request 2 0.00 0.00
db file scattered read 1 0.00 0.00
SQL*Net message from client 2 0.00 0.00
********************************************************************************
...
从trace可以看出本例中cache fusion使得查询消耗的时间增加了60倍, 极大地降低了数据块访问效率.
--EOF--
4.写出你对RAC的性能以及适用场景的观点。
通过把并行进程分散到rac的节点能更加充分的利用各个节点的计算能力,可能能够提升程序的性能,但是如果cache fusion情况严重,则可能损害性能.
因此部署rac的主要目的应是通过实例冗余实现高可用,而不是提高性能.
--EOF--
- <<Oracle数据库性能优化艺术(第五期)>> 第15周 基于Oracle RAC架构的性能优化
- <<Oracle数据库性能优化艺术(第五期)>> 第1周 性能优化综述
- <<Oracle数据库性能优化艺术(第五期)>> 第13周 性能视图和性能参数
- <<Oracle数据库性能优化艺术(第五期)>> 第4周 优化器
- <<Oracle数据库性能优化艺术(第五期)>> 第2周 锁
- <<Oracle数据库性能优化艺术(第五期)>> 第3周 Latch
- <<Oracle数据库性能优化艺术(第五期)>> 第5周 Hints
- <<Oracle数据库性能优化艺术(第五期)>> 第6周 等待事件
- <<Oracle数据库性能优化艺术(第五期)>> 第9周 并行执行
- <<Oracle数据库性能优化艺术(第五期)>> 第11周 sql_trace及10046
- <<Oracle数据库性能优化艺术(第五期)>> 第12周 10053事件
- <<Oracle数据库性能优化艺术(第五期)>> 第14周 性能报告分析(AWR,ASH)
- 【内存博文】第15周 基于Oracle RAC架构的性能优化
- <<Oracle数据库性能优化艺术(第五期)>> 第7周 索引和分区(包括11g下新的组合分区)
- <<Oracle数据库性能优化艺术(第五期)>> 第8周 分析及动态采样(包括11g下的extended statistics技术)
- <<Oracle数据库性能优化艺术(第五期)>> 第10周 变量邦定(包括11g下Adaptive cursor sharing技术)
- Oracle数据库性能优化的艺术pdf
- Oracle数据库性能的优化
- hdu 大菲波数
- Python 的join函数
- 树木品种-Qsort
- UITableView的基本使用三(自定义Cell)
- python操作MySQL数据库
- <<Oracle数据库性能优化艺术(第五期)>> 第15周 基于Oracle RAC架构的性能优化
- singleton
- 模态对话框和非模态对话框
- [Leetcode] Word Break (Java)
- 【序一】由nodejs+mongodb开发的ideas小站
- 照片Urls
- 【HPC】MIC和GPU在高性能计算中的使用
- Java 类实例化顺序
- Unity3D支持导入的模型格式