此文章主要介绍的是通过优化数据库来大幅度的提高Oracle数据库性能,以下几个简单的相关步骤就可以简单实现Oracle数据库性能,下面就是文章的具体内容的描述,望你浏览之后会对其有所了解。

数据库优化的讨论可以说是一个永恒的主题。资深的Oracle优化人员通常会要求提出Oracle数据库性能问题的人对数据库做一个statspack,贴出数据库配置等等。还有的人认为要抓出执行最慢的语句来进行优化。

但实际情况是,提出疑问的人很可能根本不懂执行计划,更不要说statspack了。而我认为,数据库优化,应该首先从大的方面考虑:网络、服务器硬件配置、操作系统配置、Oracle服务器配置、数据结构组织、然后才是具体的调整。

实际上网络、硬件等往往无法决定更换,应用程序一般也无法修改,因此应该着重从数据库配置、数据结构上来下手,首先让数据库有一个良好的配置,然后再考虑 具体优化某些过慢的语句。我在给我的用户系统进行优化的过程中,总结了一些基本的,简单易行的办法来优化数据库,算是我的三板斧,呵呵。

不过请注意,这些不一定普遍使用,甚至有的会有副作用,但是对OLTP系统、基于成本的数据库往往行之有效,不妨试试。(注:附件是Burleson写的用来报告Oracle数据库性能等信息的脚本,本文用到)

一.设置合适的SGA

常常有人抱怨服务器硬件很好,但是Oracle就是很慢。很可能是内存分配不合理造成的。(1)假设内存有512M,这通常是小型应用。建议Oracle 的SGA大约240M,其中:共享池(SHARED_POOL_SIZE)可以设置60M到80M,根据实际的用户数、查询等来定。

数据块缓冲区可以大致分配120M-150M,8i下需要设置DB_BLOCK_BUFFERS,DB_BLOCK_BUFFER*DB_BLOCK_SIZE等于数据块缓冲区大小。9i 下的数据缓冲区可以用db_cache_size来直接分配。

(2)假设内存有1G,Oracle 的SGA可以考虑分配500M:共享池分配100M到150M,数据缓冲区分配300M到400M。

(3)内存2G,SGA可以考虑分配1.2G,共享池300M到500M,剩下的给数据块缓冲区。

(4)内存2G以上:共享池300M到500M就足够啦,再多也没有太大帮助;(Biti_rainy有专述)数据缓冲区是尽可能的大,但是一定要注意两 个问题:一是要给操作系统和其他应用留够内存,二是对于32位的操作系统,Oracle的SGA有1.75G的限制。有的32位操作系统上可以突破这个限 制,方法还请看Biti的大作吧。

二.分析表和索引,更改优化模式

Oracle数据库性能默认优化模式是CHOOSE,在这种情况下,如果表没有经过分析,经常导致查询使用全表扫描,而不使用索引。这通常导致磁盘I/O太多,而导致查询很慢。如果没有使用执行计划稳定性,则应该把表和索引都分析一下,这样可能直接会使查询速度大幅提升。

分析表命令可以用ANALYZE TABLE 分析索引可以用ANALYZE INDEX命令。对于少于100万的表,可以考虑分析整个表,对于很大的表,可以按百分比来分析,但是百分比不能过低,否则生成的统计信息可能不准确。可 以通过DBA_TABLES的LAST_ANALYZED列来查看表是否经过分析或分析时间,索引可以通过DBA_INDEXES的 LAST_ANALYZED列。

下面通过例子来说明分析前后的速度对比。(表CASE_GA_AJZLZ大约有35万数据,有主键)首先在SQLPLUS中打开自动查询执行计划功能。(第一次要执行\\RDBMS\\ADMIN\\utlxplan.sql来创建PLAN_TABLE这个表)

SQL>SETAUTOTRACEON

SQL>SETTIMINGON

通过SETAUTOTRACEON来查看语句的执行计划,通过SETTIMINGON来查看语句运行时间。

SQL> selectcount(*)fromCASE_GA_AJZLZ;

COUNT(*)

346639

已用时间: 00: 00: 21.38

Execution Plan

0 selectSTATEMENT Optimizer=CHOOSE

1 0 SORT (AGGREGATE)

2 1 TABLEACCESS (FULL)OF'CASE_GA_AJZLZ'

……………………

请注意上面分析中的TABLEACCESS(FULL),这说明该语句执行了全表扫描。而且查询使用了21.38秒。这时表还没有经过分析。下面我们来对该表进行分析:

SQL> analyze tableCASE_GA_AJZLZ computestatistics;

表已分析。已用时间: 00: 05: 357.63。然后再来查询:

SQL> selectcount(*)fromCASE_GA_AJZLZ;

COUNT(*)

346639

已用时间: 00: 00: 00.71

Execution Plan

0 selectSTATEMENT Optimizer=FIRST_ROWS (Cost=351 Card=1)

1 0 SORT (AGGREGATE)

2 1 INDEX(FASTFULLSCAN)OF'PK_AJZLZ'(UNIQUE) (Cost=351

Card=346351)

…………………………

请注意,这次时间仅仅用了0.71秒!这要归功于INDEX(FAST FULL SCAN)。通过分析表,查询使用了PK_AJZLZ索引,磁盘I/O大幅减少,速度也大幅提升!下面的实用语句可以 ,上述的相关内容就是对大幅度提高Oracle数据库性能的描述,希望会给你带来一些帮助在此方面。

