问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle查询语句超时,怎么可以优化一下?(求高人指点,做出来给20分)

发布网友 发布时间:2022-04-08 06:16

我来回答

2个回答

懂视网 时间:2022-04-08 10:37

Oracle语句优化1

 

优化就是选择最有效的方法来执行SQL语句。Oracle优化器选择它认为最有效的  
  方法来执行SQL语句。  
   
  1. IS   NULL和IS   NOT   NULL  
  如果某列存在NULL值,即使对该列建立索引也不会提高性能。  
  2. 为不同的工作编写不同的SQL语句块。  
  为完成不同的工作编写一大块SQL程序不是好方法。它往往导致每个任务的结果不优  
  化。若要SQL完成不同的工作,一般应编写不同的语句块比编写一个要好。  
  3. IN   和EXISTS  
  Select   name   from   employee   where   name   not   in   (select   name   from   student);  
  Select   name   from   employee   where   not   exists   (select   name   from   student);  
  第一句SQL语句的执行效率不如第二句。  
  通过使用EXISTS,Oracle会首先检查主查询,然后运行子查询直到它找到第一个匹配  
  项,这就节省了时间。Oracle在执行IN子查询时,首先执行子查询,并将获得的结果  
  列表存放在一个加了索引的临时表中。在执行子查询之前,系统先将主查询挂起,待  
  子查询执行完毕,存放在临时表中以后再执行主查询。这也就是使用EXISTS比使用IN  
  通常查询速度快的原因。  
  4. NOT   运算符  
  Select   *   from   employee   where   salary<>1000;  
  Select   *   from   employee   where   salary<1000   or   salary>1000;  
  第一句SQL语句的执行效率不如第二句,因为第二句SQL语句可以使用索引。  
  5. Order   By   语句  
  Order   By   语句的执行效率很低,因为它要排序。应避免在Order   By   字句中使用表达式。  
  6. 列的连接  
  select   *   from   employee   where   name||department=’ZYZBIOINFO’;  
  select   *   from   employee   where   name=’ZYZ’   and   department=’BIOINFO’;  
  这两个查询,第二句比第一句会快,因为对于有连接运算符’||’的查询,Oracle优化器是不  
  会使用索引的。  
  7. 通配符‘%’当通配符出现在搜索词首时,Oracle优化器不使用索引。  
  Select   *   from   employee   where   name   like   ‘%Z%’;  
  Select   *   from   employee   where   name   like   ‘Z%’;  
  第二句的执行效率会比第一句快,但查询结果集可能会不同。  
  8. 应尽量避免混合类型的表达式。  
  假设字段studentno为VARCHAR2类型  
  有语句select   *   from   student   where   studentno>123;  
  则Oracle会有一个隐含的类型转换。隐含的类型转换可能会使Oracle优化器忽略索引。  
  这时应使用显式的类型转换select   *   from   student   where   studentno=to_char(123)。  
  9.DISTINCT  
        DISTINCT总是建立一个排序,所以查询速度也慢。   

Oracle语句优化1

标签:

热心网友 时间:2022-04-08 07:45

没有环境无法运行,参考一下吧
select a.TRADEBOUNDNAME as name,
SUM(CASE WHEN provincenum = 640000 THEN t ELSE 0 END) as xzqdm640000,
SUM(CASE WHEN provincenum = 650000 THEN t ELSE 0 END) as xzqdm650000,
SUM(CASE WHEN provincenum = 650205 THEN t ELSE 0 END) as xzqdm650205,
SUM(CASE WHEN provincenum = 660000 THEN t ELSE 0 END) as xzqdm660000,
a.tradetypenum from TB_TRADETYPEBOUNDDIC a
inner join TB_TRADETYPEDIC b on b.Tradetypenum=a.Tradetypenum
LEFT JOIN (select t.tradeboundnum,tt.provincenum, count(*) t from tbcorpcertdetailinfo t, tbcorpbasicinfo tt WHERE t.corpid=tt.id
AND provincenum IN (640000,650000,650205,660000)
GROUP BY t.tradeboundnum,tt.provincenum) c ON c.tradeboundnum = a.Tradeboundnum
where a.Aptitudekindnum =2
Oracle几千条数据致使连接超时怎么解决?

第一 查询语句优化 第二 用存储过程分页查询

最近使用 update语句更新oracle表中记录时,发现一个郁闷的问题,状态死 ...

id和status是联合主键吗?不是的话就不要写status=102;一般不应该有问题的。你不行就把数据库的数据拿出来看看,然后把表的结构看看。确定数据类型;

Oracle 817 查询语句的问题??

select * from menzsfmx where menzh='0911270096' and (fenl='西药费'or fenl='中药费')

oracle查询语句出现 merge join cartesian

强制的在select * 的部分加一个/*+ordered*/试试,让表顺序链接

