《ORACLE性能调整-调整SQL语句和应用.ppt》由会员分享,可在线阅读,更多相关《ORACLE性能调整-调整SQL语句和应用.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、调整SQL语句和应用日月明王SQL语句的执行语句的执行分析(PARSE)语法检查;搜索共享SQL区,查看该语句是否已经存在;查询数据字典,决定安全权限、最优路径等;如果共享SQL区不存在该语句,则执行编译生成分析树。执行(EXECUTE)将分析树放入数据库缓冲区中;执行物理/逻辑读写。取数据(FETCH)SQL语句的优化语句的优化利用ORACLE的共享区(SHARED_ POOL),相同的SQL语句可以共享编译后的分析树遵循的原则:约定所有语句的标准格式,包括PL/SQL约定大小写使用相同的绑定变量注:两条SQL语句必须是语法、文本完全相同,也即存取权限、路径、大小写、空格数、变量名等完全相同
2、,才能视为可共享的SQL将共享的将共享的SQL和和PL/SQL保留在共享区中保留在共享区中保留大的已分配空间SHARED_POOL_RESERVED_SIZESHARED_POOL_SIZE的10%为较大连续共享池内存请求而保留的空间,以避免由碎片引起的性能下降防止实体被换出 使用系统包DBMS_SHARED_POOL可在共享内存中保留实体DBMSPOOL.SQL和 PRVTPOOL.PLB过 程 脚 本 创 建DBMS_SHARED_POOL的包说明和包体使用V$SQLAREA V$SQLTEXT查询当前系统中共享区中的所有SQL语句何时使用何时使用DBMS_SHARED_POOL在装入大的
3、PL/SQL实体(如STANDARD 和DIUTIL包)时,DBMS_SHARED_POOL 包中的过程是非常有用的。对频繁执行的触发器,DBMS_SHARED_POOL也是非常有用。这时可以将编译过的频繁使用的触发器保存在共享区中 如何使用如何使用DBMS_SHARED_POOL确定需要调入内存的包或游标;启动数据库;调用DBMS_SHARED_POOL.KEEPdbms_shared_pool.keep(object IN VARCHAR2,type IN CHAR DEFAULT P)object-实体名或游标地址type-实体的类型。P:Procedure、C:cursor、R:Tri
4、gger、Q:sequence数据访问方法:使用索引(数据访问方法:使用索引(INDEX)索引有如下的特性:由ORACLE自动维护可减少磁盘I/O仅查询被索引的列时才用到索引对索引的搜索是对全表扫描的替换索引、表独立有自己的存储参数通常比原来的表小可存储在与表分离的表空间中使用聚簇(使用聚簇(CLUSTER)对于聚簇键的选择,应遵循如下原则:要聚簇的表主要用作查询,并且聚簇键很少更新经常一同使用的表之间有联结关系此列有一广泛的取值,不是经常重复多表在该列上做联结该列很少被更新该列不能为LONG 或LONG RAW 数据类型聚簇表应经常由应用联结访问如果经常选择一个主记录和对应的细节记录,考虑使
5、用聚簇表如果经常选择同一个主表的许多细节记录,考虑将细节表单独在聚簇中保存不应使用聚簇表的情况:如果应用仅偶尔联结或经常修改公共列值,不要聚簇表如果应用经常执行聚簇表中仅一个表的全表的搜索,不要聚簇表使用CREATE CLUSTER命令创建聚簇表SQL优化方式基于规则的优化基于成本的优化设定:init.ora:OPTIMIZER_MOD:RULE|CHOOSE|FIRST_ROWS|ALL_ROWS 使用提示:Select/*+FIRST_ROWS*/name from emp where salary2000;对象统计:Analyze table emp compute statistics
6、;Analyze talbe emp compute statistics for all indexed columns;Analyze table emp estimate statistics sample size 20 percent;Execute dbms_utility.analyze_schema(scott,estimate,estimate_percent=20);跟踪不良SQL设置启动参数开启SQL_TRACE运行程序确定跟踪文件在跟踪文件上运行tkprof,产生文本根据结果优化SQLInit.ora:TIMED_STATISTICS,MAX_DUMP_FILE_SIZ
7、E,USER_DUMP_DEST,SQL_TRACE 或者alter session set timed_statistics=true;收集操作系统的计时信息,这些信息可被用来优化数据库和 SQL语句ALTER SESSION SET SQL_TRACE=true;使用 SQL 跟踪设备将引发系统开销,只应在需要优化信息的情况下使用 TRUE。TKPROF.EXE.admino817udumpORA03808.TRC o.txt explain=system/manager sys=no sort=fchdsk Sample TKPROF Output资源计划:执行rdbms/admin/utlxplan.sql生成PLAN_TABLEAUTOTRACE:通过./sqlplus/admin/plustrace.sql来设置SET AUTOTRACE OFF|ON|TRACEONLY EXPLAIN STATISTICS