网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.用户管理的备份.
.[Oracle]手工转移数据库Step By .
.oracle数据库优化.
.FAQ Collection- 备份与恢复.
.ORACLE在HP-UX下的系列问题处理(.
.Oracle专家调优秘密(二).
.一句T-SQL语句引发的思考 转帖.
.ORACLE联机日志文件丢失或损坏的.
.Oracle的imp命令导入备份数据.
.用自动ftp提高工作效率.
.Oracle与DATA GUARD环境中重建控.
.Oracle11g的新特性-11g New Feat.
.得到电影而不是图片:闪回版本查.
.OPTIMIZER_INDEX_COST_ADJ与成本.
.Linux Shadow-Password-HOWTO.
.oracle数据库备份与恢复.
.Oracle 10g 可传输表空间现在可以.
.redhat linux 9.0 VSFTP配置大权.
.Linux上的sysctl.
.OEM联机自动热备份全攻略(2).

检查SQL语句是否应用了索引

发表日期:2008-2-9


    检查一条SQL语句的执行计划,以便分析其是否应用了索引     好找到SQL的瓶颈     1。创建表plan     执行utlXPlan.sql     该文件在$Oracle_HOME/rdbms/admin下     2。在sqlplus中检查SQL语句是否应用了索引     SQL> explain plan for (回车)
    2 select itemid from NAD_ADitem where adcustomerid<400 and adgroupid<500;
    SQL> @xpls.sql     3。xpls.sql的原文如下:     //----------------------------------------------------------------------------------------------------------------------------------
    Rem
    Rem $Header: utlxpls.sql 28-jun-99.06:02:16 kquinn Exp $
    Rem
    Rem utlxpls.sql
    Rem
    Rem Copyright (c) Oracle Corporation 1998, 1999. All Rights Reserved.
    Rem
    Rem NAME
    Rem utlxpls.sql - UTiLity eXPLain Serial plans
    Rem
    Rem DESCRIPTION
    Rem script utility to display the explain plan of the last explain plan
    Rem command. Do not display information related to Parallel Query
    Rem
    Rem NOTES
    Rem Assume that the PLAN_TABLE table has been created. The script
    Rem utlxplan.sql should be used to create that table
    Rem
    Rem To avoid lines from truncating or wrapping around:
    Rem 'set charwidth 80' in svrmgrl
    Rem 'set linesize 80' in SQL*Plus
    Rem
    Rem MODIFIED (MM/DD/YY)
    Rem kquinn 06/28/99 - 901272: Add missing semicolon
    Rem bdagevil 05/07/98 - Explain plan script for serial plans
    Rem bdagevil 05/07/98 - Created
    Rem     Rem
    Rem Display last explain plan
    Rem
    select ' Operation Name Rows Bytes Cost Pstart Pstop ' as "Plan Table" from dual
    union all
    select '--------------------------------------------------------------------------------' from dual
    union all
    select rpad(' 'substr(lpad(' ',1*(level-1))operation
    decode(options, null,'',' 'options), 1, 47), 48, ' ')''
 
   rpad(substr(object_name' ',1, 29), 30, ' ')''
    lpad(decode(cardinality,null,' ',
    decode(sign(cardinality-1000), -1, cardinality' ',
    decode(sign(cardinality-1000000), -1, trunc(cardinality/1000)'K',
    decode(sign(cardinality-1000000000), -1, trunc(cardinality/1000000)'M',
    trunc(cardinality/1000000000)'G')))), 7, ' ') ''
    lpad(decode(bytes,null,' ',
    decode(sign(bytes-1024), -1, bytes' ',
    decode(sign(bytes-1048576), -1, trunc(bytes/1024)'K',
    decode(sign(bytes-1073741824), -1, trunc(bytes/1048576)'M',
    trunc(bytes/1073741824)'G')))), 6, ' ') ''
    lpad(decode(cost,null,' ',
    decode(sign(cost-10000000), -1, cost' ',
    decode(sign(cost-1000000000), -1, trunc(cost/1000000)'M',
    trunc(cost/1000000000)'G'))), 8, ' ') ''
    lpad(decode(partition_start, 'ROW LOCATION', 'ROWID',
    decode(partition_start, 'KEY', 'KEY', decode(partition_start,
    'KEY(INLIST)', 'KEY(I)', decode(substr(partition_start, 1, 6),
    'NUMBER', substr(substr(partition_start, 8, 10), 1,
    length(substr(partition_start, 8, 10))-1),
    decode(partition_start,null,' ',partition_start)))))' ', 7, ' ') ''
    lpad(decode(partition_stop, 'ROW LOCATION', 'ROW L',
    decode(partition_stop, 'KEY', 'KEY', decode(partition_stop,
    'KEY(INLIST)', 'KEY(I)', decode(substr(partition_stop, 1, 6),
    'NUMBER', substr(substr(partition_stop, 8, 10), 1,
    length(substr(partition_stop, 8, 10))-1),
    decode(partition_stop,null,' ',partition_stop)))))' ', 7, ' ')'' as "Explain plan"
    from plan_table
    start with id=0 and timestamp = (select max(timestamp) from plan_table
    where id=0)
    connect by prior id = parent_id
    and prior nvl(statement_id, ' ') = nvl(statement_id, ' ')
    and prior timestamp <= timestamp
    union all
    select '--------------------------------------------------------------------------------' from dual;
    //----------------------------------------------------------------------------------------------------------------------------------
上一篇:SQL优化之操作符篇 人气:1092
下一篇:Oracle的表序列小议 人气:648
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