博客统计信息

用户名:牛海彬
文章数:301
评论数:40
访问量:106399
无忧币:515
博客积分:3057
博客等级:7
注册日期:2008-05-13

我最近发表的评论

背景音乐

我的音乐

00:00 | 00:00



     在以前的一篇文章中,介绍过额外的关联对SQL的影响是很大的,所以在sql审核的工作中,对于表关联的关注是相当多的,如果冗余能够优化掉表关联,偶都尽量在表设计上做些冗余处理;在10gR2中,发现优化器可以优化掉一些不必要的关联……
  9206:
  SQL> set autot on
  SQL> select count(*)
  2 from dept d, emp e
  3 where d.deptno = e.deptno;
  COUNT(*)
  ----------
  12
  Execution Plan
  ----------------------------------------------------------
  0 SELE..
Oracle的优化器有两种优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO),在Oracle8及以后的版本,Oracle强列推荐用CBO的方式
    RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。
    CBO方式:它是看语句的代价(Cost),这里的代价主要指Cpu和内存。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给出表的大小..
类别:未分类|阅读(442)|回复(0)|(0)阅读全文>>

    当Oracle运行PL/SQL时会使用两套引擎,所有procedural code由PL/SQL engine 完成,所有SQL由SQL engine处理。所以如果Oracle从一个collection中循环执行相同的DML操作,那么为了避免两套engine切换所消耗的系统资源,可以使用bulk binds来把所有的DML操作binding到一次操作中完成。这将极大提高PL/SQL的执行效率。
 以下是简单的测试,用两种方式插入100000条数据,可以看到效率提高了7倍左右。

SQL> CREATE TABLE test1(
    2        id..
类别:未分类|阅读(62)|回复(0)|(0)阅读全文>>
 近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些相关的讨论。本文以FreeList为线索对Oracle的存储管理的原理进行较深入的探讨,涉及Oracle段区块管理的原理,FreeList算法等。而与FreeList密切相关的一个重用特性HWM,与sql性能密切相关,本文也作了原理分析介绍。在原理探讨的基础上,介绍了常用的存储参数分析方法,并对所涉及的存储优化、HWM的优化和Freelist竞争优化作了说明。
    缩略语:
    ASSM:auto segement space management
    HWM:high ..
类别:未分类|阅读(134)|回复(0)|(0)阅读全文>>
1、前言
    目前所有使用oracle作为数据库支撑平台的应用,大部分数据量比较庞大的系统,即表的数据量一般情况下都是在百万级以上的数据量。
    当然在oracle中创建分区是一种不错的选择,但是当你发现你的应用有多张表关联的时候,并且这些表大部分都是比较庞大,而你关联的时候发现其中的某一张或者某几张表关联之后得到的结果集非常小并且查询得到这个结果集的速度非常快,那么这个时候我考虑在oracle中创建“临时表”。
    我对临时表的理解:在oracle中创建一张表,这个表不..
类别:未分类|阅读(210)|回复(0)|(0)阅读全文>>
2009-02-26 21:33:00
在过去的十年中,Oracle已经成为世界上最专业的数据库之一。对于IT专家来说,就是要确保利用Oracle的强大特性来提高他们公司的生产力。最有效的方法之一是通过Oracle调优。它有大量的调整参数和技术来改进你的Oracle数据库的性能。
    Oracle调优是一个复杂的主题。关于调优可以写整整一本书,不过,为了改善Oracle数据库的性能,有一些基本的概念是每个Oracle DBA都应该遵从的。
    在这篇简介中,我们将简要地介绍以下的Oracle主题:
    --外部调整:我们应该记住Oracle并不是单..
类别:未分类|阅读(94)|回复(0)|(0)阅读全文>>
好长时间没怎么看 Oracle 技术文档了,今天阅读了一篇 Oracle Response Time Optimization with Method R. 这是 Optimizing Oracle Performance 经典图书这本经典图书的主旨方法。R 代表响应时间(response time).具体的定义如下:
    1. Target the tasks that are critical to the business.
    2. Collect properly scoped, un-aggregated profile data for each task while the task is exhibiting the behavior you want to record.
    3. React with the candidate repair th..
2009-02-26 21:28:00
索引在各种关系型数据库系统中都是举足轻重的组成部分,其对于提高检索数据的速度起至关重要的作用。在Oracle中,索引基本分为以下几种:B*Tree索引,反向索引,降序索引,位图索引,函数索引,interMedia全文索引等。本文主要就前6种索引进行分析,由于interMedia全文索引涉及的内容可以单独写一篇文章,所以不在此对其做分析。
    首先给出各种索引的简要解释:
    b*tree index:几乎所有的关系型数据库中都有b*tree类型索引,也是被最多使用的。其树结构与二叉树比较类似,根据rid快速定位所访..
类别:未分类|阅读(86)|回复(0)|(0)阅读全文>>
消耗在准备新的SQL语句的时间是Oracle SQL语句执行时间的最重要的组成部分。但是通过理解Oracle内部产生执行计划的机制,你能够控制Oracle花费在评估连接顺序的时间数量,并且能在大体上提高查询性能。
    准备执行SQL语句

    当SQL语句进入Oracle的库缓存后,在该语句准备执行之前,将执行下列步骤:
    1)     语法检查:检查SQL语句拼写是否正确和词序。
    2)     语义分析:核实所有的与数据字典不一致的表和列的..
