热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle数据库及应用程序优化开发者网络Oracle

Oracle数据库及应用程序优化开发者网络Oracle

Oracle数据库及应用程序优化开发者网络Oracle

正在看的ORACLE教程是:Oracle数据库及应用程序优化开发者网络Oracle。

介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。

  摘 要:本文对ORACLE数据库及ORACLE应用程序的优化,进行了全面的分析与研究,并提出了自己的一些建议。

  关 键 词:ORACLE,优化,数据库,SQL

  1.引言

  随着信息化时代的到来,人们开始广泛地使用数据库技术对大量而复杂的信息进行科学高效的管理。在数据库领域中的各种应用软件大量涌现,有Visual Foxpro,Power Builder等等,但其中ORACLE是这个领域中最优秀也是最流行的大型数据库应用软件。本文就在ORACAL中如何优化数据库及其应用程序进行了研究。

  2.优化数据库

  2.1 优化设置控制文件的个数,位置及其备份
建议CONTROL_FILE初始化参数中指定多个文件应大于2,并将控制文件镜像到不同位置,并要把这些控制文件备份到安全的磁盘中。

  2.2优化设计表空间,数据文件的大小及位置

  2.2.1设计表空间

  尽量把同一时间对磁盘的读写操作分散开,如对一个表中数据进行更新时,数据库将同时去读该表中的数据和该表上的索引信息,如果把表的数据信息和索引信息都放在同一个数据文件中,则数据库的速度将会变慢。最好是把数据信息和索引信息分别放在不同磁盘的两个数据文件中,此时数据库对磁盘的读写操作将分散在两个磁盘上,速度将得到显著提高。因此在设计数据库的表空间和数据文件时,首先给表和表的索引分别创建两个表空间(存放用户数据的数据表空间和存放表索引的索引表空间)。另外,还根据该系统的数据量的大小及系统中的数据的性质不同,再考虑创建几个数据表空间或者给数据表空间添加几个数据文件。

  2.2.2设计数据文件的大小

  把记录大小相当的表放在同一个表空间中,这时一个表空间的存储参数设置,可以保证表中的记录都放在一个范围中,避免了一条记录跨范围存放,可以明显数据库的性能。

  2.2.3设计数据文件的位置

  为了避免磁盘的I/O操作冲突,应把数据文件创建在不同位置。

[NextPage]

2.3优化设计重演日志文件

  2.3.1 重演日志文件的大小

  由于数据库在利用重演日志文件时是循环使用它们的,而且当LGWR进程在两个日志文件切换时,将自动产生一个检测点,所以重演日志文件的大小会直接影响到检测点出现的频率。而由于在数据库检测点时,对用户而言,数据库的速度会受影响,所以检测点的出现频率大,或者检测点正好出现在数据库处理数据高峰期,将会极大影响数据库的性能。因此,重演日志文件的大小设计,应考虑检测点出现的频率以及检测点应避开数据库处理数据的高峰期。

  2.3.2 重演日志文件组的个数

  在ARCHIVELOG模式下时,适当增加重演日志文件组的个数,可以降低数据库存档日志文件的频率。

  2.3.3 重演日志文件的存档

  应把重演日志文件的存档之处设置在磁盘读写更快的物理设备上。这样可以减少日志文件的存档时间。

  2.4 回滚段的优化设计

  2.4.1 回滚段数目的设计

  要考虑数据库需要支持的并发事务的数目,因为每个回滚段有其所能支持的最大事务数,如果回滚段数目不够多,则有些新事务被迫要等待,将影响数据库的性能。

  2.4.2 回滚段大小的设计

  要考虑该回滚段能容纳数据库可能的最大事务的回滚项数。

  2.5 优化数据库使用的内存配置

  要调整数据库的高速缓冲区,共享池、重演日志缓冲区和进程全局区的大小平衡问题。

  3.优化应用程序

  3.1 采取统一的SQL程序

  因为ORACLE在执行SQL文时,首先将当前要执行的SQL文与公共区域中保存的先前执行过的SQL文进行比较,SQL文相同时,就会跳过当前要执行的SQL文的解析处理,这样通过减少解析次数就加快SQL文的执行速度。

  3.2 选取合适的SQL代码

  在进行数据库操作时,同一结果可以用很多方法来实现。我们应当选取合适的SQL代码,使其更容易明了,并且运行速度更快。

  3.3 明确列名

  使用SELECT取得的列名一定要明确指定,并且应当使抽出的记录要尽量少。用SORT等的场合,因为ORACLE将必要的列的值放到WORK领域,因此减少列数也就节约了I/O回数。

  3.4 注意结合索引的顺序

  由于列的顺序不同而导致索引的作用效果不同。例如:(AGE,ADDRESS)顺序的结合索引。

