oracle_sql tuning
老农民挖数据
这个作者很懒,什么都没留下…
展开
-
手动生成AWR报告步骤
先进一个目录[oracle@mengl dump]$ 这样会生成报告到dump目录下,注意目录权限有oracle用户读写权限oracle@mengl dump]$ sqlplus /nolog SQL*Plus: Release11.2.0.1.0 Production on Tue Jun 21 13:04:44 2011 Copyright (c) 1982, 20原创 2012-07-08 10:42:38 · 2046 阅读 · 0 评论 -
关于oracle hint 值得注意的地方
大家都知道oracle hint如何用, 但是有些小细节,希望对大家有用1.first_row(n)The optimizer ignores this hint in DELETE and UPDATE statement blocks and in SELECT statement blocks that include any blocking operations, such as原创 2013-05-14 15:14:33 · 996 阅读 · 0 评论 -
数据库表设计之number注意事项
在数据库设计表时,注意字段的类型的选择,先后顺序,这些都是影响性能的,如果设计不对,无论你使用parallel,nologing,compress ,order by index 都没有明显性能提升! 小续:number和number(1),number(23) 在user_tab_col中data_length 都是22,没有区别,为什么呢?SQL> desc ml_test;Na原创 2013-07-03 15:48:31 · 1223 阅读 · 0 评论 -
当create index local 遇到 ORA-08104
遇到这种问题一般分2种情况: 1.解决此类问题,业务允许重启数据库。 2. 在任何情况下解决问题,不准重启数据库。 方法一、我在解决问题时,问了业务,最好不要重启数据库。所以就沿用dave的clean方法。原文:http://blog.csdn.net/tianlesoftware/article/details/6538928declareisClea原创 2013-09-04 11:36:44 · 2124 阅读 · 0 评论 -
又遇 oracle RAC 经常宕机分析
首先看看整体情况 这个奇葩的应用 WARNING: Heavy swapping observed on system in last 5 mins.pct of memory swapped in [6.13%] pct of memory swapped out [0.18%]. Please make sure there is no me原创 2013-10-14 18:11:20 · 2636 阅读 · 0 评论 -
根据ora_rowscn删除重复插入的数据
今天下班前,突然接到局方电话,要求提供10月详单通话记录。这下就开始整,结果不小心,把提取的记录全部插入到了详单表。这下好了,几十w条重复记录,在1000亿大表中,删除嘛。 --下面是解决方案: --1.找出提交值 ora_rowscn -- select scn_to_timestamp(ora_rowscn) from dual 查看提交时间select /*+原创 2013-11-12 19:20:58 · 1090 阅读 · 0 评论 -
oracle在安装好后,突然更换ip后,监听不可用
昨晚实施了一套11g linux6.2 的系统,可能是操作系统没有安装好,比如磁阵每一个不能超过2T,rpm要x86_64 ,等等 这一下出现很多bug出来。 今天领导又换了ip,出现连接不起的情况(把192.168.180.5 改为192.168.180.2)[oracle@SE-1 ~]$ lsnrctl statusLSNRCTL for Linux: Vers原创 2013-11-27 13:39:09 · 3863 阅读 · 0 评论 -
ORA-12916 cannot shrink permanent or dictionary managed tablespace
--在数据库迁移过程中,担心新库中担心存储不够,统计下数据量大小。缺发现有空间需要shrink, 但是报错了, 表示默认表空间不允许shink.SQL> select 6, tablespace_name,bytes/1024/1024/1024 from dba_data_files 2 where tablespace_name='TBDATA_DEFAULT' 3原创 2016-05-26 14:49:14 · 3269 阅读 · 0 评论 -
oracle开发过程中尽量使用绑定变量
在存储过程或者java程序使用sql的过程中,尽量使用绑定变量。否则硬解析太多,比较拖性能。下面查询只是空格多了几个。SQL> select * from ml_1234 where a= 2 2 ; A-------------------------------------原创 2016-05-17 00:10:33 · 1983 阅读 · 0 评论 -
本地索引中 前缀索引和非前缀索引的测试 oracle
周末参加了acoug,听了老杨关于分区的介绍。回来测试一下 SQL> select * from v$version where rownum=1 2 ; BANNER CON_ID---------------------原创 2016-05-29 22:14:07 · 2966 阅读 · 0 评论 -
oracle性能问题如何定位
最近甲方抱怨,oracle 怎么越跑越慢,感觉没有做什么。1.先整体看看 awr哎,没有什么大问题。2.再看看等待事件 ,读写数据量有点大,网络带宽是不是也有点问题?unicomidmp@UNICOM>select * from (select event,total_waits,time_waited from v$system_event where w原创 2016-05-19 00:20:58 · 2727 阅读 · 1 评论 -
table access by index rowid
table access by index rowid 回表:在数据中,当查询数据的时候,在索引中查找索引后,获得该行的rowid,根据rowid再查询表中数据,就是回表。--创建一个表, 索引只建立在object_id上SQL> create table ml_1 as 2 select * from dba_objects 3 ; Table creat原创 2016-05-22 17:24:05 · 10650 阅读 · 0 评论 -
ORA-30009: Not enough memory for CONNECT BY operation
其实这个是sga内存不足,ok,是这样的。但是不要一味的加大内存,先看看你的程序,一定要把内存占用完,直到报错,才提交?所以可以直接修改提交的频次。 这样把数据存物理盘,就不会出现这样的问题insert 未提交,就在buffer cache或data file(undo)。出错前 declare v_commit int ;BEGIN原创 2016-08-02 10:23:10 · 2468 阅读 · 0 评论 -
教你如何阅读Oracle数据库官方文档
因为最近也在阅读官方文档,所以看到这个,转载一下。 技术在于传播原创 2016-08-18 00:54:04 · 832 阅读 · 0 评论 -
oracle rac 2个节点故障 (sun os)
今天同事在巡检过程中,发现了一个致命的问题,双机故障,我们所谓的rac就是保证至少1个节点可用, 结果2个节点都down了, 如何给客户交代?oracle系统如此之贵,结果中断了业务,这个问题有点严重了。 说得吓人。。。来,我们直接看故障点:1.在crsctl status res -t 的时候,看到DG是offline的, 然后instance是down的。 分析:原创 2016-08-31 12:49:47 · 1482 阅读 · 0 评论 -
解决xshell@换行问题
命令:stty kill '^X'racdb2:/home/oracle #more .profilestty kill '^X'ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin; export PATHNLS_LANG=ame...原创 2018-05-02 14:10:13 · 6102 阅读 · 0 评论 -
oracle 绑定变量不走索引
优化来了,优化来了,组长你来搞定嘛,结果一看,sql抓取出来,秒杀。我优化个串串。因为我看了执行计划没有错。 结果是绑定变量不走索引SQL> explain plan for select /*+ first_rows(100) */ PHONE, IMSI, RPHONE, RIMSI, CALLEDNUM, TMSI, IMEI, SUBEVTTYPE, RESUL...原创 2018-07-05 19:56:31 · 915 阅读 · 0 评论 -
BITMAP CONVERSION FROM ROWIDS
http://www.xifenfei.com/2011/09/bitmap-conversion-from-rowids.html 在有些执行计划中,可以会看到 BITMAP CONVERSION FROM ROWIDS这样的东东,也许你会感觉奇怪,我没有使用位图索引怎么出现了bitmap。我通过一个sql和大家分析下原因:sql语句为: SELECT * FR...转载 2018-11-10 14:36:39 · 1808 阅读 · 0 评论 -
一次由awr入手,解决经常down机的问题
因为涉及隐私,某些部分用xxx代替针对xxx省总是down机,从系统日志看,貌似是asm访问磁盘的权限丢失,不错,down后自动拉起,权限是已经丢失了,这个在建库的时候也遇到过。但是为什么总是6-7点down机,我分析了down机前的awr报告,和down机后,手工恢复后的awr报告。down前:Snap IdSnap Tim原创 2012-08-17 13:31:25 · 5030 阅读 · 0 评论 -
oracle 都是parallel惹的祸
该项目是中国联通xxxx话务系统,我的架构设计+需求设计,+运维保障+数据库开发,全套服务。在今天开发完毕后,突然有个模块的需求,用户号码为必须选择,感觉有点郁闷,因为1小时有1000w数据,把所有用户号码显示出来,是不是有点画蛇添足呢。我的开始设想是查询详单,像中移营业厅,需要输入号码,或者省份证查询模糊查询,没有谓词不能查询。(感觉设计合情合理)1.但是想了解整个系统用户分原创 2013-05-31 15:44:13 · 12992 阅读 · 0 评论 -
oracle优化书籍推荐
经常听到有做应用的朋友抱怨数据库的性能问题,比如非常低的并发,令人崩溃的响应时间,长时间的锁等待,锁升级,甚至是死锁,等等。本文针对应用开发人员经常接触的性能问题,推荐几本书,请大家关注。 一、《 oracle 9i/10g 编程艺术》内容简介 本书是一本关于Oracle 9j az& 10g数据库体系结构的权威图书,涵盖了所有最重要的Oracle体系结构特性,原创 2012-07-08 11:44:59 · 6275 阅读 · 0 评论 -
oracle 11g 新特性详解
Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Information Lifecycle Management)等多项创新。 一.新特性提纲 1.数据库管理部分◆数据库重演(Database Replay) 这一特性可以捕捉整个数据的负转载 2012-07-20 10:00:51 · 4483 阅读 · 0 评论 -
一次sqlldr导入慢的解决过程
今天在客户处进行培训时,客户抱怨到,sqlldr的速度太慢,说是从昨天晚上加载数据到今天上午,都没有结束。加载的文本文件大小为10M,大概包含10万条记录。按照我的理解,sqlldr几乎不可能花这么长的时间的。于是,让客户查询v$session_wait,发现执行sqlldr加载的session(session id为33)正在等待library cache lock的等待事件。很明显,s转载 2012-08-30 23:45:14 · 7255 阅读 · 0 评论 -
oracle 11g新特性,UNPIVOT 性能测试
根据业务需要,我们有900列转为3列900行数据的需求。 亲们,你们测试过piovt与 unpivot的性能吗?确定没有bug吗? 等测试完后我再去Metalink寻找一下。下面是我测试的性能。--200 列 SELECT substr(dt.y,1,INSTR(dt.y,',')-1) x,substr(dt.y,INSTR(dt.y,',')+1) y,dt.z FROM原创 2012-08-29 00:07:11 · 3395 阅读 · 0 评论 -
oracle 行列测试
create table mengl( NAME varchar2(200) primary key not null ) ;insert into mengl values('男人'); insert into mengl values('女人'); insert into mengl values('不是人'); select wmsy原创 2012-08-20 15:26:17 · 461 阅读 · 0 评论 -
SQL*Net more data to client意味着什么
今天下班时候,接到领导一个任务,查看数据库sqlldr入库堆积情况首先查看了io cpu swap情况,情况良好 Glance C.05.00.000 20:22:56 racdb1 ia64 Curren原创 2012-09-03 20:21:11 · 8415 阅读 · 0 评论 -
create table 节约成本中重要的属性 compress 详解
Usually, the application developer is responsible for designing the elements of an application, including the tables. Database administrators are responsible for establishing the attributes of the und原创 2012-09-13 13:05:03 · 6769 阅读 · 0 评论 -
学优化首先要懂执行计划怎么看,提供3种方法
方法一一、启用Autotrace功能。任何以SQL*PLUS连接的session都可以用Autotrace,不过还是要做一些设置的,否则可能报错。1、报错示例:SQL :> set autotrace on;SP2-0613: Unable to verify PLAN_TABLE format or existenceSP2-0611: Error enablin原创 2012-09-04 14:58:56 · 2186 阅读 · 0 评论 -
local index and global index [转]
表可以按range,hash,list分区,表分区后,其上的索引和普通表上的索引有所不同,oracle对于分区表上的索引分为2类,即局部索引和全局索引,下面分别对这2种索引的特点和局限性做个总结。 局部索引local index 1. 局部索引一定是分区索引,分区键等同于表的分区键,分区数等同于表的分区说,一句话,局部索引的分区机制和表的分区机制一样。原创 2012-10-30 14:31:38 · 638 阅读 · 0 评论 -
一次10053分析,建立分区索引后,无法走索引
--1.trace看看Elapsed: 00:00:07.01Execution Plan----------------------------------------------------------Plan hash value: 1846712945--------------------------------------------------------------原创 2012-12-20 17:47:21 · 2171 阅读 · 0 评论 -
11g MEMORY_TARGET参数对SGA和PGA的影响 (转)
11g MEMORY_TARGET参数对SGA和PGA的影响11g 中新增 MEMORY_MAX_TARGET 参数,此参数一出现就如在 10g 中第一次出现 SGA_MAX_SIZE 参数一样给人以耳目一新的感觉。memory_max_target 是设定 Oracle 能占 OS 多大的内存空间,一个是 Oracle SGA 区最大能占多大内存空间。无疑在 11g Oracle 又向自原创 2013-02-18 11:26:49 · 638 阅读 · 0 评论 -
oracle sqlldr入库堆积处理方案
sqlldr入库是常用方式之一,也是最常见的。我已经处理类似案例多次了,但是今天这次耗时最长。 分析原因:1.入库报错(比如:没有分区,入库值的精度不对,列名少了一个等等)。2.io压力大(索引单块读比较多,db file sequential read)3.机器内存足够,但是oracle的sga不够,或者说sga_target pga_aggrent_target原创 2013-02-18 18:11:15 · 1365 阅读 · 0 评论 -
oracle采用sqlldr入库堆积怎么办?
sqlldr入库是常用方式之一,也是最常见的。我已经处理类似案例多次了,但是今天这次耗时最长。 分析原因:1.入库报错(比如:没有分区,入库值的精度不对,列名少了一个等等)。2.io压力大(索引单块读比较多,db file sequential read)3.机器内存足够,但是oracle的sga不够,或者说sga_target pga_aggrent_target原创 2013-02-18 18:10:15 · 1664 阅读 · 0 评论 -
LOB字段建立索引
lob字段本身不能建立索引 SQL> create table ml_test1(a clob); Table created SQL> create index idx_ml_test1 on ml_test1 (a); create index idx_ml_test1 on ml_test1 (a) ORA-02327: 无法以数据类型 LOB 的表达式创建索引原创 2013-03-06 15:48:46 · 3361 阅读 · 0 评论 -
oracle resize报错,dba_segments与dba_data_files中相差很大
1.当dba_segments读取到某个空间占用900M时,但是dba_data_files读取到某个空间 占300G2.此时可以move table,rebulid解决3.如果还是不一致时,可能由于lob字段没有move成功此时的解决方法:select * from dba_extents where tablespace_name='xxxxx' order by bloc原创 2013-04-07 18:22:36 · 2225 阅读 · 0 评论 -
oracle linux三个节点RAC 查询中event显示gc cr multi block request
先查询的很快,后查询就一直等待,event显示gc cr multi block request 看了其他blog,都说换换节点,确实可以解决,关键是client查询时,不能切换实例。下班回去写 这个没有什么好说的,换个节点,应用在多节点时,尽量分离。原创 2013-04-02 17:51:07 · 981 阅读 · 0 评论 -
Oracle本地索引与全局索引
http://blog.itpub.net/29478450/viewspace-1417473/Oracle本地索引与全局索引原创Oracle作者:luoleiAaron时间:2015-01-27 21:55:5874590内容整理来自网络分区索引分为本地索引(local index)和全局索引(global index)。对于local索引,每一个表分区对应...转载 2019-03-20 19:11:43 · 901 阅读 · 0 评论