SlideShare uma empresa Scribd logo
1 de 23
设计可扩展的 Oracle 应用
我是谁 ? ,[object Object],[object Object],[object Object],[object Object],[object Object]
议程 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
可扩展性 ?
可扩展性 ?
可扩展性 ?
可扩展性 ? ,[object Object],[object Object],[object Object],http://www.dbthink.com/?p=352
Amdahl's law ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],http://en.wikipedia.org/wiki/Amdahl%27s_law
USL Scalability ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Guerrilla Capacity Planning Chapter 4 By Neil Gunther
可扩展性 ? ,[object Object],http://www.dbthink.com/?p=352
可扩展性 ? ,[object Object],[object Object],[object Object],http://www.dbthink.com/?p=352
提高扩展能力的方式 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
横向扩展  Vs  纵向扩展 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
使用连接池 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
使用连接池—性能比较
使用绑定变量 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
不同解析方式下的性能
使用批量接口 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
使用批量接口的性能
你了解哪些缓存 ? ,[object Object],[object Object],[object Object]
使用各种缓存 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
范式化  vs  反范式化 ,[object Object],[object Object],[object Object],[object Object],[object Object]
A ny  Q uestions

Mais conteúdo relacionado

Semelhante a 设计可扩展的Oracle应用

MySQL 網路參考架構
MySQL 網路參考架構MySQL 網路參考架構
MySQL 網路參考架構
郁萍 王
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric
John Chang
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructure
kyhpudding
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构
Cosey Lee
 
Oracle ha
Oracle haOracle ha
Oracle ha
xlight
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
YANGL *
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构
drewz lin
 
Tup2 人人网张铁安
Tup2 人人网张铁安Tup2 人人网张铁安
Tup2 人人网张铁安
yongboy
 
人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析
isnull
 
Accelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraAccelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud era
Junchi Zhang
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
ITband
 
Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享
drewz lin
 

Semelhante a 设计可扩展的Oracle应用 (20)

Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
MySQL 網路參考架構
MySQL 網路參考架構MySQL 網路參考架構
MySQL 網路參考架構
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructure
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构
 
Oracle ha
Oracle haOracle ha
Oracle ha
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese
 
Tup2 人人网张铁安
Tup2 人人网张铁安Tup2 人人网张铁安
Tup2 人人网张铁安
 
人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析
 
张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介
 
Accelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraAccelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud era
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
 
Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享
 
大型网站架构设计
大型网站架构设计大型网站架构设计
大型网站架构设计
 
Raising The MySQL Bar-Manyi Lu
Raising The MySQL Bar-Manyi LuRaising The MySQL Bar-Manyi Lu
Raising The MySQL Bar-Manyi Lu
 
Paas研究介绍
Paas研究介绍Paas研究介绍
Paas研究介绍
 

Mais de james tong

我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx
james tong
 
Enqueue Lock介绍.ppt
Enqueue Lock介绍.pptEnqueue Lock介绍.ppt
Enqueue Lock介绍.ppt
james tong
 
Oracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.pptOracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.ppt
james tong
 
Cassandra简介.ppt
Cassandra简介.pptCassandra简介.ppt
Cassandra简介.ppt
james tong
 

Mais de james tong (17)

数据库系统设计漫谈
数据库系统设计漫谈数据库系统设计漫谈
数据库系统设计漫谈
 
Migrating from MySQL to PostgreSQL
Migrating from MySQL to PostgreSQLMigrating from MySQL to PostgreSQL
Migrating from MySQL to PostgreSQL
 
Oracle 性能优化
Oracle 性能优化Oracle 性能优化
Oracle 性能优化
 
Cap 理论与实践
Cap 理论与实践Cap 理论与实践
Cap 理论与实践
 
Scalable system operations presentation
Scalable system operations presentationScalable system operations presentation
Scalable system operations presentation
 
Benchmarks, performance, scalability, and capacity what s behind the numbers...
Benchmarks, performance, scalability, and capacity  what s behind the numbers...Benchmarks, performance, scalability, and capacity  what s behind the numbers...
Benchmarks, performance, scalability, and capacity what s behind the numbers...
 