WHERE AGE=28 AND ADDRESS='BEI JING' &结合索引有效
WHERE AGE=28 &结合索引有效
WHERE ADDRESS='BEI JING' &结全索引无效

  3.5 注意WHERE的使用

  3.5.1 索引列不要使用函数

  由于索引列一旦使用了函数,索引就会变无效,因此在能用索引的情况下,尽量改变程序来利用索引。如:

WHERE SUBSTR(TELNO,2,2)='88'改为WHERE TELNO LIKE '88%'较好。

  3.5.2 索引列不要使用NOT

  由于索引列一旦使用不等于,索引就会变得无效,最后导致速度变慢。

  3.5.3 不要用NULL

  如果用了NULL,索引就会无效,变成全表检索,影响处理速度。

  3.5.4 不要对索引列进行计算

  如果对索引列进行计算,索引就会无效,也后导致速度变慢。

  4.结束语

  本文所提出的优化方法,能够起到提高ORACLE数据库性能以及提高ORACLE应用程序执行效率的作用。这仅是个人在实际工作中的经验总结,希望能够对广大同行起到一定帮助作用。

上一页

推荐阅读
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 本章详细介绍SP框架中的数据操作方法,包括数据查找、记录查询、新增、删除、更新、计数及字段增减等核心功能。通过具体示例和详细解析,帮助开发者更好地理解和使用这些方法。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 本文探讨了如何在Hive(基于Hadoop)环境中编写类似SQL的语句,以去除字段中的空格。特别是在处理邮政编码等数据时,去除特定位置的空格是常见的需求。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文详细介绍了如何解决 Microsoft SQL Server 中用户 'sa' 登录失败的问题。错误代码为 18470,提示该帐户已被禁用。我们将通过 Windows 身份验证方式登录,并启用 'sa' 帐户以恢复其访问权限。 ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • Linux环境下进程间通信:深入解析信号机制
    本文详细探讨了Linux系统中信号的生命周期,从信号生成到处理函数执行完毕的全过程,并介绍了信号编程中的注意事项和常见应用实例。通过分析信号在进程中的注册、注销及处理过程,帮助读者理解如何高效利用信号进行进程间通信。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 派瑞莎是谷歌250名网络安全工程师之一,被誉为“安全公主”。她不仅在黑客圈中声名远扬,还曾于2012年被评为30位杰出青年科技安全卫士之一。随着网络技术的飞速发展,网络安全威胁日益严峻,派瑞莎及其团队的工作显得尤为重要。 ... [详细]
  • 如何使用 CleanMyMac X 2023 激活码解锁完整功能
    本文详细介绍了如何使用 CleanMyMac X 2023 激活码解锁软件的全部功能,并提供了一些优化和清理 Mac 系统的专业建议。 ... [详细]
  • 深入理解Java多线程并发处理:基础与实践
    本文探讨了Java中的多线程并发处理机制,从基本概念到实际应用,帮助读者全面理解并掌握多线程编程技巧。通过实例解析和理论阐述,确保初学者也能轻松入门。 ... [详细]
  • ArcXML:互联网空间数据交换的专用语言
    ArcXML是一种专为ArcIMS平台设计的数据交换协议,基于XML标准,用于在不同组件之间传输和描述地理空间数据。本文将详细介绍ArcXML的背景、用途及其与XML的关系。 ... [详细]
  • 本文详细介绍了Linux系统中的进程管理函数,涵盖了获取进程ID、用户ID、创建子进程、信号处理等关键操作。通过这些函数,开发者可以更好地控制和管理进程行为。 ... [详细]
  • KMP算法是处理字符串匹配的一种高效算法它首先用O(m)的时间对模板进行预处理,然后用O(n)的时间完成匹配。从渐进的意义上说,这样时间复 ... [详细]
author-avatar
张晓熊他爸_166
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有