转自:http://jingyan.baidu.com/article/8275fc868ce57946a03cf692.html 一条sql突然执行变慢,耗时9秒,应用是不能改的,只能从数据库方面下手解决 步骤思路: 1:查看sql是否走索引 2:查看索引是否失效 3:hint 强制走索引(只是用来查看hint状态下,查询是否更改,应用是不能改的) 4:收集该表所有信息(包括索引) 5:分析该表所有信息(包括索引) 6:再次执行并查看 注意:哪个用户执行较慢,就用哪个用户进行操作,这样才准确…
SQL查询速度慢的原因分析和解决方案 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,…
数据治理中Oracle SQL和存储过程的数据血缘分析   数据治理中的一个重要基础工作是分析组织中数据的血缘关系.有了完整的数据血缘关系,我们可以用它进行数据溯源.表和字段变更的影响分析.数据合规性的证明.数据质量的检查等. 分析数据血缘的方法主要分为四类 自动解析 系统跟踪 机器学习 人工收集 自动解析主要是利用工具解析 SQL 语句.存储过程和 ETL等文件. 本文以 Oracle 为例,来说明如何分析 SQL 和存储过程中的数据血缘. 产生数据血缘的 SQL 语句 SELECT INSE…
前因: 客户咨询,有一个业务sql(代表经常被执行且重要),全表扫描在系统占用资源很高(通过ash报告查询得到信息) 思路: 1.找到sql_text,sql_id 2.查看执行计划 3.查询sql涉及对象的对象数据量,段大小,行数量,where条件列,是否存在索引,列的选择读情况如何 4.总结,优化整改 1.找到sql_text,sql_id 094cmrxrahdy2 SELECT ~10个列名称(由于设计用户信息,因此部分信息不再详细说明) FROM Prescription WHERE…
1,看以下结果 select * from test where login like '%CF_%'; LOGIN--------------------------------------------------CF_wwwwwww4CF_wwwwwww5CF_wwwwwww6CF1CF2CF3 因为_是转义字符 把CF1,CF2,CF3的结果也查出来了 而我们的目的 是不需要转义符 的,只需要CF_wwwwwww4CF_wwwwwww5CF_wwwwwww6 这三条记录 所以做如下处理就可…
使用oracle中自带函数  wmsys.wm_concat(需合并列的字段名) 用法如下: select code,name,wmsys.wm_concat(baname) from tab group by code,name;…
方法一:利用rownum和差集函数minus select * from ( select * from emp order by sal) where rownum<13 minus select * from( select * from emp order by sal) where rownum<10 方法二:利用rownum取别名来选取特定行 select * from (select rownum rn,e.* from (select * from emp order by sa…
http://blog.csdn.net/jlds123/article/details/6572559…
解决办法: -- 3.3:表示原始数据 --fm9999999990.0000:表示保留到小数点后4位,若不存在则用0补位. ),'fm9999999990.0000') as demo from dual;…
 以下的文章抓哟是对Oracle SQL执行缓慢的原因的分析,如果Oracle数据库中的某张表的相关数据已是2亿多时,同时此表也创建了相关的4个独立的相关索引.由于业务方面的需要,每天需分两次向此表中插入300万条记录.  www.2cto.com   由于数据量大,每次插入耗时3个小时以上,严重影响效率. 因此,修改了系统的算法,将此表中只存储当天新增记录.将此表truncate后,第二天执行对此表的update操作时,非常耗时.表中有2亿多条数据的时候,此Oracle sql语句耗时59秒:…