关于update语句的性能测试
今天对表的update进行了性能测试,收获不小。在linux 64位的环境中测试,数据量是按照40万左右的标准进行的测试。SQL> select count(*)from test; COUNT(*)---------- 411426数据库在archive log 模式下。没有考虑索引(没有添加索引),没有考虑执行计划优化的影响,为了保证每次执行的环境基本...
not null constraint和check constriant的问题及分析
oracle的constraint有6类,如下。但是基于列的constraint主要有 type 为C,P,R,U 接触比较多的。今天来和大家讨论check constraint和not null constraint,它们的constraint type都为C,但是实际应用中还是有很大的差别。Type Code Type Description ...
生产系统中EXP-00000的问题及解决
早上刚来的时候,客户的dba就急忙找到我说生产系统exp出问题了。exp的时候报了错误,让我帮着看一下。> exp xxxxx file=tui.dmp log=xxx.log Message 206 notfound; No message file for product=RDBMS, facility=EXP: Release 11.2.0.2.0 -Production on Thu May 8 09:36:55 2014 Copyright (c) 1982,2009, ...
关于SCN的总结测试
scn是数据库对自身变化的一个标记。通过一个序列号能够反映出数据库在那个时间点正在进行的操作,scn没有选用时间来作为基准单位,可能也是因为时间的不确定性,比如当前时间为2014年3月14号晚上八点整,如果修改了系统时间,改为晚上七点钟,name重启数据库以后,那个时间段的操作就都乱套了。这个scn在一般的库上都看似比...
物化视图全量刷新与insert的redo生成量测试
之前的一篇博客中提到,物化视图的全量刷新也是一种高可用性的体现,但是性能如何呢,下面来简单的测试一下。 首先需要创建一个函数,这个函数会计算当前session下的一些指标信息。比如redo的生成量。 CREATE OR REPLACE FUNCTION "GET_STAT_VAL" (p_name in varchar2) return number as l_va...
rac节点无法启动ORA-29702的问题及分析
今天在虚拟机上启动rac,发现有一个节点怎么都起不了。另外一个节点没问题。 SQL> startup nomount ORA-29702: error occurred in Cluster Group Service operation 尝试使用crs_stat查看crs的组件状态,也报错了。 -bash-4.1$ crs_stat -t CRS-0184: Cannot communicate with the CRS daemon. 查看alert日志,发...
goldengate学习-安装篇
goldengate算是数据同步的利器,可以在不同的库,平台间进行数据的同步,当然还是有一些bug的,不过还是优点大过缺点。 算是尝尝鲜,从官网下载了一个版本12的,可以支持11g,12c。安装的过程我开始以为会很繁琐。结果安装的过程很简单,不过配置和管理要费一些功夫的。后续再说。 下载安装包可以从官网上得到,大概300多...
使用hint来调优sql语句
生产发现有一个sql语句运行耗时达5000多秒。抓出来sql_id一看,sql倒不是一个很长的语句。结构也很简单。如下。select company_code, sap_company_id from data_company_code where company_code not in (SELECT dist inct l9_company_code F...
使用awk来解析dump文件
dump文件是平时工作中经常碰见的,有时候得到一个dump,但是没有提供一些更多的信息,导入的时候就很可能会有问题。如果某个用户默认表空间是user,但是dump中的表所属的表空间是datas01,则导入的时候会自动转换表空间。但是如果表中存在lob字段且dump的表空间和目标环境的表空间不一致,就有在导入dump的时候,经典的0095...
奇怪的登录问题及解决
最近新建了好几个测试库,有一个库在过了一段时间之后,出现了很奇怪的问题,有时候能够登录,有时候又登不上。通过sqlplus登录,报错如下:>sqlplus n1/n1@testhost1SQL*Plus: Release 11.2.0.2.0 Production on Wed May 14 15:04:35 2014Copyright (c) 1982, 2010, Oracle. All rights reserved.ERROR:ORA-1...
循序渐进调优ddl的案例
在平时的工作中,可能需要导入一些数据,有些表可能比较大,对于constraint的操作可能会耗费大量的时间,今天简单做了一些相关的测试,也提出了一些相关的优化方案,对结果进行比较,看看哪种才是比较合理的方法。 首先监控redo,undo的生成量也是衡量的一个标准。本次测试就简单从redo,undo,执行时间这三个方面进行总结。...
归档问题导致的数据库无法启动
本地有一个小的环境,今天照例登上sqlplus,突然发现报了如下的错误。一看原来归档满了。我记得前几天做一个批量操作临时把temp文件resize了很大,限于本地空间有限。准备改回去。把多余的归档删除了。 sqlplus n1/n1 .... ERROR: ORA-00257: archiver error. Connect internal only, until freed. 这个时候sysd...
关于exp statistics的问题和简单测试
在数据导出的时候,可能会碰到EXP-00091: Exporting questionable statistics.的问题,有时候会让人有点摸不到头脑,不知道该调整什么。 这个时候NLS_LANG就发挥作用了。 [ora11g@rac1 ~]$ exp n1/n1 tables=t file=t.dmp rows=n Export: Release 11.2.0.3.0 - Production on Fri May 23 19:26:35 2014 Copyright (...
生产系统pl/sql调优案例
昨天基本休息了一天,想着生产系统升级也会多多少少碰到些问题,肯定有一些心得或者是值得学习的东西,结果昨晚到现在生产系统升级一直为一个pl/sql的问题所困扰。在测试环境中只用了十多分钟, 在生产系统上跑了快5个小时。这个经历太痛苦了,大半夜还在考虑怎么优化真是痛苦。这个也算是一个很深刻的学习经验,和大家...
生产sql调优之统计信息分析
今天凌晨,又被电话叫醒了,说是有1个sql,现在跑的很慢。问题已经挺严重了,想让我看看,能不能做点什么。首先就是和他们确认最近有什么改动,他们说这个是用了很久的sql语句了,没有任何的改动,再听他们说,之前也没有任何的问题。然后就和他们确认之前这个jobl处理大概多长时间,那个哥们说他也是最近才进的这个项目...
生产系统调优之_敢于质疑
接着昨天的那个问题来说。有个sql语句在做了统计信息收集之后,速度有了一定的提升,从5秒的响应降低到了2秒。但是和预期还是有一定的差距,按照80条查询请求在短时间内响应。2秒*80000次/60/60=44.4小时,本来感觉可以接受的一下子就成了大问题。 Elapsed Tim...
生产系统调优之_毫秒级的改进
生产中有一个sql语句,做了union-all操作,对于时间的要求是极其严格的,目前已经从2秒的改进调整到了1秒以内,在此基础上还想做进一步的调整,因为极其频繁的查询,如果一丁点的改进都会在时间上的飞跃,以下的sql语句目前时间控制在不到半秒的样子。因为表SMALL_OFFER_PARAM 是一个数据字典表,查询的字段上没有相关的索...
创建index 使用Online导致的问题
在本地的测试库中,本来空间就不足,结果创建了一个表有600多万条记录,想创建一个index. 物理段有340多M. 临时段大小有100M,结果想创建一个索引,总是报临时表空间不足的错误。 [ora11g@rac1 test]$ ksh test.sh "create unique index t_pk on t(object_id) tablespace pool_data nologging online;" create unique in...
关于创建索引的ora问题
创建index的时候,报了如下的错误。让人有些摸不着头脑。 create unique index t_pk on t(object_id,object_name) nologging * ERROR at li...
insert的不同场景性能比较
关于Insert的问题,可能在一些场景中会有完全不同的期望和结果,在日常工作使用的库中,需要表在Logging模式,必要时需要一些索引 但在数据迁移中,可能为了提高速度,索引就需要考虑重建了。 我做了一些场景的测试,并且做了详细的数据比对。 第一种场景:table在nologging模式下。并且表中没有索引, 在插入不同数据...