SQL优化 1
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的更多相关文章
- SQL优化案例—— RowNumber分页
		将业务语句翻译成SQL语句不仅是一门技术,还是一门艺术. 下面拿我们程序开发工程师最常用的ROW_NUMBER()分页作为一个典型案例来说明. 先来看看我们最常见的分页的样子: WITH CTE AS ... 
- sql 优化
		1.选择最有效率的表名顺序(只在基于规则的优化器中有效): oracle的解析器按照从右到左的顺序处理 from 子句中的表名,from子句中写在最后的表(基础表driving table)将被最先处 ... 
- SQL 优化总结
		SQL 优化总结 (一)SQL Server 关键的内置表.视图 1. sysobjects SELECT name as '函数名称',xtype as XType FROM s ... 
- (转)SQL 优化原则
		一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ... 
- sql优化阶段性总结以及反思
		Sql优化思路阶段性心得: 这段时间的优化做了好几个案例,其实有很多的类似点,都是好几张大表的相互连接,然后执行长达好几个小时,甚至都跑不出来. 自己差不多的思路就是Parallel full tab ... 
- mysql sql优化实例
		mysql sql优化实例 优化前: pt-query-degist分析结果: # Query 3: 0.00 QPS, 0.00x concurrency, ID 0xDC6E62FA021C85B ... 
- SQL优化技巧
		我们开发的大部分软件,其基本业务流程都是:采集数据→将数据存储到数据库中→根据业务需求查询相应数据→对数据进行处理→传给前台展示.对整个流程进行分析,可以发现软件大部分的操作时间消耗都花在了数据库相关 ... 
- ORACLE常用SQL优化hint语句
		在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量, ... 
- SQL优化有偿服务
		本人目前经营MySQL数据库的SQL优化服务,100块钱一条.具体操作模式 其中第一条,可以通过在微信朋友圈转发链接中的信息(http://www.yougemysqldba.com/discuz/v ... 
- 【MySQL】SQL优化系列之 in与range 查询
		首先我们来说下in()这种方式的查询 在<高性能MySQL>里面提及用in这种方式可以有效的替代一定的range查询,提升查询效率,因为在一条索引里面,range字段后面的部分是不生效的. ... 
随机推荐
- 端口偷窃(Port Stealing)技术
			端口偷窃(Port Stealing)技术 该技术主要用于局域网中间人攻击中,尤其目标计算机采用静态ARP后,导致ARP欺骗无效. 背景知识:路由器为了方便转发数据包,会在内部记录每个接口和M ... 
- CSS3-网站导航,transform,transition
			网站导航: 1.a:link visited hover active的顺序是很重要的,如果改变顺序,则hover以及active的状态不起作用 2.<a href=" ... 
- CSS3-样式继承,层叠管理,文本格式化
- WPF ,listbox,平滑滚动的2种方式。
			一,烤地瓜版本的.. 这个版本不安装内容滚动,,鼠标滑轮滚动一次距离相同, 具体步骤参照他的博客,说点注意的,, 1,ScrollViewer.CanContentScroll="Fals ... 
- #include<>与#include""
			对于头文件的包含,使用“<>”时,系统会到默认目录(编译器及环境变量,工程文件定义的头文件寻找目录,包括Qt安装的include目录)查找要包含的文件,这是标准方式: 用双引号时,系统先到 ... 
- [bzoj4514]数字配对[费用流]
			今年SDOI的题,看到他们在做,看到过了一百多个人,然后就被虐惨啦... 果然考试的时候还是打不了高端算法,调了...几天 默默地yy了一个费用流构图: 源连所有点,配对的点连啊,所有点连汇... 后 ... 
- Hadoop2.2.0 hive0.12 hbase0.94 配置问题记录
			环境:centos6.2 Hadoop2.2.0 hive0.12 hbase0.94 1>hadoop配好之后,跑任务老失败,yarn失败,报out of memory错误,然后怎么调整内存大 ... 
- hdu 2099  整除的尾数
			Problem Description 一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢? Input 输入数据有若干组,每组数据包含二个整数a,b(0< ... 
- Android 读取蓝牙设备信息开发
			(1)Android手机一般以客户端的角色主动连接SPP协议设备(接上蓝牙模块的数字传感器),连接流程是: 1.使用registerReceiver注册BroadcastReceiver来获取蓝牙状态 ... 
- Android Intent (可通过URL启动 Activity)
			Intent分为两大类: (1)显性的(Explicit) (2)隐性的(Implicit) 对于隐性意图,在某些时候, 应用程序只是想启动具有某种特征的组件, 并不想和某个特定的组件耦合. 使用In ... 
