oracle 优化的一点体会

来源:asp之家 时间:2009-10-02 17:59:00 

关于oracle 优化的内容很多,概念庞杂,不过可以总结出一个大纲性的东西作为需要考虑的方向,然后再逐步细化。oracle优化按重要性需要考虑设计、开发、调整几个方面。

首先是设计,这是最重要的部分,借用TOM的话:“性能是设计出来的,不是调整出来的”。

计分为逻辑设计和物理设计,逻辑设计一般要遵循3NF,同时也要根据应用的需要引入逆规范化的设计,应为NF设计虽然消除了数据冗余,但随着规范化越高需要连接的表可能越多,同样对性能有影响,所以需要平衡考虑,至于何时要3NF,何时要逆规范化,要是具体情况而定。

物理设计一个是存储,比如物理文件、联机日志文件、归档日志文件的磁盘布局,各种RAID的使用等(在这方面piner的分析比较全面细致),第二是要根据应用的特性,选择文件组织方式,灵活运用oracle的各种表和索引类型,例如交叉表可以考虑使用IOT、读密集型并且经常关联的字段使用cluster,还有全局临时表、外部表等等。除了普通的B树索引外,在低基数情况下考虑使用位图索引,使用函数时引入基于函数的索引等。

其次是开发阶段,比如老生常谈的使用绑定变量、外键加索引、使用bulk collect、分析函数、直接路径加载,在OLAP应用中使用partition、MV、位图索引、并行化操作等等。没种技术要深入研究都有很多内容。

最后才是调整,这是在出现性能问题时采用的手段。这已经形成了一个完整的方 * 。

1)设立合理的性能优化目标。

2)测量并记录当前性能(STATSPACK、AWR等)。

3)确定当前Oracle性能瓶颈(从Oracle 等待接口v$system_event、v$session_event和v$session_wait中获得等待事件,进而找出影响性能的对象和sql语句)。

4)把等待事件记入跟踪文件(autotrace、10046事件等)。

5)确定当前的OS瓶颈(sar、iostat、cpustat、mpstat、netstat、top、osview等)。

6)优化所需的成分(应用程序、数据库、I/O、争用、OS等)。

7)跟踪并实施更改控制过程。

8)测量并记录当前性能

9)重复步骤3到7,直到满足优化目标

以上是本人对Oracle优化的一些粗线条的体会,可以指出优化需要考虑的大的方向,而相关的技术细节非常多,每项都要仔细研究,正如piner总结的:多思考、多实践、多总结。

再记点题外话,公司节后要对技术部作人员调整,说白了就是裁人,这次除了要个网管保证能上网就不留技术的人了,假期准备简历,节后找工作。

标签:oracle,优化
0
投稿

猜你喜欢

  • python中defaultdict的用法详解

    2021-05-02 11:11:07
  • Python实现EXCEL表格的排序功能示例

    2021-05-17 20:50:11
  • python3中sorted函数里cmp参数改变详解

    2022-11-11 17:21:49
  • Python爬虫之超级鹰验证码应用

    2021-04-08 08:22:20
  • 图文详解SQL Server 2008R2使用教程

    2024-01-19 10:52:38
  • python如何正确使用yield

    2023-09-29 16:57:05
  • Python 序列化和反序列化库 MarshMallow 的用法实例代码

    2023-02-20 23:28:04
  • python脚本替换指定行实现步骤

    2022-03-18 16:53:28
  • Python金融数据可视化汇总

    2023-04-12 21:27:41
  • CSS隐藏文字的方法

    2008-10-03 12:08:00
  • Python按行读取文件的实现方法【小文件和大文件读取】

    2021-12-11 01:31:08
  • MySQL中order by排序语句的原理解析

    2024-01-24 15:43:23
  • python人工智能tensorflow函数tf.get_collection使用方法

    2023-08-09 14:27:54
  • 理想高通滤波实现Python opencv示例

    2022-09-29 03:58:07
  • 深入分析在Python模块顶层运行的代码引起的一个Bug

    2021-06-29 01:26:29
  • python是先运行metaclass还是先有类属性解析

    2022-02-10 23:24:48
  • 浅谈编码,解码,乱码的问题

    2021-02-22 05:15:37
  • C#实现Excel表数据导入Sql Server数据库中的方法

    2024-01-19 01:19:01
  • mysql删除操作其实是假删除问题

    2024-01-27 23:15:50
  • python同步两个文件夹下的内容

    2022-09-14 13:54:13
  • asp之家 网络编程 m.aspxhome.com