一条sql的改写
好久没有写博客了,今天在巡检时发现一条sql,走了全表扫描,执行效率很低:select distinct mcid from pho_delivery where downflg = 0 and (to_date(to_char(sysdate,'yyyymmddhh24miss'),'yyyymmddhh24miss')-to_date(to_char(createdate,'yyyymmddhh24miss'),'yyyymmddhh24miss')) * 24 * 60 BETWEEN 3/60 AND 2...
一条简单update语句的优化
今天上午10点钟,经过数据库巡检,发现一条很简单的updatesql语句:UPDATE card cc SET cc.card_password =fn_md5('001122') WHERE cc.card_no=2525000120001590;此sql存在很严重的全表扫描情况,然而card_no字段却存在索引。根据分析,得到card_no存在隐式转换,导致索引失效。car...
手动安装Oracle注意事项
<span style="color:#000000;font-family:微软雅黑;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:21px;orphans:auto;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:auto;word-spacing:0px;-webkit-text-stroke-width:0p...
根据linux的pid查找性能sql
select sql_text from v$sql where sql_id in ( select sql_id from v$session where paddr in ( select addr from v$process where spid='35515' ))通过查找具体pid,定位sql,接下来查看sql执行计划。针对具体...
Oracle安装初始配置
然对于linux系统来讲,大内存,还需要配置hugepage,如果不配置,就会浪费我们的内存资源。简单的描述一下,操作系统内存的分配使用使用通过page table来的,Page Table 是操作系统上的虚拟内存系统的数据结构,其用来存储虚拟内存地址和物理内存地址之间的映射关系。这就意味着在虚拟内存系统上,我们...
Oracle Life -----DBA的一天
一、活动状态检查 通过查询基本视图,确认数据库和实例处于正常运行状态,可以对外提供数据服务。1,实例状态:SQL> SELECT instance_name,status FROM v$instance; 查询返回实例名称、状态,正常状态应为open。2,连接用户:SQL> SELECT inst_id,username,COUNT(*)...
Oracle之数据库一致性读的原理
在Oracle数据库中,undo主要有三大作用:提供一致性读(Consistent Read)、回滚事务(Rollback Transaction)以及实例恢复(Instance Recovery)。一致性读是相对于脏读(Dirty Read)而言的。假设某个表T中有10000条记录,获取所有记录需要15分钟时间。当前时间为9点整,某用户A发出一条查询语句:select * from T...
Oracle imp/exp说明
imp 用户名/密码 tables=要导入的表(可多表,用,分开) file=导入的文件(包括目录所在) exp将数据库内的各对象以二进制方式下载成dmp文件,方便数据迁移。buffer:下载数据缓冲区,以字节为单位,缺省依赖操作系统consistent:下载期间所涉及的数据保持read only,缺省为ndirect:使用直...
关于Oracle监听日志
之前一直没有注意,最近注意到了一个情况安装Oracle_client后,在没有运行netca创建监听的时候,Oracle会自动运行监听程序,这时没有Listener.ora,属于动态监听。运行netca创建静态监听和tnsnames.ora之后,发现listener的log不在/network/log下。运行llsnrctl status 发现日志是log.xml查询了下官方文档。原来Oracle11...
关于WMSYS用户的创建
近期为开发人员搭建了一套预发布的数据库,在测试工程师测试产品的时候,发现了一个报错,经由开发人员检查,是一处SQL行转列处报错。经与开发人员沟通,看到他们的行转列处用到了WMSYS.NO_VM_CREATE_PROC存储过程。然而此库是我手动创建的,没有创建WMSYS用户。得,既然人家已经用到了,那就给人家导入吧。首先使用SQL>@...
sysdba用户登录问题
问题描述:登录测试环境,发现在服务器中使用sqlplus登录sqlplus / as sysdba 登录正常,通过SQL developer登录sys用户,提示ora-01017:invalid username/password;logon denied。排查过程:1,重置sys密码 alter user sys identified by admin; 无效。2,查看sqlnet.ora中并无SQLNET.AUTHENTICATIO...
遇见的一些问题
一、ORA-01502:index 'SZSL.PK_CARD' or partition of such index is in unusable state。提示索引 'SZSL.PK_CARD' 或这类索引的分区处于不可用状态 。解决方法:1,登录szsl用户,检查该索引状态:select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='P...
在Oracle_Linux6.5中安装Oracle11gR2遇见的问题汇总
问题一 安装OEL后,默认选择为中文,查看i18n文件,为LANG="zh_CN.UTF-8"格式 安装Oracle数据库,字符集选择为简体中文ZHS16GBK, 在安装之后,进行字符集查看字符集默认变成 AMERICAN_AMERICA.ZHS16GBK 操作数据库,发现插入中文,查询的...
PLS-00201: identifier 'WMSYS.LT_EXPORT_PKG' must be declared
问题描述:在测试机中做RMAN备份测试,执行备份提示PLS-00201: identifier 'WMSYS.LT_EXPORT_PKG' must be declared这个错误解决过程:1,查看该用户下是否有异常对象select * from dba_objects where status<>'VALID' and owner='WMSYS';结果查出来了80多条异常对象。2,删除WMSYS用户drop use...
system表空间爆满解决方法
问题描述:对数据库做检查,发现system表空间持续占满99%。使用如下语句查看:SQL> select b.tablespace_name "表空间",b.bytes/1024/1024 "大小M",(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 "已使用M",substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) "利用率" from&nb...
关于清理监听日志文件
最近巡检,发现监听日志过大,有2个多G,虽然现在不像过去32bit那样,超过2个G会导致LISTENER无法连接,然而过大的日志存在也会带来性能问题,同时也会占地方不是,于是还是做下清理吧:1,关闭监听记录日志信息[oracle@bigcat log]$ lsnrctl set log_status onLSNRCTL for Linux:&...