SQL_ID:fvdwtfv18yy0m

先看看sql的预估执行计划
select * from table(dbms_xplan.display_awr('fvdwtfv18yy0m')); sql问题如下
SELECT cu.ecno,
cu.NAME,
cu.birthday,
cu.sex,
cu_id.idtype,
cu_id.idcard,
reg.username
FROM customer cu,
customerid cu_id,
customerreg reg
WHERE cu.ecno = cu_id.ecno
AND cu.ecno = reg.ecno
AND upper(reg.username) = upper('13979083223@139.com'); 看看表上面有没有索引
SELECT INDEX_NAME FROM DBA_INDEXES WHERE TABLE_NAME ='CUSTOMERREG'; 切换一下session的用户,当不知道某用户名密码的时候,可以设置session的current_schema
alter session set current_schema=ESERVICE;

查看数据表的创建语句

CREATE TABLE "ESERVICE"."CUSTOMERREG"
( "ECNO" VARCHAR2(32) NOT NULL ENABLE,
"USERNAME" VARCHAR2(50),
"USERPASSWORD" VARCHAR2(50),
"CRANECARD" VARCHAR2(30),
"CREATEDATE" DATE,
"LOGONCOUNT" NUMBER(10,0),
"LASTLOGONDATE" DATE,
"ISUSE" VARCHAR2(1),
"CUSTOMERREG_LDAP_FLAG" VARCHAR2(10),
"RANDOMNO" VARCHAR2(20),
"LASTSENDMAILDATE" VARCHAR2(20),
"DAYLOGINCOUNT" VARCHAR2(1),
"DAYLOGINDATE" VARCHAR2(14),
PRIMARY KEY ("ECNO")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 19922944 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "ESERVICE" ENABLE,
CONSTRAINT "USERNAME" UNIQUE ("USERNAME")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 29360128 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "ESERVICE" ENABLE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "ESERVICE"

select name,DATATYPE_STRING,VALUE_STRING from v$sql_bind_capture where sql_id='fvdwtfv18yy0m';

-----------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 15626 | 1449K| 12213 (1)| 00:02:27 |
|* 1 | HASH JOIN | | 15626 | 1449K| 12213 (1)| 00:02:27 |
|* 2 | HASH JOIN | | 15594 | 974K| 9806 (1)| 00:01:58 |
|* 3 | TABLE ACCESS FULL| CUSTOMERREG | 15594 | 517K| 5635 (1)| 00:01:08 |
| 4 | TABLE ACCESS FULL| CUSTOMER | 1489K| 42M| 4167 (1)| 00:00:51 |
| 5 | TABLE ACCESS FULL | CUSTOMERID | 1501K| 44M| 2402 (1)| 00:00:29 |
-----------------------------------------------------------------------------------

SELECT TABLE_NAME,COLUMN_NAME,INDEX_NAME FROM DBA_IND_COLUMNS WHERE TABLE_NAME IN ('CUSTOMER','CUSTOMERID','CUSTOMERREG');

TABLE_NAME                     COLUMN_NAME                    INDEX_NAME
------------------------------ ------------------------------ ------------------------------
CUSTOMER MOBILE IND_CUSTOMER
CUSTOMER ECNO SYS_C0015620
CUSTOMERID ECNO IDX_CUS_ID
CUSTOMERREG USERNAME USERNAME
CUSTOMERREG ECNO SYS_C0015621

IDX_CUS_ID表空间是USERS

create index eservice.ind_CUSTOMERREG_upperusername on eservice.CUSTOMERREG(upper('USERNAME')) tablespace EBDBINDEX;

---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 15626 | 976K| 11775 (1)| 00:02:22 |
|* 1 | HASH JOIN | | 15626 | 976K| 11775 (1)| 00:02:22 |
|* 2 | HASH JOIN | | 15594 | 746K| 9370 (1)| 00:01:53 |
|* 3 | TABLE ACCESS FULL | CUSTOMERREG | 15594 | 517K| 5635 (1)| 00:01:08 |
| 4 | INDEX FAST FULL SCAN| SYS_C0015620 | 1489K| 21M| 3732 (1)| 00:00:45 |
| 5 | TABLE ACCESS FULL | CUSTOMERID | 1501K| 21M| 2401 (1)| 00:00:29 |
---------------------------------------------------------------------------------------
SELECT 1
FROM customer cu,
customerid cu_id,
customerreg reg
WHERE cu.ecno = cu_id.ecno
AND cu.ecno = reg.ecno
AND upper(reg.username) = upper('13979083223@139.com');

感觉这个sql的执行计划是正确的。

SQL优化 1的更多相关文章

  1. SQL优化案例—— RowNumber分页

    将业务语句翻译成SQL语句不仅是一门技术,还是一门艺术. 下面拿我们程序开发工程师最常用的ROW_NUMBER()分页作为一个典型案例来说明. 先来看看我们最常见的分页的样子: WITH CTE AS ...

  2. sql 优化

    1.选择最有效率的表名顺序(只在基于规则的优化器中有效): oracle的解析器按照从右到左的顺序处理 from 子句中的表名,from子句中写在最后的表(基础表driving table)将被最先处 ...

  3. SQL 优化总结

    SQL 优化总结 (一)SQL Server 关键的内置表.视图 1. sysobjects         SELECT name as '函数名称',xtype as XType  FROM  s ...

  4. (转)SQL 优化原则

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ...

  5. sql优化阶段性总结以及反思

    Sql优化思路阶段性心得: 这段时间的优化做了好几个案例,其实有很多的类似点,都是好几张大表的相互连接,然后执行长达好几个小时,甚至都跑不出来. 自己差不多的思路就是Parallel full tab ...

  6. mysql sql优化实例

    mysql sql优化实例 优化前: pt-query-degist分析结果: # Query 3: 0.00 QPS, 0.00x concurrency, ID 0xDC6E62FA021C85B ...

  7. SQL优化技巧

    我们开发的大部分软件,其基本业务流程都是:采集数据→将数据存储到数据库中→根据业务需求查询相应数据→对数据进行处理→传给前台展示.对整个流程进行分析,可以发现软件大部分的操作时间消耗都花在了数据库相关 ...

  8. ORACLE常用SQL优化hint语句

    在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量, ...

  9. SQL优化有偿服务

    本人目前经营MySQL数据库的SQL优化服务,100块钱一条.具体操作模式 其中第一条,可以通过在微信朋友圈转发链接中的信息(http://www.yougemysqldba.com/discuz/v ...

  10. 【MySQL】SQL优化系列之 in与range 查询

    首先我们来说下in()这种方式的查询 在<高性能MySQL>里面提及用in这种方式可以有效的替代一定的range查询,提升查询效率,因为在一条索引里面,range字段后面的部分是不生效的. ...

随机推荐

  1. express-4 质量保证(1)

    QA 在Web开发中,质量可以分解为四个维度: 到达率: 到达率是指产品的市场普及程度,即查看网站或使用服务的人数.到达率和盈利能力是正相关关系:访问网站的人越多,购买产品或服务的人就越多.从开发的角 ...

  2. CSS3属性

    1.边框阴影(box-shadow ): 投影方式,X轴偏移,Y轴偏移,阴影模糊半径,阴影扩展半径,颜色 2.边框图像(border-image) 3.边框圆角:border-radius:5px 4 ...

  3. 快消品销售管理系统,PDA销售管理系统,销售拜访PDA,进销存管理PDA系统 移动扫描打印开单POS

    各种ERP软件的移动订单及移动车销解决方案是针对各个需要快速.便捷的,通过智能PDA移动智能终端设备实现销售订单下达及快速车销的应用解决方案.通过将移动订单及移动车销集成到ERP的移动解决方案,可以帮 ...

  4. 转 Delphi Invalidate的用法

    1.Invalidate介绍 void Invalidate( BOOL bErase = TRUE ); 该函数的作用是使整个窗口客户区无效.窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口 ...

  5. Linux中cp覆盖不提示

    cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,这在大量cp覆盖操作的时候是不能忍受的. 1. 把a目录下的文件复制到b目录 cp –r a/* b 2. 执行上面的命令时,b存在的每个文件都会 ...

  6. Git常用命令举例

    clone一个git project到本地 git clone https://github.com/huahuiyang/network-certification.git 到这个目录下,可以发现有 ...

  7. 一个基于RBAC0的通用权限设计清单

    注:RBAC0与RBAC1不同在于权限继承.关于RBAC1的权限设计,敬请关注作者后续CSDN博客.1,用户表 保存系统用户信息,如张三.李四,字段可以有id.name.fullname.email. ...

  8. WPF在DLL中读取Resource的方法

    WPF是个用户控件,被WinForm调用.而WinForm是在一个DLL类库中被调用.试了很多方法,都无法将Resource中的图读进程序.用下面的方法总算实现了.   /根据图片的名称,从资源中找到 ...

  9. 【Linux程序设计】之进程控制&守护进程

    这个系列的博客贴的都是我大二的时候学习Linux系统高级编程时的一些实验程序,都挺简单的. 实验题目:Linux环境下的进程控制 实验目的:熟悉并掌握Linux环境下进程的相关函数的应用:守护进程的概 ...

  10. 【转】移动web页面使用字体的思考

    回想2年前刚开始接触手机项目,接到PSD稿后,发现视觉设计师们喜欢用微软雅黑作为中文字体进行设计,于是我写页面的时候也定义 font-family 为微软雅黑,后来发到线上后,细心的产品经理发现页面的 ...