网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > PL/SQL > 检查SQL语句是否应用了索引  

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

2005-12-26  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏

    检查一条SQL语句的执行计划,以便分析其是否应用了索引

中国网管联盟bitsCN.com

    好找到SQL的瓶颈 中国网管论坛bbs.bitsCN.com

    1。创建表plan 网管网www_bitscn_com

    执行utlxplan.sql

网管u家u.bitsCN.com

    该文件在$ORACLE_HOME/rdbms/admin下

中国网管论坛bbs.bitsCN.com

    2。在sqlplus中检查SQL语句是否应用了索引

中国网管论坛bbs.bitsCN.com

    SQL> explain plan for (回车)
    2 select itemid from NAD_ADitem where adcustomerid<400 and adgroupid<500;
    SQL> @xpls.sql 网管u家u.bitsCN.com

    3。xpls.sql的原文如下: 网管u家u.bitsCN.com

    //----------------------------------------------------------------------------------------------------------------------------------
    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

中国网管论坛bbs.bitsCN.com


    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 网管u家u.bitscn@com

    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, ' ') || '|' || 中国网管论坛bbs.bitsCN.com
    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, ' ')|| '|' ||

网管u家bitscn.net

    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;
    //----------------------------------------------------------------------------------------------------------------------------------
网管bitscn_com

TAGs应用   索引   是否   语句   检查   decode   Rem   substr   trunc   KEY    
 上一篇:Oracle的表序列小议   下一篇:SQL优化之操作符篇
相关文章列表
检查SQL语句是否应用了索引 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.PL/SQL - 嵌套游标 cursor-PLSQL
2.用一个实例讲解Oracle数据库的PL/SQL语句
3.PL/SQL----触发器-PLSQL
4.mysql存储过程写法—动态参数运用-PLSQL
5.PL/SQL Developer导出分区索引脚本-PLSQL
6.PL/SQL collection— table() 函数-PLSQL
7.SQL Server 2005 中的架构与用户-PLSQL
8.Oracle数据库维护常用SQL语句集合(2)-P
9.Oracle数据库维护常用SQL语句集合(3)-P
10.再议SQL Server临时表和表变量-PLSQL
最新推荐文章:
1.与数据库无关的处理放到数据库以外来实现
2.Oracle 10g第2版新特性之SQL和PL/SQL
3.通过PL/SQL访问Web Services
4.菜鸟学oracle - 用PL/SQL画直方图
5.重新编译PLSQL中无效对象或指定对象
6.Oracle高级技巧
7.深入了解Oracle 10g新的多重集运算符
8.在SQL中删除重复记录(多种方法)
9.Oracle:PL/SQL中怎样使用Array
10.数据库手册:速查Oracle函数列表
网管论坛交流:
·大家来开心一下吧---看了会很开心的东西-
·中国人不可不知道的知识
·@@小鹏◎◎小鹏同志与某位女明星亲密接触
·◎◎小鹏◎◎发现不明生物,居然正在交配
·[图文]^^^版主是什么?????
·泡论坛的女人是好女人
·做个“水性杨花”的女人
·献给mm俱乐部的所有mm
·深圳一集团企业电脑基础应用培训教程
·■■■■十一遊玩照■■■■■