服务器断电重启了,打开之后发现Oracle 数据库连接不上了,提示以下错误...

是oracle数据库的问题,应该处于nomount状态,没有正常启动,正常启动即可解决。

oracle 语句里怎么可以group by 和 order by 一起使用

首先说,你的子查询 ( select * from pxsys_train order by 上课日期 desc)这里是不能用order by的。

在oracle 中这个表user_tab_partitions 这个表的作用是什么,请高人指点...

1)要查询创建分区的信息,可以通过查询user_part_tables,user_tab_partitions两个数据字典(索引分区、组织分区等信息也有对应的数据字典)。user_part_tables:记录分区的表的信息;user_tab_partitions:记录表的分区的信息。2)ORACLE函数介绍(详细需要自己搜索)注:N表示数字型,C表示字符型,D表示日期型,...

oracle ORA-01427:单行子查询返回多个行

,(select sheettypename from sheettype where id=(select sheettypeid from moduletype where moduleid=trim(a.sheetidruleid)))可能是这个语句中的子查询返回了多个行,正常的话至允许返回一个值

如何学习数据库知识?

该程序想说的第一点是:程序按照标准用户写入法则写入。另外就是在执行多个操作的时候每一步骤的操作我们都必须为其设置错误的回滚操作。所以程序前两个段落都是一样的,在插入的时候故意出现异常,看第1和第3个语句是否能成功执行。从上面看出点什么没有,你我执行了三个操作,第一个操作是肯定成功的...

我是计算机科学与技术专业的大二女生,,想学软件测试,有无高人指点...

首先,注重大学中所有课程的基础知识,这会让你在工作中受益匪浅 其次,培养自己看文档、写文档的能力,以及自己的自学能力 第三,软件测试需要掌握的:软件工程思想;至少1门程序设计语言;至少1个数据库(最好是sqlserver或oracle)的基础操作;操作系统相关知识;数据结构、网络、网络安全等课程也要扎实些...

oracle 如何优化sql语句 oracle语句优化 oracle语句索引优化 Oraclesql语句优化 oracle的where优化 oracle语句性能分析 oracle查索引语句 oracle连接超时12170 oracle 剖析sql语句
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
3dmax文件怎么保存为fbx格式 晒笋干碰上下雨天如何办 ...我的出行路线提建议。请推荐给朋友长辈的特产礼物 蓝莓玛格丽持小饼干制作方法 三国中,是不是郭嘉最聪明? SAMSUNG C&amp;T CORPORATION是什么公司 Normalized C&amp;L是什么意思? C&amp;W tech 是什么 我是一名高中生以成年,请问怎么才能办信用卡 哪些地区可以种植棕榈树?北方可以种哪些品种? 谁能推荐几篇特别优美的描写自然美景的散文? 有没有描写风景的优美的散文250字 抒情散文 景色描写 300字 有没有描写的很优美的风景的散文 vivo X21的摄像头支持光学防抖吗 拍照最好手机 求助英语学霸,最近学到了形容词变副词,但是我就不明白,形容词为什么要变副词,什么时候要变呢 谢谢! 形容词会不会变成副词? 为什么形容词有时要变成副词?好像都是在最后的比较多 还有怎么变啊 英语名词 形容词 动词 副词 怎样转变 英语所有词性的转换!就是形容词转副词,动词转副词等等他们的变化规律。认真回答,一定好评,很急,谢谢 干锅兔子做法 CPA去四大咨询还是投行 干锅兔子怎么做 想去金融行业(比如咨询投行这种)工作,读什么专业好? 今天我们就来谈谈CFA与投行间的关系 有关兔子的作文或寓言!! 乌鲁木齐市天山区社保卡原始密码是多少? 高盛VS.麦肯锡:投行咨询对比,谁前景更好 阿里文学,哪个站比较适合新人 需要描写景物的优美散文段 通过景物描写抒情的文章 推荐几本好的写景的散文 PR怎么批量处理字幕 我想学习网络营销,该怎么做? 腐竹怎么做冷菜好吃? premiere cs4 制作字幕问题,如何对影片中人物说的话批量增加字幕?是不是每一句话都要新建一个字幕? pr里怎么让两个素材字幕先后出现在同一个画面中 pr字幕模板快速安装使用教程 单个或者批量安装方法 给月嫂的感谢信怎么写 月嫂的媒体采访怎么说? 广州宜尔宝月嫂怎样 月嫂挣钱不? 月嫂算是蓝领吗? 在唐山哪里的月嫂比较好? 妇女节写给妈妈的感谢信 香椿不过水炒鸡蛋能吃吗? 咸香椿炒鸡蛋的做法,咸香椿炒鸡蛋怎么做好吃 香椿炒鸡蛋可以32吗 A手机呼叫转移到B,A关机后B能接听吗?