Stability patterns presentation
Stability patterns presentationStability patterns presentation
Stability patterns presentation
 
The right read optimization is actually write optimization
The right read optimization is actually write optimizationThe right read optimization is actually write optimization
The right read optimization is actually write optimization
 
My sql ssd-mysqluc-2012
My sql ssd-mysqluc-2012My sql ssd-mysqluc-2012
My sql ssd-mysqluc-2012
 
Evaluating ha alternatives my sql tutorial2
Evaluating ha alternatives my sql tutorial2Evaluating ha alternatives my sql tutorial2
Evaluating ha alternatives my sql tutorial2
 
Troubleshooting mysql-tutorial
Troubleshooting mysql-tutorialTroubleshooting mysql-tutorial
Troubleshooting mysql-tutorial
 
Understanding performance through_measurement
Understanding performance through_measurementUnderstanding performance through_measurement
Understanding performance through_measurement
 
我对后端优化的一点想法 (2012)
我对后端优化的一点想法 (2012)我对后端优化的一点想法 (2012)
我对后端优化的一点想法 (2012)
 
我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx
 
Enqueue Lock介绍.ppt
Enqueue Lock介绍.pptEnqueue Lock介绍.ppt
Enqueue Lock介绍.ppt
 
Oracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.pptOracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.ppt
 
Cassandra简介.ppt
Cassandra简介.pptCassandra简介.ppt
Cassandra简介.ppt
 

设计可扩展的Oracle应用

Notas do Editor

  1. <? $time_start = microtime(true); $n = 50; for ( $i = 1 ; $i <= $n ; $i ++ ) { //$conn[$i] = oci_new_connect ("james","james","dbmain"); //Decicated Connection //$conn[$i] = oci_new_connect ("james","james","dbmains"); //Shared Connection $conn[$i] = oci_new_connect ("james","james","dbmainp"); //Pooled Connection } $time_end = microtime(true); $time = $time_end - $time_start; echo "Create $n Connections Time Elapsed : $time seconds\\n"; for ( $i = 1; $i <= $n ; $i ++) { oci_close($conn[$i]); } ?>
  2. [oracle@localhost ~]$ cat basicbind.sql alter session set session_cached_cursors = 0; set feedback off heading off timing on declare v_cust_id varchar2(30); begin for i in 1..200000 loop execute immediate 'select user_name from james_t where id = :id ' into v_cust_id using i; end loop; end; / exit; [oracle@localhost ~]$ cat nobind.sql alter session set session_cached_cursors = 0; set feedback off heading off timing on declare v_cust_id varchar2(30); begin for i in 1..200000 loop execute immediate 'select user_name from james_t where id = ' || i || '' into v_cust_id; end loop; end; / exit; [oracle@localhost ~]$ cat enhancedbind.sql set feedback off heading off timing on declare v_cust_id varchar2(30); begin for i in 1..200000 loop execute immediate 'select user_name from james_t where id = :id ' into v_cust_id using i; end loop; end; / exit; [oracle@localhost ~]$ cat noparse.sql set heading off feedback off timing on declare card_cur integer; v_cust_id varchar2(30); ignore integer; begin card_cur := dbms_sql.open_cursor; dbms_sql.parse(card_cur, 'select user_name from james_t where id = :id ',dbms_sql.native); for i in 1..200000 loop dbms_sql.define_column_char(card_cur, 1, v_cust_id,30); dbms_sql.bind_variable(card_cur, ':id', i); ignore := dbms_sql.execute(card_cur); end loop; dbms_sql.close_cursor(card_cur); end; / exit; [oracle@localhost ~]$ [oracle@localhost ~]$ cat stress.sh echo "stree $1 concurrency" for num in `seq 1 $1`; do sqlplus -S james/james @$2 & done wait 847 for SEQ in `seq 1 6`; do stress.sh $SEQ noparse.sql; done 848 for SEQ in `seq 1 6`; do stress.sh $SEQ enhancedbind.sql; done 849 for SEQ in `seq 1 6`; do stress.sh $SEQ basicbind.sql; done 850 for SEQ in `seq 1 6`; do stress.sh $SEQ nobind.sql; done