博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
star_zhang
我不能预知明天,但可以把握今天. 在有限的时间里,一定要好好学习! Linux,solaris,unix for Oracle!!! 努力学习非微软的技术,在这留下一个大的脚印.
starzhang.cublog.cn
管理博客
发表文章
留言
收藏夹
博客圈
音乐
相册
文章
首页
关于作者
姓名:Star 职业:我的梦想:DBA 年龄:26 位置:昆山 个性介绍:自信+实践+努力=成功
||
<<
>>
||
我的分类
最新文章
·
删除前一天的备份的一个简..
·
分析执行计划优化SQL<2>O..
·
DBA 常用脚本
·
sql 语句的执行过程
·
orcle性能调整(转)
最新留言
最新评论
最新收藏
·
我另外一個blog
·
solaris unix
·
杭州-XZH2000 BLOG
·
Thomas zhang blog
·
oracle 9i 官方资料
统计信息
·
总访问量:7971
·
文章个数:48
·
评论条数:0
·
留言条数:0
·
网友推荐:
删除前一天的备份的一个简单批处理
<DIV> <DIV class=storytext> <P><STRONG>删除前一天的备份的一个简单批处理:</STRONG> </P> <P>说明一下:备份文件的文件名中含有YYYYMMDD字样。目前暂时无法执行该数据库的netbackup,先临时用该批处理闪出前一天的增量和日志备份。</P> <P><BR> <P>if "%date:~8,2%"=="01" (<BR>set /A dt=%date:~0,4%%date:~5,2%-1<BR>) else (<BR>set /A dt=%date:~0,4%%date:~5,2%%date:~8,2%-1<BR>)<BR>echo %dt%</P> <P>del G:backupDatabasesFinance-dbDiff-Backup*%dt%*<BR>del G:backupDatabasesFinance-dbLog-Backup*%dt%*</P> <P>批处理中IF判断要求真是苛刻:</P> <P>1、IF和后边的前括号必须在同一行</P> <P>2、ELSE必须和IF的后括号在一行,也必须和自己的前括号在一行。</P> <P> <P> <P>--如果功能复杂,最好用VBSCRIPT:</P> <P>Dim WshShell</P> <P>Set WshShell = CreateObject("WScript.Shell")</P> <P>WshShell.run cmd</P> <P>Set WshShell = Nothing</P></DIV></DIV>
查看全文
发表于:2008-02-23 ┆
阅读(193)
┆
评论(0)
分析执行计划优化SQL<2>ORACLE的优化器(转)
<DIV> <DIV class=storytext>优化器有时也被称为查询优化器,这是因为查询是影响数据库性能最主要的部分,不要以为只有SELECT语句是查询。实际上,带有任何WHERE条件的DML(INSERT、UPDATE、DELETE)语句中都包含查询要求,在后面的文章中,当说到查询时,不一定只是指SELECT语句,也有可能指DML语句中的查询部分。优化器是所有关系数据库引擎中的最神秘、最富挑战性的部件之一,从性能的角度看也是最重要的部分,它性能的高低直接关系到数据库性能的好坏。<BR><BR>我们知道,SQL语句同其它语言(如C语言)的语句不一样,它是非过程化(non-procedural)的语句,即当你要取数据时,不需要告诉数据库通过何种途径去取数据,如到底是通过索引取数据,还是应该将表中的每行数据都取出来,然后再通过一一比较的方式取数据(即全表扫描),这是由数据库的优化器决定的,这就是非过程化的含义,也就是说,如何取数据是由优化器决定,而不是应用开发者通过编程决定。在处理SQL的SELECT、UPDATE、INSERT或DELETE语句时,Oracle 必须访问语句所涉及的数据,Oracle的优化器部分用来决定访问数据的有效路径,使得语句执行所需的I/O和处理时间最小。<BR><BR>为了实现一个查询,内核必须为每个查询……
查看全文
发表于:2008-02-23 ┆
阅读(230)
┆
评论(0)
DBA 常用脚本
<DIV> <P>一、数据库构架体系 <BR><BR>1、表空间的监控是一个重要的任务,我们必须时刻关心表空间的设置,是否满足现在应用的需求,以下的语句可以查询到表空间的详细信息</P> <P><BR><BR>SELECT TABLESPACE_NAME,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS, <BR>MAX_EXTENTS,PCT_INCREASE,MIN_EXTLEN,STATUS, <BR>CONTENTS,LOGGING, <BR>EXTENT_MANAGEMENT, -- Columns not available in v8.0.x <BR>ALLOCATION_TYPE, -- Remove these columns if running <BR>PLUGGED_IN, -- against a v8.0.x database <BR>SEGMENT_SPACE_MANAGEMENT --use only in v9.2.x or later <BR>FROM DBA_TABLESPACES <BR>ORDER BY TABLESPACE_NAME; </P> <P> <P><BR>2、对于某些数据文件没有设置为自动扩展的表空间来说,如果表空间满了,就将意味着数据库可能会因为没有空间而停止下来。监控表空间,最主要的就是监控剩余空间的大小或者是使用率。以下是监控表空间使用率与剩余空间大小的语句</P> <P><BR><BR>SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)", <BR>ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2) "USED_RATE(%)",FREE_S……
查看全文
发表于:2008-02-23 ┆
阅读(201)
┆
评论(0)
sql 语句的执行过程
<DIV> <P><STRONG>第1章 SQL语句处理的过程</STRONG> 在调整之前我们需要了解一些背景知识,只有知道这些背景知识,我们才能更好的去调整sql语句。<BR>本节介绍了SQL语句处理的基本过程,主要包括:<BR> · 查询语句处理 <BR> · DML语句处理(insert, update, delete) <BR> · DDL 语句处理(create .. , drop .. , alter .. , ) <BR> · 事务控制(commit, rollback) <BR><BR><B> SQL 语句的执行过程(SQL Statement Execution)</B><BR><BR> 图3-1 概要的列出了处理和运行一个sql语句的需要各个重要阶段。在某些情况下,Oracle运行sql的过程可能与下面列出的各个阶段的顺序有所不同。如DEFINE阶段可能在FETCH阶段之前,这主要依赖你如何书写代码。<BR><BR> 对许多oracle的工具来说,其中某些阶段会自动执行。绝大多数用户不需要关心各个阶段的细节问题,然而,知道执行的各个阶段还是有必要的,这会帮助你写出更高效的SQL语句来,而且还可以让你猜测出性能差的SQL语句主要是由于哪一个阶段造成的,然后我们针对这个具体的阶段,找出解决的办法。<BR><BR> 图 3-1 SQL语句处理的各个阶段<BR><BR><B> DML语句的处理</B><BR><BR> 本节给出一个例……
查看全文
发表于:2008-02-23 ┆
阅读(286)
┆
评论(0)
orcle性能调整(转)
<DIV><FONT size=1><FONT face=宋体>数据库的等待事件,发现前几名是:<SPAN lang=EN-US><O /></SPAN></FONT></FONT> <P style="TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"><FONT size=1>log file parallel write <O /></FONT></SPAN></P> <P style="TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"><FONT size=1>db file scattered read <O /></FONT></SPAN></P> <P style="TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"><FONT size=1>log file sync <O /></FONT></SPAN></P> <P style="TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"><FONT size=1>db file sequential read <O /></FONT></SPAN></P> <P style="TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"><FONT size=1>SQL*Net more data to client<O /></FONT></SPAN></P> <P style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"><FO……
查看全文
发表于:2008-02-23 ┆
阅读(196)
┆
评论(0)
Oracle statspack 祥解
<DIV> <DIV class=storyTitle>Statspack分析报告详解(转) </DIV> <DIV class=noDisplay>=========================================================== </DIV> <DIV class=storyInfo>作者: zhouwf0726(http://zhouwf0726.itpub.net)<BR>发表于:2007.02.28 17:49<BR>分类: oracle性能调整 <BR>出处:http://zhouwf0726.itpub.net/post/9689/265662<BR>--------------------------------------------------------------- <BR></DIV> <DIV class=storytext> <P><FONT size=2>调整STATSPACK 的收集门限<BR>Statspack 有两种类型的收集选项:<BR>级别(level):控制收集数据的类型<BR>门限(threshold):设置收集的数据的阈值。<BR>1.级别(level)<BR>Statspack 共有三种快照级别,默认值是5<BR>a.level 0: 一般性能统计。包括等待事件、系统事件、系统统计、回滚段统计、行缓存、SGA、会话、<BR>锁、缓冲池统计等等。<BR>b.level 5: 增加SQL 语句。除了包括level0 的所有内容,还包括SQL 语句的收集,收集结果记录在<BR>stats$sql_summary 中。<BR>c.level 10: 增加子锁存统计。包括level5 的所有内容。并且还会将附加的子锁存存入<BR>stats$lathc_children 中。在使用这……
查看全文
发表于:2008-02-23 ┆
阅读(235)
┆
评论(0)
oracle sql优化
<DIV> <P>SQL> select index_name,table_name,column_name from dba_ind_columns where lower(table_name) in ('feed_items','feed_schema','feed_string_attributes')</P> <P><BR>INDEX_NAME TABLE_NAME COLUMN_NAME<BR>------------------------------ ------------------------------ ------------------------------<BR>PK_FEED_ITEMS FEED_ITEMS FEED_ITEM_ID<BR>PK_FEED_SCHEMA FEED_SCHEMA FEED_SCHEMA_ID<BR>PK_FEED_STRING_ATTRIBUTES FEED_STRING_ATTRIBUTES FEED_STRING_ATTRIBUTE_ID<BR><STRONG>UI_FEED_STRING_ATTRIBUTES_NBK FEED_STRING_ATTRIBUTES JOYO_ATTRIBUTE_ID <BR>UI_FEED_STRING_ATTRIBUTES_NBK FEED_STRING_ATTRIBUTES ORDINAL_NUMBER<BR>UI_FEED_STRING_ATTRIBUTES_NBK FEED_STRING_ATTRIBUTES FEED_ITEM_ID</STRONG></P> <P>6 rows selected.</P> <P>执行计划:</P> <P>select <BR>feed.feed_item_id,feed.feed_schema_id feed_schema_id, sch.vendor_code, attr.attribute_value vendor_product_id <BR>from <BR>MATCHING_PROD_USER.feed_items feed, <BR>MATCHING_PROD_USER.feed_schema sch,<BR>MATCHING_PROD_USER.feed_string_attrib……
查看全文
发表于:2008-02-23 ┆
阅读(161)
┆
评论(0)
Oracle的全文检索技术(转)
<DIV><FONT face=Verdana><FONT size=1>Oracle一直致力于全文检索技术的研究,当Oracle9i Rlease2发布之时,Oracle数据库的全文检索技术已经非常完美,Oracle Text使Oracle9i具备了强大的文本检索能力和智能化的文本管理能力。Oracle Text是Oracle9i采用的新名称,在Oracle8/8i中它被称作Oracle interMedia Text。使用Oracle Text,可以方便而有效地利用标准的SQL工具来构建基于文本的新的开发工具或对现有应用程序进行扩展。应用程序开发人员可以在任何使用文本的Oracle数据库应用程序中充分利用Oracle Text搜索,应用范围可以是现有应用程序中可搜索的注释字段,也可是实现涉及多种文档格式和复杂搜索标准的大型文档管理系统。Oracle Text支持Oracle数据库所支持的大多数语言的基本全文搜索功能。<BR>虽然大多数大型数据库都支持全文检索,但Oracle在这方面无疑是最出色的。Oracle能搜索多种格式的文档,如Word,Execl,PowerPoint,Html,PDF等等。但在使用中也发现有遗憾的地方,Oracle Text无论使用何种过滤器(INSO_FILTER或NULL_FILTER)及何种词法分析器(BASIC_LEXER, CHINESE_VGRAM_LEXER还是CHINESE_LEXER)都不能检索出中文内容的文本文档(TXT,RTF)。<BR></FONT><BR……
查看全文
发表于:2008-02-23 ┆
阅读(205)
┆
评论(0)
oracle job 小调一下.
<DIV><STRONG><FONT size=5>oracle job管理<BR></FONT></STRONG> <P>SVRMGR> select * from dba_jobs;</P> <P>初始化相关参数job_queue_processes<BR>alter system set job_queue_processes=39 scope=spfile;//最大值不能超过1000 ;job_queue_interval = 10 //调度作业刷新频率秒为单位<BR>DBA_JOBS describes all jobs in the database. <BR>USER_JOBS describes all jobs owned by the current user</P> <P>1 select job,what,to_char(last_date,'yyyy-mm-dd HH24:mi:ss'),to_char(next_date,'yyyy-mm-dd HH24:m),interval from dba_jobs where job in (325,295)<BR>2 select job,what,last_date,next_date,interval from dba_jobs where job in (1,3);</P> <P><BR>查询job的情况。<BR>show paramter background_dump_dest.<BR>看alter.log 和trace</P> <P> <P>SVRMGR> select * from dba_jobs;</P> <P>初始化相关参数job_queue_processes<BR>alter system set job_queue_processes=39 scope=spfile;//最大值不能超过1000</P> <P>job_queue_interval = 10 //调度作业刷新频率秒为单位</P> <P><BR>DBA_JOBS describes all jobs in the database. <BR>USER_JOB……
查看全文
发表于:2008-02-23 ┆
阅读(265)
┆
评论(0)
Oracle数据库的备份方法-3
<DIV>5、使用export作为备份策略 <BR>5.1 export的命令选项说明 <BR>Oracle数据库的exp工具提供tables、users、full database、tablespace四种级别的导出方式,把指定的数据库内容导出到一个或者多个oracle二进制文件中,该文件只允许用imp工具来读取,imp的命令选项可用imp help=y来查阅。 <BR>您可以通过输入 EXP 命令以及各种自变量来控制“导出”的运行方式。要指定参数,您可以使用关键字: <BR>格式:EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN) <BR>实例:EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) <BR>或 TABLES=(T1:P1,T1:P2),如果 T1 是分区表 <BR>USERID 必须是命令行中的第一个参数。 <BR><BR><BR>下列关键字仅用于可传输的表空间 <BR>TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N) <BR>TABLESPACES 将传输的表空间列表 <BR>5.2 export备份数据库的脚本文件expbak.cmd <BR>rem Oracle数据库export备份脚本文件名expbak.cmd <BR>rem 用于Windows NT/2000 平台 <BR>rem 设置SID <BR>set oracle_sid=tmq <BR>rem 设置system帐户的密码 <BR>set my_password=manager <BR>rem 建立备份目录 <BR>mkdir c:\temp <BR>set my_temp=c:\temp <BR……
查看全文
发表于:2008-02-23 ┆
阅读(169)
┆
评论(0)
Oracle数据库的备份方法-2
<DIV>4、热备份方案的实施 <BR>4.1 热备份数据库的前提条件:数据库运行在归档模式 <BR>Oracle数据库的redo日志记录在数据库上进行的所有活动。LGWR后台进程以一种循环方式写这些日志文件,从第一个redo日志到下一个,直到该组的最后一个,然后由从第一个日志写起。 <BR>在非归档模式下,当循环写到最后一个日志文件后,就重写第一个日志。因此,非归档模式下唯一的数据库恢复办法就是使用冷备份。 <BR>在归档模式下,当redo日志满时,一个ARCH后台进程就读取全部redo日志,然后将其写到归档日志。因此,可以使用热备份和点恢复。在归档日志模式下,如果归档日志目的空间已满,数据库活动将暂时停止,只有释放一些空间后,数据库才能继续运行。通常,background_dump_destination将产生一个跟踪文件来显示归档方面的问题。 <BR>Oracle数据库安装默认运行在非归档模式,通过以下步骤可以从非归档模式转换为归档模式: <BR>(1)编辑参数文件init.ora,设置以下参数 <BR># 设置数据库自动归档 <BR>log_archive_start = true <BR># 设置归档日志文件的目录,该目录必须事先已建立,并有大量可利用的空间 <BR>log_archive_dest_1="location=%oracle_base%\ oradata\%oracle_sid%\a……
查看全文
发表于:2008-02-23 ┆
阅读(161)
┆
评论(0)
Oracle数据库的备份方法-1
<DIV>Oracle数据库的备份方法<BR>1、引言 <BR>Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统。比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求。本文主要就用export实用程序导出数据库对象、Oracle冷备份、Oracle热备份这三种最基本的备份方法进行详细的探讨,分析各自的优缺点和适用的场合,并给出自动执行这些备份方案的脚本文件。 <BR>2、三种备份方案的比较 <BR>备份方案 <BR>综述 <BR>优点 <BR>缺点 <BR><BR>冷备份 <BR>冷备份是Oracle最简单的一种备份;执行冷备份前必须关闭数据库;然后使用操作系统实用工具或者第三方工具备份所有相关的数据库文件。 <BR>能简单快速地备份。能简单快速地恢复。执行简单。 <BR>必须关闭数据库。 <BR><BR>不能进行点恢复。 <BR><BR>热备份 <BR>热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档日志模式。适用于24X7不间断运行的关键应用系统。 <BR>备份时数据库……
查看全文
发表于:2008-02-23 ┆
阅读(206)
┆
评论(0)
Oracle sga的一点点优化
<DIV>关于SGA设置的一点总结<BR><BR> <DIV class=t_msgfont id=message618815>本总结不针对特例,仅对服务器只存在OS + ORACLE 为例,如果存在其他应用请酌情考虑<BR>写这个也是因为近来这种重复性的问题发生的太多所导致的<BR><BR>首先不要迷信STS,SG,OCP,EXPERT 等给出的任何建议、内存百分比的说法<BR>基本掌握的原则是, data buffer 通常可以尽可能的大,shared_pool_size 要适度,log_buffer 通常大到几百K到1M就差不多了<BR><BR>设置之前,首先要明确2个问题<BR>1: 除去OS和一些其他开销,能给ORACLE使用的内存有多大<BR>2:oracle是64bit or 32 bit,32bit 通常 SGA有 1.7G 的限制(某些OS的处理或者WINDOWS上有特定设定可以支持到2G以上甚至达到3.7G,本人无这方面经验)<BR><BR>下面是我的windows2000下的oracle :<BR><BR>SQL> select * from v$version;<BR><BR>BANNER<BR>----------------------------------------------------------------<BR>Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production<BR>PL/SQL Release 8.1.7.0.0 - Production<BR>CORE 8.1.7.0.0 Production<B……
查看全文
发表于:2008-02-23 ┆
阅读(186)
┆
评论(0)
调整,优化Oracle 8i
<DIV>Oracle 8i数据库服务器是高度可优化的软件产品,经常性的调整可以优化系统的性能,防止出现数据瓶颈。我们通过调整数据库系统,可以使它达到最佳性能以满足用户的需要。 <BR><BR>下面,笔者将介绍优化和调整Sun SPARC Solaris系统平台上的Oracle 8i数据库服务器的一些相关命令和方法。 <BR><BR>Solaris性能监控命令 <BR>Solaris提供了性能监控命令,用于监控数据库性能和决定数据库的需求。除了为Oracle进程提供统计外,它们还为CPU提供使用统计,为整个系统提供中断、交换、分页和上下文转换功能。监控命令包括: <BR>1.vmstat <BR>vmstat命令报告Solaris上的进程、虚拟内存、磁盘、分页和CPU的活动情况。下面命令将显示系统每5秒钟做的事的概要: <BR>% vmstat 5 <BR><BR>2.sar <BR>sar命令用于监控交换、分页、磁盘和CPU活动。下面命令用于每10秒显示10次分页活动的概要: <BR>$ sar -p 10 10 <BR><BR>3.iostat <BR>iostat命令报告终端和磁盘的活动。该报告显示哪些磁盘是忙的(该信息在平衡I/O负载时有用)。下面命令用于每5秒显示5次终端和磁盘活动: <BR>$ iostat 5 5 <BR><BR>4.swap <BR……
查看全文
发表于:2008-02-23 ┆
阅读(143)
┆
评论(0)
oracle send to mail
<DIV> <TABLE style="TABLE-LAYOUT: fixed"> <TBODY> <TR> <TD> <DIV class=cnt><PRE>CREATE OR REPLACE PROCEDURE PROCSENDEMAIL(P_TXT VARCHAR2, P_SUB VARCHAR2, P_SENDOR VARCHAR2, &……
查看全文
发表于:2008-02-23 ┆
阅读(186)
┆
评论(0)
学习上的还没起步的文档。
<DIV> 今天和一位dba的朋友聊天,谈谈技术上的问题,我还是有待遇提高,文档还是需要多看,多学习,下面是这个朋友给介绍的几个文档,《Concepts》《Administrator's Guide》《Backup and Recovery Advanced User's Guide》《Performance Tuning Guide》。这些都是做DBA必须要看的,看了可以提高自己的理论上的见解。在以后的工作中也是有一定的好处。所以,我决定要把这些文档,一一看完。</DIV> <DIV> </DIV>
查看全文
发表于:2008-02-23 ┆
阅读(137)
┆
评论(0)
怪异的latch free - session allocation事件
<DIV>同样业务的系统,有一个系统十分不正常,速度不如另外一个系统的1/4.客户无法忍受,其实我也无法忍受了,如果照那个速度,我估计要联系工作24小时才可以. <P>没有办法,对系统进行检查.发现在不正常的系统中,产生了严重的latch free等待.当看到这个的时候,我第一反应是sql语句有问题或者产生了热点,因为应用干的活是在一个表中查询,通过索引查询,但是同时有几十个session作同样的事情.仔细检查了sql语句,语句非常简单.</P> <P>select user_id,nvl(substr(os_status,:”SYS_B_0”,:”SYS_B_1”),:”SYS_B_2”),nvl(substr(os_status,:”SYS_B_3”,:”SYS_B_4”),:”SYS_B_5”) from table_name where acc_id = :f1 </P> <P>而执行计划走的索引,也是在acc_id上的索引.</P> <P>经过检查索引和表的状态,发现表基本没有碎片,索引也是被最近被重建过的(后来才发现,问题就出在重建这个索引上,这是后话).</P> <P>分析系统的latch free的小类,发现系统中,排名最高的几种latch free事件如下:</P> <P><SPAN class=caps>LATCH</SPAN># NAME <SPAN class=caps>GETS MISSES SLEEPS</SPAN></P> <P>row cache objects 7309905930 1076355567 24799351</P> <P>shared pool……
查看全文
发表于:2008-02-22 ┆
阅读(140)
┆
评论(0)
sql 處理問題1
<DIV>一个sql从应用中执行,运行很慢很慢. <P>检查那个sql,其实是很简单的一个sql,就是在一个表中(约4kw记录),根据where后的三个条件作一个查询,没有表关联.</P> <P>在plsql中查看该sql的执行计划,在plsql中,该sql的执行计划正常,cost为6,走的是正确的索引.</P> <P>检查索引的状况,没有任何不对的地方,而且在10号表以及索引都被分析过.并且该表数据不会出现任何异动,也就是说,数据量没有大的增,删,改.</P> <P>在sqlplus中explain该sql的执行计划,也正常.</P> <P>让应用发起该应用,在后台捕获该sql的hash_value,然后根据hash_value到v$sql_plan中去查询sql的真实执行计划.还是正常,因为该执行计划非常之简单,就是走了个索引,cost为6.</P> <P>如果将该sql中的绑定变量直接写上常量,在plsql或者sqlplus中执行,速度非常好,但是在应用上,就是很慢,应用的后台log看,就是慢在这个select上.</P> <P>那么,实在没有办法,用dbms_system.set_sql_trace_in_session跟踪该sql到底在作什么,奇怪的问题,就出现了,只要我打开trace,sql执行就很快,trace文件中,没有什么异常,只要我关闭trace,sql立刻执行缓慢.</P> <P>并且,我有两个一模一样的环境,一个在aix 5.3上,一个在hpux11.11上.两个……
查看全文
发表于:2008-02-22 ┆
阅读(168)
┆
评论(0)
kill session
<DIV>先从oracle中作alter system kill session,不会一开始就跑到os中去kill -9 <P>但是有的时候,这个命令作下去以后,有的时候,系统不会提示system altered,而是提示说session marked killed,当提示这个的时候,就要注意了,这种提示出来,一般系统不会立刻释放被kill的session的资源,可能需要很久.</P> <P>那么,这个时候,肯定想跑到os中用kill -9去干活.</P> <P>不过这个时候,由于killed的session的paddr已经变成了一个虚拟的paddr,所以无法在v$process中得到该session在数据库主机的spid,给kill -9带来一些麻烦</P> <P>一般的处理方法是先</P> <P>select p.addr from v$process p where pid <> 1<BR> minus<BR> select s.paddr from v$session s;</P> <P>去获取killed的sessin的真实的paddr,然后去os中kill -9</P> <P>一般情况下,这种方式是能得到真实的paddr的,但是,如果被killed的session锁住了资源不释放,在v$locked_object中反映出来有锁住资源,用上面的方法,是得不到该session的paddr的,这个时候该怎么办?</P> <P>其实这个时候得到paddr的方法更为简单,如果该session有占有锁资源不释放,在session被标记为killed以后,其paddr本身就是真实的,那么……
查看全文
发表于:2008-02-22 ┆
阅读(161)
┆
评论(0)
Linux环境下数据库自动逻辑备份
<DIV> <P style="LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">以我的<A onclick="javascript:tagshow(event, '%B2%E2%CA%D4');" href="javascript:;" target=_self><U><STRONG><FONT color=#800080>测试</FONT></STRONG></U></A>环境为例,此方法主要是限于在本机执行,如果要在其他机器执行需要修改备份脚本。</SPAN></P> <P style="LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">首先建立备份目录:</SPAN></P> <P style="LINE-HEIGHT: 150%"><SPAN lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体"><SPAN></SPAN>[root@founder14 oracle]# mkdir backup</SPAN></P> <P style="LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">给备份目录授权</SPAN></P> <P style="LINE-HEIGHT: 150%"><SPAN lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体"><SPAN></SPAN>[root@founder14 oracle]# chmod +777 backup</SPAN></P> <P style="LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 1……
查看全文
发表于:2008-02-21 ┆
阅读(146)
┆
评论(0)
版权所有 ChinaUnix.net 页面生成时间:0.09494