Oracle9i 应用系统优化[zt]
Oracle9i 应用系统优化[@more@]Oracle9i 应用系统优化1、优化前提应用系统方案制定准确,对应用系统运行环境分析合理、正确,在数据库服务器性能、存储空间、网络带宽等方面的配置能够达到系统运行要求。2、优化目标l 响应时间与吞吐量平衡l 临界资源2.1 响应时间与吞吐量平衡根据应用类型的不同,性能优化的目标不同:在线事务处理系统OLTP)把吞吐量定义为性能指标;决策支持系统(DSS)把响应时间定义为性能指标。响应时间响应时间=服务时间+等待时间系统吞吐量系统吞吐量指在给定的时间内所完成的工作量。有以下两种技术:
Oracle Hint的用法
同事要帮忙tunning 的一个效能比较低的sql 用了三个hints不过效果还是不佳,头疼ing ,翻了很多资料,但愿能搞定[@more@]Oracle Hint的用法 SQL语句优化方法30例在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’;2. /*+FIRST_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.例如
union & union all difrence
一直比较少注意到的一个问题[@more@]UNIONThe UNION command is used to select related information from two tables, much like the JOIN command. However, when using the UNION command all selected columns need to be of the same data type.Note: With UNION, only distinct values are selected.SQL Statement 1 UNION SQL Statement 2Employees_Norway:E_IDE_Name01Hansen, Ola02Svendson, Tove03Svendson, Stephen04Pettersen, KariEmployees_USA:E_IDE_Name01Turner, Sally02Kent, Clark03Svendson, Stephen04Scott, Steph
UPDATE的一个小问题
同事问道的一个问题update table a里面的纪录的一部分资料。今天上班做了一天的好人,几乎全是帮同事做事情,哎![@more@]create table test( test1 VARCHAR2(4), test2 VARCHAR2(1)) );纪录1 AB1C 12 CD2B 13 EF4A 24 AC3C 25 CD8C 3将Test2=1的test1 数字值update 成8错误SQL 报ORA-00927 missing equal signUPDATE TEST SET SUBSTR(TEST1,2,1) ='8' WHERE test2='1'正确的SQLUPDATE YH1016 SET TEST1=SUBSTR(yTEST1,1,2) || '8' || SUBSTR(TEST1,4,1) WHERE TEST2='1'
使用直接模式direct=y导出数据比传统方式快一倍[zt]
虽然现在工作跟这个关系不大了,可偶尔也能用到,所以google了一下。[@more@] 最近发现使用直接导出模式direct=y exp比传统模式导出快很多,而且似乎也不会遇见什么bug.(至今没有遇见过) oracle提供2种模式导出表数据,传统模式CONVENTIONAL PATH和直接模式DIRECT PATH,有direct指定。 CONVENTIONAL PATH EXPORT 比较DIRECT PATH EXPORT ==================================================== 差异 1. Conventional path Export. ------------------------- 传统导出模式使用SQL SELECT语句抽取表数据。将数据
oracle database server 换磁盘
操作系统Linuxt as 4.3.5 Oracle 版本:9.2.0.4因storage 上硬盘有问题,所以需将安装在该硬盘上的datafile 搬到其他硬盘,做法:PS:上班的时候总是被User电话打断,所以没法集中注意力来做,所以今天周末来加班做了。[@more@]1。shutdown Database 2。copy 该硬盘上的Datafile到新硬盘3。startup mount4。alter database rename file '/oradata/test.DBF' to '/oracledata/test.DBF'; 5。recover datafile '/oracledata/test.dbf' ;6。alter database open就OK了。感觉跟windows 上的做法稍微有点差异,就是需要recover一次。
ora-06550 PLS-00553 PL/SQL: Compilation unit analysis terminated
在做一个比较任重道远的事情,结果在过程中总是被其他事情打断,前几天又是被打断了,说是我写的一个报表的查询效能不好,所以要求改善,在Sql/plus 里面执行我的Sql发现效能也就在1秒以内,可是到程序里面就有问题了,所以怀疑是iis server的问题,于是想将程序搬到另一台server也就是后来我碰到标题问题的这台上测试,又因为oracle9i 的odbc有问题,所以将这台server上的9i client删除装了oracle817测试完了后,发现我要做的任重道远的事情的东西不能用了,select 的时候总是提示:ora-06550 PLS-00553 PL/SQL: Compilation unit analysi
ORA-04031 [转www.eygle.com]
一个01年的系统的db出现的问题ORA-00604: error occurred at recursive SQL level 2ORA-04031: unable to allocate 4200 bytes of shared memory ("shared pool","TRIGGER$","sga heap","state objects")ORA-00604: error occurred at recursive SQL level 2ORA-04031: unable to allocate 4200 bytes所以Oracle 版本也就是8i了[@more@]数据库出现问题,连接上去一看,原来又是ORA-04031:[oracle@statdata bdump]$ sqlplus "/ as sysdba"SQL*Plus: Release 8.1.7.0.0 - Production on 星
PGA_AGGREGATE_TARGET参数[转eygle]
PGA_AGGREGATE_TARGET参数的变更[@more@]PGA_AGGREGATE_TARGET参数的变更2007-04-10 10:45从Oracle9i开始,Oracle引入了自动PGA管理的新特型,PGA_AGGREGATE_TARGET参数用于控制PGA的总体期望目标:$ sqlplus "/ as sysdba"SQL*Plus: Release 9.2.0.4.0 - Production on Thu Apr 6 16:40:13 2006Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit ProductionWith the Partitioning optionJServer Release 9.2.0.4.0 - ProductionSQL>
修改oracle9i的配置文件spfile ORA-02097
碰到类似的问题:我找到资料,spfile是可以直接由alter system修改,并直接保存但是我在修改时提示内存不足,但我机器的内存还用不到20%,请问如何解决?SQL>; alter system set shared_pool_size=64000000;alter system set shared_pool_size=64000000*ERROR 位于第 1 行:ORA-02097: 无法修改参数,因为指定的值无效ORA-04033: 没有足够的内存来增加池的容量解决办法:问题已经解决了,要指定scope=spfile,并重启数据库[@more@]
linux + oracle
俺启动安装oracle安装界面时出下如下信息,为什么???$ ./runInstaller$ Initializing Java Virtual Machine from /tmp/OraInstall2003-09-25_01-58-20PM/jre/bin/java. Please wait...Xlib: connection to ":0.0" refused by serverXlib: No protocol specified Exception in thread "main" java.lang.InternalError: Can't connect to X11 windowserver using ':0.0' as the value of the DISPLAY variable. at sun.awt.
oracle-快速删除重复的记录
鬱悶的很!DBA要建個PK建不起來就讓我來做,理由是:要處理的Table是我用的系統用到的, 甚麼邏輯哦,在想生產線的人天天輸資料到數據庫,那是不是也要找他們維護相關的Table,有點不爽,可還是做了,做完後告訴DBA,一聲謝謝都沒有......下面是參考過的文檔[@more@]Select *, count(*) as 重複次數from tablegroup by A,B,C,Dhaving count(*)>1表T结构如下 COL1 中有重复记录(COL1,COL2为主键),如何删除 1、有少数重复记录(在col1,col2上有索引比较好) DELETE T WHERE (COL1,COL2) IN (SELECT COL1,COL2 FROM
ORA-01114 ORA-03114
很久沒碰oracle了,連metalink登陸方式變了都不知道,唉.....在做一個系統的時候碰到一個小錯誤,google不到好的結果就去,metalink了一把後連到DB看了一下的確是TEMP tablespace空間不夠了,暈,增大後繼續做事情了,具體見下[@more@]Subject: ORA-01114 and ORA-27072 During Migration Doc ID: Note:152641.1Type: PROBLEM Last Revision Date: 05-JUN-2002Status: PUBLISHED fact: Oracle Server - Enterprise Edition 8.1 fact: HP 9000 Series HP-UX symptom: Database Migration Fails symptom: Can not write data into datafile
ORA-01034 错误的解决办法
睡眠不足,有點累,8點上班8:07分就接到電話一個系統不能用,檢查原因為一個DB因上面錯誤提示而沒有啟動,終端登陸那台Server看時發現DBA Satadiu都沒有裝,使我不得不想起裝這台Server的人來,當時防我象防僖粯拥
Oradim工具的用法
一個經常用的Oracle工具,每次只是用用也沒有總結,今天在幫同事找資料的時候發現的一個總結所以貼出來了...[@more@]软件环境: 1、数据库:Oracle 8i R3 (8.1.7) for NT 企业版实现方法: · Oradim工具的用法?· 创建例程:· -NEW -SID sid | -SRVC 服务 [-INTPWD 口令] [-MAXUSERS 数量] [-STARTMODE a|m] [-PFILE 文件] [-TIMEOUT 秒]· · 编辑例程:· -EDIT -SID sid [-NEWSID sid] [-INTPWD 口
一個問題處理紀錄
幫同事做一個複製的DB,覺得是個簡單的動作,應該很快搞定了,結果因為環境變數問題而出現Error 6 initializing SQL*Plus錯誤提示,去metalink上去找到的很有用的資源,估計以後也不會碰到這種問題了,但是還是貼出來...[@more@]Problem Description:==================== You have multiple ORACLE_HOMEs, one being Oracle8i, installed on WindowsNT 4.0. While using Oracle command line utilities and/or applications you are experiencing errors similar to 'Message XXX not found; No message for product...'.Here are a
一个高人写的oracle资料[转载]
太棒了![@more@]我们从一个用户请求开始讲,ORACLE的完整的工作机制是怎样的,首先一个用户进程发出一个连接请求,如果使用的是主机命名或者是本地服务命中的主机名使用的是机器名(非IP地址),那么这个请求都会通过DNS服务器或HOST文件的服务名解析然后传送到ORACLE监听进程,监听进程接收到用户请求后会采取两种方式来处理这个用户请求,下面我们分专用服务器和共享服务器分别采用这两种方式时的情况来讲: 专用服务器模式下:一种方式是监听进程接收到用户进程请求后,产生一个新的专用服务器进程,并且将对用户进程的所有控制信息传给此
理解Oracle9i中的监听动态注册
轉yaanzy 的東西[@more@]在Oracle9i中,使用命令lsnrctl status可以看到如下例子: Service "lrdb" has 2 instance(s). Instance "lrdb", status UNKNOWN, has 1 handler(s) for this service... Instance "lrdb", status READY, has 1 handler(s) for this service... 这是Oracle9i监听器行为的不同之处的第一个线索,因为Instance "lrdb"出现了两次。出现额外条目是因为, 数据库在启动时通过一个被称为动态注册的进程在监听器中注册信息。相应地,如果数据库通过listener.ora 文件中的信息在监听器中注册数据库着称为静态
drop undo and recreate
drop undo and recreate[@more@]现在他拥有一个冷备份。拥有冷备份,那么我们知道这个操作是很简单的,也不用隐含参数:C:Documents and Settingsgqgai>sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.6.0 - Production on Fri Mar 4 20:55:59 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.6.0 - Production
truncate,delete,drop的异同点
做個紀錄[@more@](truncate,delete,drop的异同点 注意:这里说的delete是指不带where子句的delete语句 相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态. 2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发. truncate,drop是ddl, 操作立即生效,原数据不