下面是小编为大家整理的where条件顺序不同,性能是否也不同的问题,本文共5篇,供大家参考借鉴,希望可以帮助您。

篇1:where条件顺序不同,性能是否也不同的问题
where条件顺序不同,性能是否也不同的问题
昨天在书上看到SQL语句优化时,where条件顺序不同,性能不同,这个建议在Oracle11G版本还合适吗???方式1优于方式2????????
方式1:
select a.*
from students s,
class c
where
s.id = c.id
s.id = 'xxxxxxxx'
方式2:
select a.*
from students s,
class c
where
s.id = 'xxxxxxxx'
s.id = c.id
10g中测试结果证明是一样的,
Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985- Microsoft Corp.
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 5月 11 17:48:55
Copyright (c) 1982, , Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>alter system flush shared_pool;
系统已更改。
SQL>alter system flush buffer_cache;
系统已更改。
SQL>set autotrace on;
SQL>select *
2 from COUNTRIES c,
3 REGIONS r
4 where c.REGION_ID=r.REGION_ID and c.REGION_ID='4';
REGIONS r
*
第 3 行出现错误:
ORA-00942: 表或视图不存在
SQL>select *
2 from hr.COUNTRIES c,
3 hr. REGIONS r
4 where c.REGION_ID=r.REGION_ID and c.REGION_ID='4';
CO COUNTRY_NAME REGION_ID REGION_ID
-- ---------------------------------------- ---------- ----------
REGION_NAME
-------------------------
EG Egypt 4 4
Middle East and Africa
IL Israel 4 4
Middle East and Africa
KW Kuwait 4 4
Middle East and Africa
CO COUNTRY_NAME REGION_ID REGION_ID
-- ---------------------------------------- ---------- ----------
REGION_NAME
-------------------------
NG Nigeria 4 4
Middle East and Africa
ZM Zambia 4 4
Middle East and Africa
ZW Zimbabwe 4 4
Middle East and Africa
已选择6行。
执行计划
----------------------------------------------------------
Plan hash value: 4030513296
--------------------------------------------------------------------------------
----------------
| Id | Operation | Name | Rows | Bytes | Cost (%
CPU)| Time |
--------------------------------------------------------------------------------
----------------
| 0 | SELECT STATEMENT | | 6 | 168 | 2
(0)| 00:00:01 |
| 1 | NESTED LOOPS | | 6 | 168 | 2
(0)| 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID| REGIONS | 1 | 14 | 1
(0)| 00:00:01 |
|* 3 | INDEX UNIQUE SCAN | REG_ID_PK | 1 | | 0
(0)| 00:00:01 |
|* 4 | INDEX FULL SCAN | COUNTRY_C_ID_PK | 6 | 84 | 1
(0)| 00:00:01 |
--------------------------------------------------------------------------------
----------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access(“R”.“REGION_ID”=4)
4 - filter(“C”.“REGION_ID”=4)
统计信息
----------------------------------------------------------
628 recursive calls
0 db block gets
127 consistent gets
20 physical reads
0 redo size
825 bytes sent via SQL*Net to client
385 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
13 sorts (memory)
0 sorts (disk)
6 rows processed
SQL>
#############
SQL>alter system flush shared_pool;
系统已更改,
SQL>alter system flush buffer_cache;
系统已更改。
select *
from hr.COUNTRIES c,
hr. REGIONS r
where
c.REGION_ID='4'
6 and c.REGION_ID=r.REGION_ID;
CO COUNTRY_NAME REGION_ID REGION_ID
-- ---------------------------------------- ---------- ----------
REGION_NAME
-------------------------
EG Egypt 4 4
Middle East and Africa
IL Israel 4 4
Middle East and Africa
KW Kuwait 4 4
Middle East and Africa
CO COUNTRY_NAME REGION_ID REGION_ID
-- ---------------------------------------- ---------- ----------
REGION_NAME
-------------------------
NG Nigeria 4 4
Middle East and Africa
ZM Zambia 4 4
Middle East and Africa
ZW Zimbabwe 4 4
Middle East and Africa
已选择6行。
执行计划
----------------------------------------------------------
Plan hash value: 4030513296
--------------------------------------------------------------------------------
----------------
| Id | Operation | Name | Rows | Bytes | Cost (%
CPU)| Time |
--------------------------------------------------------------------------------
----------------
| 0 | SELECT STATEMENT | | 6 | 168 | 2
(0)| 00:00:01 |
| 1 | NESTED LOOPS | | 6 | 168 | 2
(0)| 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID| REGIONS | 1 | 14 | 1
(0)| 00:00:01 |
|* 3 | INDEX UNIQUE SCAN | REG_ID_PK | 1 | | 0
(0)| 00:00:01 |
|* 4 | INDEX FULL SCAN | COUNTRY_C_ID_PK | 6 | 84 | 1
(0)| 00:00:01 |
--------------------------------------------------------------------------------
----------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access(“R”.“REGION_ID”=4)
4 - filter(“C”.“REGION_ID”=4)
统计信息
----------------------------------------------------------
656 recursive calls
0 db block gets
131 consistent gets
22 physical reads
0 redo size
825 bytes sent via SQL*Net to client
385 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
13 sorts (memory)
0 sorts (disk)
6 rows processed
SQL>
篇2:where条件顺序不同、性能不同示例探讨
-10-10SQL Server Table中XML列的操作代码
2011-07-07sqlserver下将数据库记录的列记录转换成行记录的方法
2013-07-07SQL Server 查询处理中的各个阶段(SQL执行顺序)示例
-10-10返回SQL执行时间的存储过程
-03-03用sql语句实现分离和附加数据库的方法
-06-06SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析
-09-09CPQuery 解决拼接SQL的新方法
2013-03-03SQL 级联删除与级联更新的方法
2012-11-11SQL SERVER如何判断某个字段包含大写字母
-05-05一道sql面试题附答案
篇3:where条件顺序不同、性能不同示例探讨
最近更 新
SQL中JOIN和UNION区别、用法及示例介绍
SQL Server 不删除信息重新恢复自动编号列
SQLServer 通用的分区增加和删除的算法
SQL Server的复制功能
SQL创建的几种存储过程
sqlserver中通过osql/ocmd批处理批量执行
sqlserver 数据库压缩与数据库日志(ldf)压
SQL重复记录查询的几种方法
sql中参数过多利用变量替换参数的方法
sqlserver数据库主键的生成方式小结(sqls
热 点 排 行
SQL Server 2008图文安装教程
SQL Server 2012 安装图解教程(附
sqlserver中distinct的用法(不重
SQL Server导入、导出、备份数据
SQL语句去掉重复记录,获取重复记
SQL Server数据库入门学习总结
SQL Server错误代码大全及解释(
sql convert函数使用小结
sql 时间函数 整理的比较全了
用SQL语句添加删除修改字段、一些
篇4:平行志愿和顺序志愿有什么不同
平行志愿和顺序志愿有什么不同
1、志愿个数不同。平行志愿录取办法每批次只设置一个平行院校志愿、一个征求平行院校志愿(艺术类为征求志愿,下同)及院校服从志愿。传统志愿每批次设置第一至第四志愿及服从志愿。
2、填报时间不同。平行志愿由考生在录取工作开始前预先填报;征求(平行)志愿是在每批次录取过程中、平行志愿录取结束后,由考生在规定的时间内自行上网填报。传统志愿是在录取前填报的,在录取过程中不再填报志愿。
3、填报对象不同。填报征求(平行)志愿为符合本批次填报条件且未被录取的考生,已被录取或不符合本批次填报条件的考生不能填报。相对于传统志愿形式,平行志愿的填报风险减少,考生录取机会增加,高分落榜现象减少,高校断档现象减少,志愿匹配性提高。
4、投档原则不同。传统志愿的投档原则是“按照志愿从高分到低分投档”,而平行志愿的投档基本原则是“按分排序,遵循志愿”。
平行志愿6个专业顺序怎么填
1、行志愿的投档和录取原则是“志愿并列、位次优先、遵循志愿、一轮投档”。平行志愿虽然是平行的,但是并非平等志愿,是计算机通过考生志愿A、B、C、D的顺序依次检索和投档的。也就是说,如果考生所填报的平行志愿中有多所院校都可以投出去,那么档案只能投到这些院校中排在最前面的那一所。
2、平行志愿填报要有梯度,既要填报有希望够得着的理想学校,也要考虑与自己高考分数相宜的学习,更要考虑填报一些历年录取分数比自己高考分数稍低的学校,最后也别忘了填写一两所保底学校。
高考志愿该怎么填写
1、合理搭配平行志愿,在同一批次的一组平行志愿中,院校的搭配非常重要,既不要全部填报“热门”院校,也不要全部填报“冷门”院校。要根据自己的分数、在全省的位次(如果考试院有公布的话)等,在有可能被录取的院校中填报2-3个比较“热门”的院校,填报2-3个比较“冷门”的院校(以填报5所院校的批次为例,有些省份有更多院校志愿的,根据实际情况进行安排),一旦“热门”投不出去,还有“冷门”的院校保底。
2、找到自己的兴趣所在,在高中所学的科目里,有没有某一门或某几门是特别吸引自己。愿意自发地去投入这些课程,并享受学习的过程的,去了解与这些科目相关的专业。
3、了解学校的办学层次,学校的办学层次与学校的生源质量、财政经费、毕业去向等息息相关。因此,在填报志愿时,应充分考虑学校的办学层次。
4、了解学校的学科专业,在填报志愿,特别是填报专业志愿时,考生需要重点关注学校的优势学科和特色专业,考生可以在这些专业中选择自己感兴趣的报考。同时,考生还需关注学校的本科招生专业是否有硕士点、博士点,这会影响考生本科毕业后的深造机会。
篇5:同一条件,不同人生
同一条件,不同人生
古时候,有个下棋很厉害的人叫弈。因为他的棋艺高超,所以人们称他为弈秋。
弈秋有两个学生。一天,两个学生和他一起学下棋,其中一个学生专心致志的跟老师学习,只听弈秋的话。另一个学生也在听,但心里却想着天鹅什么时候从天上飞过,时刻准备拿弓箭射天鹅。虽然两个人都在一起学习,但第二个人的棋艺却没有第一个人的好,难道是他的智力不如第一个人吗?可想而知不是的`,那是为什么呢?
答案可以从我们身边得到。我们每一个人都在同一间教室上课,有的人专心的听老师讲的内容,有的人却想着什么时候下课。考试的时候,不用想也知道,第一种人比第二种人考得好。为了不像第二种人那样,我们不应该做事认真,专心,端正态度吗?
在学校,老师布置同样的作业给我们,有的同学能完成很好,有的同学却只能一大早来学校抄作业。这不是我们每个人能力的问题而是态度的问题,我们每个人都有能力完成这份简单的任务,却有人不能完成,不是不能完成,而是不想完成。老师给我们布置每周都写一篇作文,这样的一个任务可以提高我们的写作水平,可有的同学的写作水平还是没怎么变,原因便是他们认真完成这项任务,通过各种手段完成任务应付老师。这种做法不仅没什么作用,还浪费时间,还不如那抄别人作文的时间写一篇好作文。
最近麦格社区有些新活动,只要我们要在短时间内写是30篇作文,便可得到奖品。许多人被奖品的魅力诱惑到了,通过各种手段完成这项任务得到礼物,可是我们都忘记了来到这里的初心,并不是得到礼物零花钱,而是提高写作水平,我们难道不应该在提高自己作文水平对自己有比较好的益处的基础上,做出努力的选择。既然我们选择了参加,加油认真对待,而不是为了某种目的不折手段。
做事,需要专心认真端正的态度,这几种品质是我们学习生涯中不可少的,也我们一生不可缺少的道德品质。假如,你是产品生产者,只有你认真的制作产品,才能吸引更多的顾客;假如,你是照护花草的园丁,只有你专心的照护每一科植物,花儿草儿才会更美更绿,花园才能充满生机。
现在就行动起来吧,从每一件小事做起,才能成就大事。让我们拿起手中的笔录,像园丁一样,用辛勤的汗水裁剪出多姿多彩的花园,抒写新时代的篇章。
★情况不同
★不同的我
文档为doc格式