Oracle数据库进行简单优化,Oracle数据库性能优化相关推荐

  1. 服务器性能优化和Mysql性能优化

    服务器性能优化和Mysql性能优化 影响性能的几个因素 服务器硬件 CPU 内存 IO子系统 服务器系统 CentOS系统参数优化 sysctlconf 优化 limitconf参数优化 磁盘调度策略 ...

  2. 服务器性能优化之网络性能优化

    hi ,大家好,今天分享一篇后台服务器性能优化之网络性能优化,希望大家对Linux网络有更深的理解. 曾几何时,一切都是那么简单.网卡很慢,只有一个队列.当数据包到达时,网卡通过DMA复制数据包并发送 ...

  3. MySQL第12天:MySQL索引优化分析之性能优化案例实践

    MySQL索引优化分析之性能优化案例实践 执行计划中各select_type含义可以看:MySQL第11天:MySQL索引优化分析之性能分析 https://weibo01.blog.csdn.net ...

  4. python数据库优化_python | Mysql性能优化一

    对mysql优化是一个综合性的技术,主要包括 表的设计合理化(符合3NF) 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] 分表技术(水平分割.垂直分割) ...

  5. oracle distinct分页优化_Oracle SQL性能优化最常用的40条建议

    关于Oracle SQL优化的内容,这一篇应该能满足常规大部分的应用优化需求,整整40条优化建议,干货满满. 1. SQL语句执行步骤 语法分析> 语义分析> 视图转换 >表达式转换 ...

  6. oracle 考试技巧,从 TPCH 测试学习性能优化技巧

    一.目标 TPCH是由TPC(Transaction Processing Performance Council)事务处理性能委员会公布的一套针对数据库决策支持能力的测试基准,通过模拟数据库中与业务 ...

  7. Oracle笔记(十二):性能优化篇

    目录 一.概述 二.修改系统全局区 三.修改进程全局区 四.优化查询 分析执行计划 使用索引 优化子查询 五.优化数据库结构 拆分表 增加中间 优化插入记录速度---禁用索引 禁用唯一性检查 使用批量 ...

  8. php ci框架查询数据库占用大量的cpu,CodeIgniter 性能优化

    背景:部署一套PHP微服务接口,需要兼顾性能,开发效率,扩展性.权衡后选择了CodeIgniter:同时优化框架的默认启动项,在qps1000+的压力下整个启动时间优化到5ms左右. 一.选型 背景: ...

  9. 数据库:MySQL大批量SQL插入性能优化

    对于一些数据量较大的数据库系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长.特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久.因此,优化数据库插入性能是很有意 ...

  10. oracle入门很简单豆瓣,Oracle入门经典

    <Oracle入门经典>以初学者为核心,全面介绍了Oracle数据库管理与开发相关的各种技术.在内容排列上由浅入深,让读者循序渐进地掌握Oracle数据库技术:在内容讲解上结合丰富的图解和 ...

最新文章

  1. Oracle中分页查询语句
  2. python 父类构造函数,python 对于子类构造函数重写父类构造函数的了解
  3. 博士申请 | 佐治亚理工学院陈永昕教授招收机器学习理论方向博士生
  4. Android 功耗(18)---android省电和提高效率
  5. java名称服务_java – UnknownHostException:名称或服务未知
  6. JavaSceipt核心语法——运算符
  7. 为何 Emoji 能给产品设计(营销)带来如此大的数据增长?
  8. paip.c++ cli 命令行 调用总结
  9. linux合并pdf命令,LINUX下合并PDF
  10. 网件rax40可以刷梅林_良心曝光网件rax40和华硕ax3000哪个好用?差别大吗?亲测解析内情...
  11. 手机麦克风结构原理图_麦克风工作原理是什么
  12. 关于Jenkins下载代码失败,“Error cloning remote repo ‘origin‘“
  13. excel简繁切换_Excel2010如何找回繁转简繁简转换功能
  14. mysql容灾备份和恢复_关于容灾备份和恢复
  15. (实验)完成一个医院挂号系统
  16. 冷色系清新调、日系清新调 、电影色调复古风、欧美风复古,用曲线就可以调了!!!...
  17. 远程控制计算机显示为什么不能满屏,win7系统连接远程桌面却不能全屏显示的解决方法...
  18. 计算机网络谢希仁第七版课后习题答案(第九章)
  19. 干货,主流大数据技术总结
  20. iOS - 找出汉字拼音首字母

热门文章

  1. centos检测不到磁盘_linux – Centos 7服务器看不到磁盘阵列磁盘
  2. example包下载
  3. 基于ABAQUS蠕变储层稠油蒸汽吞吐开发过程数值模拟
  4. 海康录像机能用别的摄像头吗_海康威视录像机如何添加大华摄像头
  5. 海康大华等录像机、摄像头无法通过GB28181注册到LiveGBS国标平台问题排查方法
  6. Hspice使用.DATA进行仿真分析
  7. Coap协议学习(二)
  8. git和SVN的区别
  9. 《深度学习入门-基于Python的理论与实现》第四章带读 – 神经网络的学习
  10. android pc投屏,如何解决乐播投屏中投屏失败的问题【乐播投屏】