• oracl


    查看执行过缓存的解析Sql
    select name , executions from v$db_object_cache where name like 'select *from sys_yh%'

    •  优化器参数选择
    • 尽量避免使用Choose 模式 采用基于Rule Select 的优化模式
    • Rule模式的     为了使用基于成本的优化器(CBO,Cost—Based Optimizer),必须经常运行analyze命令,以增加数据库中的对象统计信息(object statistics)的准确性.   如果数据库的优化器模式设置为基于选择,那么实际的优化器模式将和是否运行过analyze命令有关。如果数据表已经被analyze过,优化器模式将自动切换成CBO,反之,数据库将采用RULE形式的优化器

    访问数据表的方式

    ① 全表扫描

      全表扫描就是顺序地访问表中每条记录。Oracle采用一次读入多个数据块(database block)的方式优化全表扫描。

    ② 通过ROWID访问表

      ROWID包含了表中记录的物理位置信息。可以采用基于ROWID的访问方式情况提高访问表的效率。Oracle采用索引实现了数据和存放数据的物理位置(ROWID)之间的联系 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能的提高

    n影响数据库系统性能的要素:
    ¨主机CPU,RAM,存储系统;
    ¨OS参数配置,ORACLE参数配置;
    ¨应用方面:数据库设计及SQL编程的质量
    n一个性能优秀的应用系统需要:
    ¨良好的硬件配置;正确合理的数据库及中间件参数配置;合理的数据库设计;良好的sql编程;运行期的性能优化
     
    n目标:
    ¨减少服务器资源消耗(主要是磁盘IO);
    n设计方面:
    ¨尽量依赖oracle的优化器,并为其提供条件;
    ¨合适的索引,索引的双重效应,列的选择性;
    n编码方面:
    ¨利用索引,避免大表FULL TABLE SCAN;
    ¨合理使用临时表;
    ¨避免写过于复杂的sql,不一定非要一个sql解决问题;
    ¨在不影响业务的前提下减小事务的粒度;
     
     

    带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的

    SQL语句会启动SQL引擎执行耗费资源的排序(SORT)功能.

    DISTINCT需要一次排序操作, 而其他的至少需要执行两次

    排序.

    例如,一个UNION查询,其中每个查询都带有GROUP BY子句

    , GROUP BY会触发嵌入排序(NESTED SORT) ; 这样, 每个

    查询需要执行一次排序, 然后在执行UNION时, 又一个唯一

    排序(SORT UNIQUE)操作被执行而且它只能在前面的嵌入

    排序结束后才能开始执行. 嵌入的排序的深度会大大影响查

    询的效率.

    通常, 带有UNION, MINUS , INTERSECT的SQL语句都可以

    用其他方式重写

    用EXISTS替换DISTINCt

    低效:

        SELECT DISTINCT DEPT_NO,DEPT_NAME

        FROM DEPT D,EMP E

        WHERE D.DEPT_NO = E.DEPT_NO

    高效:

        SELECT DEPT_NO,DEPT_NAME

        FROM DEPT D

        WHERE EXISTS ( SELECT ‘X’

                        FROM EMP E

                        WHERE E.DEPT_NO = D.DEPT_NO);

    用UNION  ALL  替代  Union

    避免 索引列上使用函数

  • 相关阅读:
    HDU 3501 Calculation 2 ——Dirichlet积
    BZOJ 1101 [POI2007]Zap ——Dirichlet积
    BZOJ 1257 [CQOI2007]余数之和sum ——Dirichlet积
    SGU 194 Reactor Cooling ——网络流
    BZOJ 1497 [NOI2006]最大获利 ——网络流
    BZOJ 2705 [SDOI2012]Longge的问题 ——Dirichlet积
    BZOJ 1653 [Usaco2006 Feb]Backward Digit Sums ——搜索
    BZOJ 1861 [Zjoi2006]Book 书架 ——Splay
    BZOJ 3130 [Sdoi2013]费用流 ——网络流
    BZOJ 3990 [SDOI2015]排序 ——搜索
  • 原文地址:https://www.cnblogs.com/liwenchaoCode/p/7872751.html
Copyright © 2020-2023  润新知