类别:未分类|阅读(35)|回复(0)|(0)阅读全文>>
Oracle数据库在不同的地域被人们广泛使用,所以就必须要有专业的Oracle人员懂得网络连接是怎么样影响数据库性能的。Oracle提供的TNS允许在每个数据库中进行分配通信。
    TNS服务器被看作Oracle的逻辑数据请求中的绝缘体和远程服务器间的服务器。同样的,网络管理员有能力控制网络性能调谐性,但是Oracle管理员没有控制影响数据库性能的网络设置的权利。
    可以利用下面我所说的重要的设置来改变分布式事物元的性能。其中包括了sqlnet.ora, tnsnames.ora, 和 protocol.ora文件中的参数,这些参数..
类别:未分类|阅读(103)|回复(0)|(0)阅读全文>>
Oracle数据库以其高可靠性、安全性、可兼容性,得到越来越多的企业的青睐。如何使Oracle数据库保持优良性能,这是许多数据库管理员关心的问题,根据笔者经验建议不妨针对以下几个方面加以考虑。  
  一、分区
  根据实际经验,在一个大数据库中,数据空间的绝大多数是被少量的表所占有。为了简化大型数据库的管理,改善应用的查询性能,一般可以使用分区这种手段。所谓分区就是动态表中的记录分离到若干不同的表空间上,使数据在物理上被分割开来,便于维护、备份、恢复、事务及查询性能。当使用的时候可建立一个连接所有分区..
前一阵刚给同事做完一个tuning的培训,顺便把以前做过的case重新整理了一下,今天发出来。

case的开始是客户开始抱怨一个批量处理的操作现在变得很慢,在开发的帮助下,我们可以在生产环境中轻易的测试这个操作,而且发现响应时间确实是比以前慢了。这一般是个好的开始,因为我们至少知道问题是什么。

首先,我们通过session级别的trace,发现这个批处理在执行的过程中存在最多的等待事件是enqueue:
PHP code:


OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS





call    ..
类别:未分类|阅读(52)|回复(0)|(0)阅读全文>>
2009-02-26 21:08:00
1.选用适合的ORACLE优化器
    ORACLE的优化器共有3种:
    1.RULE(基于规则) 2.COST(基于成本) 3.CHOOSE(选择性)
    设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖.
    为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性.
  &n..
类别:未分类|阅读(74)|回复(0)|(0)阅读全文>>
2009-02-26 21:07:00
为了提高性能,我们针对Oracle数据库本身提供了的方法或方案进行过不少的尝试,主要包括:
    共享服务器模式(MTS)
    集群技术(Clustering)RAC
    分区
    并行处理(主要是并行查询)
    Oracle提供的这些特性确实是用来进行性能改善的,但我们往往忽略了对自身应用特性的分析,它们是否适合于我们.最近,通过对这方面知识的深入了解,发现我们以前存在一些错误的认识.我觉得有必要,大家一起来改变这种误解.
    分析之前,先明确一下我..
