ORACLE性能调整-调整SQL语句和应用.ppt

上传人:w****2 文档编号:15547067 上传时间:2020-08-20 格式:PPT 页数:13 大小:285.34KB
返回 下载 相关 举报
ORACLE性能调整-调整SQL语句和应用.ppt_第1页
第1页 / 共13页
ORACLE性能调整-调整SQL语句和应用.ppt_第2页
第2页 / 共13页
ORACLE性能调整-调整SQL语句和应用.ppt_第3页
第3页 / 共13页
点击查看更多>>
资源描述
调整SQL语句和应用,日月明王 msn:,SQL语句的执行,分析(PARSE) 语法检查; 搜索共享SQL区,查看该语句是否已经存在; 查询数据字典,决定安全权限、最优路径等; 如果共享SQL区不存在该语句,则执行编译生成分析树。 执行(EXECUTE) 将分析树放入数据库缓冲区中; 执行物理/逻辑读写。 取数据(FETCH),SQL语句的优化,利用ORACLE的共享区(SHARED_ POOL),相同的SQL语句可以共享编译后的分析树 遵循的原则: 约定所有语句的标准格式,包括PL/SQL 约定大小写 使用相同的绑定变量 注: 两条SQL语句必须是语法、文本完全相同,也即存取权限、路径、大小写、空格数、变量名等完全相同,才能视为可共享的SQL,将共享的SQL和PL/SQL保留在共享区中,保留大的已分配空间 SHARED_POOL_RESERVED_SIZE SHARED_POOL_SIZE的10%为较大连续共享池内存请求而保留的空间,以避免由碎片引起的性能下降 防止实体被换出 使用系统包DBMS_SHARED_POOL可在共享内存中保留实体 DBMSPOOL.SQL和PRVTPOOL.PLB过程脚本创建DBMS_SHARED_POOL的包说明和包体 使用V$SQLAREA V$SQLTEXT查询当前系统中共享区中的所有SQL语句,何时使用DBMS_SHARED_POOL 在装入大的PL/SQL实体(如STANDARD 和DIUTIL包)时, DBMS_SHARED_POOL 包中的过程是非常有用的。 对频繁执行的触发器,DBMS_SHARED_POOL也是非常有用。这时可以将编译过的频繁使用的触发器保存在共享区中 如何使用DBMS_SHARED_POOL 确定需要调入内存的包或游标; 启动数据库; 调用DBMS_SHARED_POOL.KEEP dbms_shared_pool.keep(object IN VARCHAR2,type IN CHAR DEFAULT P) object - 实体名或游标地址 type - 实体的类型。 P:Procedure、C:cursor 、R:Trigger、Q:sequence,数据访问方法:使用索引(INDEX),索引有如下的特性: 由ORACLE自动维护 可减少磁盘I/O 仅查询被索引的列时才用到索引 对索引的搜索是对全表扫描的替换 索引、表独立 有自己的存储参数 通常比原来的表小 可存储在与表分离的表空间中,使用聚簇(CLUSTER),对于聚簇键的选择,应遵循如下原则: 要聚簇的表主要用作查询,并且聚簇键很少更新 经常一同使用的表之间有联结关系 此列有一广泛的取值,不是经常重复 多表在该列上做联结 该列很少被更新 该列不能为LONG 或LONG RAW 数据类型 聚簇表应经常由应用联结访问 如果经常选择一个主记录和对应的细节记录,考虑使用聚簇表 如果经常选择同一个主表的许多细节记录,考虑将细节表单独在聚簇中保存,不应使用聚簇表的情况: 如果应用仅偶尔联结或经常修改公共列值,不要聚簇表 如果应用经常执行聚簇表中仅一个表的全表的搜索,不要聚簇表 使用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; 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,产生文本 根据结果优化SQL,Init.ora:TIMED_STATISTICS , MAX_DUMP_FILE_SIZE , 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_TABLE AUTOTRACE: 通过./sqlplus/admin/plustrace.sql来设置 SET AUTOTRACE OFF | ON | TRACEONLY EXPLAIN STATISTICS,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!