类别:未分类|阅读(103)|回复(0)|(0)阅读全文>>
2009-02-26 21:04:00
在过去的十年中, Oracle 已经成为世界上最专业的数据库之一。对于 IT 专家来说,就是要确保利用 Oracle 的强大特性来提高他们公司的生产力。最有效的方法之一是通过 Oracle 调优。它有大量的调整参数和技术来改进你的 Oracle 数据库的性能。
    Oracle 调优是一个复杂的主题。关于调优可以写整整一本书,不过,为了改善 Oracle 数据库的性能,有一些基本的概念是每个 Oracle DBA 都应该遵从的。
    在这篇简介中,我们将简要地介绍以下的 Oracle 主题:
    外部调整:我们应该记..
类别:未分类|阅读(90)|回复(0)|(0)阅读全文>>
一、SGA
    1、Shared pool tunning
    Shared pool的优化应该放在优先考虑,因为一个cache miss在shared pool中发生比在data buffer中发生导致的成本更高,由于dictionary数据一般比library cache中的数据在内存中保存的时间长,所以关键是library cache的优化。
    Gets:(parse)在namespace中查找对象的次数;
    Pins:(execution)在namespace中读取或执行对象的次数;
    Reloads:(reparse)在执行阶段library cache misses的次数,导致sq..
类别:未分类|阅读(176)|回复(0)|(0)阅读全文>>
2009-02-26 20:56:00
一、问题的提出
  在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的SQL语句,提高系统的可用性。
  在多数情况下,Oracle使用索引来更快地遍..
类别:未分类|阅读(92)|回复(0)|(0)阅读全文>>
2009-02-26 20:51:00
任何事情都有它的源头,要解决问题,也得从源头开始,影响ORACLE性能的源头非常多,主要包括如下方面:数据库的硬件配置:CPU、内存、网络条件。
  1. CPU:在任何机器中CPU的数据处理能力往往是衡量计算机性能的一个标志,并且ORACLE是一个提供并行能力的数据库系统,在CPU方面的要求就更高了,如果运行队列数目超过了CPU处理的数目,性能就会下降,我们要解决的问题就是要适当增加CPU的数量了,当然我们还可以将需要许多资源的进程KILL掉;
  2. 内存:衡量机器性能的另外一个指标就是内存的多少了,在ORACLE中内存和我们在建数据..
类别:未分类|阅读(81)|回复(0)|(0)阅读全文>>
 随着网络应用和电子商务的不断发展,各个站点的访问量越来越大,如何使有限的计算机系统资源为更多的用户服务?如何保证用户的响应速度和服务质量?这些问题都属于服务器性能优化的范畴。作为较成功的数据库厂商,Oracle公司数据库的性能优化是如何进行的
   优化策略
   为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略。优化策略一般包括服务器操作系统参数调整、数据库参数调整、网络性能调整、应用程序SQL语句分析及设计等几个方面,其中应用程序的分析与设计是在信息系..
2009-02-26 20:23:00
  什么是性能调优呢?一般是当用户抱怨“太慢了”、“性能不足”、“软硬件需要升级了”等问题时,提供较佳的性能。但不是要解决用户所说的“这系统毁了”、“它不会工作了”等问题,这可能需要的是备援回滚、提高系统可获得性(HA high Availability)等解决方案。但就数据库系统而言,规划高可获得性的架构(如SQL Cluster、Mirroring、Log Shipping、Replication等)不会提升系统性能,还要注意是否降低了性能。
  而一般观测性能问题的现象有:
          系统响应速度太慢。
  &n..
类别:未分类|阅读(111)|回复(0)|(0)阅读全文>>
 <<   1   2   3   4   5   >>   页数 ( 1/16 )

公告