oracle出现101,oracle常见问题(101-200)
136. 将N秒转换为时分秒格式?
setserveroutondeclareNnumber:= 1000000;
retvarchar2(100);beginret :=trunc(n/3600)|| '小时' ||to_char(to_date(mod(n,3600),'sssss'),'fmmi"分 "ss"秒"') ;
dbms_output.put_line(ret);end;
137.如何查询做比较大的排序的进程?
SELECTb.tablespace, b.segfile#, b.segblk#, b.blocks, a.sid, a.serial#, a.username, a.osuser, a.statusFROMv$session a,v$sort_usage bWHEREa.saddr=b.session_addrORDER BYb.tablespace, b.segfile#, b.segblk#, b.blocks ;
138.如何查询做比较大的排序的进程的SQL语句?
select /*+ ORDERED*/sql_textfromv$sqltext awherea.hash_value=(selectsql_hash_valuefromv$session bwhereb.sid= &sidandb.serial#= &serial)order bypieceasc;
139. 如何查找重复记录?
SELECT * FROMTABLE_NAMEWHEREROWID!=(SELECT MAX(ROWID)FROMTABLE_NAME DWHERETABLE_NAME.COL1=D.COL1ANDTABLE_NAME.COL2=D.COL2);
140.如何删除重复记录?
DELETE FROMTABLE_NAMEWHEREROWID!=(SELECT MAX(ROWID)FROMTABLE_NAME DWHERETABLE_NAME.COL1=D.COL1ANDTABLE_NAME.COL2=D.COL2);
141. 如何快速编译所有视图?
SQL>SPOOL VIEW1.SQL
SQL>SELECT‘ALTER VIEW‘||TNAME||’ COMPILE;’FROMTAB;
SQL>SPOOLOFF然后执行VIEW1.SQL即可。
SQL>@VIEW1.SQL;
142. ORA-01555 SNAPSHOT TOO OLD的解决办法增加MINEXTENTS的值,增加区的大小,设置一个高的OPTIMAL值。
143.事务要求的回滚段空间不够,表现为表空间用满(ORA-01560错误),回滚段扩展到达参数MAXEXTENTS的值(ORA-01628)的解决办法。向回滚段表空间添加文件或使已有的文件变大;增加MAXEXTENTS的值。
144.如何加密ORACLE的存储过程?下列存储过程内容放在AA.SQL文件中
create or replace proceduretestCCB(iin number)asbegindbms_output.put_line('输入参数是'||to_char(i));end;
SQL>wrap iname=a.sql;
PL/SQL Wrapper: Release8.1.7.0.0 -ProductiononTue Nov27 22:26:48 2001Copyright (c) Oracle Corporation1993,2000.AllRights Reserved。
Processing AA.sqltoAA.plb
运行AA.plb
SQL> @AA.plb ;
145. 如何监控事例的等待?
selectevent,sum(decode(wait_Time,0,0,1)) "Prev",sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot"fromv$session_Waitgroup byeventorder by 4;
146.如何回滚段的争用情况?
selectname, waits, gets, waits/gets "Ratio"fromv$rollstat C, v$rollname DwhereC.usn=D.usn;
147. 如何监控表空间的I/O比例?
selectB.tablespace_name name, B.file_name"file", A.phyrds pyr, A.phyblkrd pbr, A.phywrts pyw,A.phyblkwrt pbwfromv$filestat A, dba_data_files BwhereA.file#=B.file_idorder byB.tablespace_name;
148.如何监控文件系统的I/O比例?
selectsubstr(C.file#,1,2) "#", substr(C.name,1,30) "Name", C.status, C.bytes, D.phyrds, D.phywrtsfromv$datafile C, v$filestat DwhereC.file#=D.file#;
149. 如何在某个用户下找所有的索引?
selectuser_indexes.table_name, user_indexes.index_name,uniqueness, column_namefromuser_ind_columns, user_indexeswhereuser_ind_columns.index_name=user_indexes.index_nameanduser_ind_columns.table_name=user_indexes.table_nameorder byuser_indexes.table_type, user_indexes.table_name,
user_indexes.index_name, column_position;
150.如何监控SGA的命中率?
selecta.value+b.value "logical_reads", c.value "phys_reads",round(100 *((a.value+b.value)-c.value)/(a.value+b.value)) "BUFFER HIT RATIO"fromv$sysstat a, v$sysstat b, v$sysstat cwherea.statistic#= 38 andb.statistic#= 39andc.statistic#= 40;
151.如何监控SGA中字典缓冲区的命中率?
selectparameter, gets,Getmisses , getmisses/(gets+getmisses)*100"miss ratio",
(1-(sum(getmisses)/(sum(gets)+sum(getmisses))))*100"Hit ratio"fromv$rowcachewheregets+getmisses<>0group byparameter, gets, getmisses;
152.如何监控SGA中共享缓存区的命中率,应该小于1%?
select sum(pins) "Total Pins",sum(reloads) "Total Reloads",sum(reloads)/sum(pins)*100libcachefromv$librarycache;select sum(pinhits-reloads)/sum(pins) "hit radio",sum(reloads)/sum(pins) "reloadpercent"fromv$librarycache;
153.如何显示所有数据库对象的类别和大小?
select count(name) num_instances ,type ,sum(source_size) source_size ,sum(parsed_size) parsed_size ,sum(code_size) code_size ,sum(error_size) error_size,sum(source_size)+sum(parsed_size)+sum(code_size)+sum(error_size) size_requiredfromdba_object_sizegroup bytypeorder by 2;
154.监控SGA中重做日志缓存区的命中率,应该小于1%
SELECTname, gets, misses, immediate_gets, immediate_misses,
Decode(gets,0,0,misses/gets*100) ratio1,
Decode(immediate_gets+immediate_misses,0,0,
immediate_misses/(immediate_gets+immediate_misses)*100) ratio2FROMv$latchWHEREnameIN('redo allocation','redo copy');
155.监控内存和硬盘的排序比率,最好使它小于.10,增加sort_area_size
SELECTname, valueFROMv$sysstatWHEREnameIN('sorts (memory)','sorts(disk)');
156.如何监控当前数据库谁在运行什么SQL语句?
SELECTosuser, username, sql_textfromv$session a, v$sqltext bwherea.sql_address=b.addressorder byaddress, piece;
157.如何监控字典缓冲区?
SELECT(SUM(PINS-RELOADS))/ SUM(PINS) "LIB CACHE"FROMV$LIBRARYCACHE;SELECT(SUM(GETS-GETMISSES-USAGE-FIXED))/ SUM(GETS) "ROW CACHE"FROMV$ROWCACHE;SELECT SUM(PINS) "EXECUTIONS",SUM(RELOADS) "CACHE MISSESWHILEEXECUTING"FROMV$LIBRARYCACHE;--后者除以前者,此比率小于1%,接近0%为好。SELECT SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET MISSES"FROMV$ROWCACHE
158.监控MTS
selectbusy/(busy+idle) "shared servers busy"fromv$dispatcher;--此值大于0.5时,参数需加大select sum(wait)/sum(totalq) "dispatcher waits"fromv$queuewheretype='dispatcher';select count(*)fromv$dispatcher;selectservers_highwaterfromv$mts;--servers_highwater接近mts_max_servers时,参数需加大
159.如何知道当前用户的ID号?
SQL>SHOW USER;或
SQL>select user from dual;
160.如何查看碎片程度高的表?
SELECTsegment_name table_name ,COUNT(*) extentsFROMdba_segmentsWHEREownerNOT IN('SYS','SYSTEM')GROUP BYsegment_nameHAVING COUNT(*)=(SELECT MAX(COUNT(*) )FROMdba_segmentsGROUP BYsegment_name);
162. 如何知道表在表空间中的存储情况?
selectsegment_name,sum(bytes),count(*) ext_quanfromdba_extentswheretablespace_name='&tablespace_name' andsegment_type='TABLE' group bytablespace_name,segment_name;
163.如何知道索引在表空间中的存储情况?
selectsegment_name,count(*)fromdba_extentswheresegment_type='INDEX' andowner='&owner'group bysegment_name;
164、如何知道使用CPU多的用户session?
--11是cpu used by this sessionselecta.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100valuefromv$session a,v$process b,v$sesstat cwherec.statistic#=11 andc.sid=a.sidanda.paddr=b.addrorder byvaluedesc;
165. 如何知道监听器日志文件?以8I为例$ORACLE_HOME/NETWORK/LOG/LISTENER.LOG
166.如何知道监听器参数文件?以8I为例$ORACLE_HOME/NETWORK/ADMIN/LISTENER.ORA167. 如何知道TNS连接文件?以8I为例$ORACLE_HOME/NETWORK/ADMIN/TNSNAMES.ORA
168.如何知道Sql*Net环境文件?以8I为例$ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA169. 如何知道警告日志文件?以8I为例$ORACLE_HOME/ADMIN/SID/BDUMP/SIDALRT.LOG170. 如何知道基本结构?以8I为例$ORACLE_HOME/RDBMS/ADMIN/STANDARD.SQL171. 如何知道建立数据字典视图?以8I为例$ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL
172.如何知道建立审计用数据字典视图?以8I为例$ORACLE_HOME/RDBMS/ADMIN/CATAUDIT.SQL173. 如何知道建立快照用数据字典视图?以8I为例$ORACLE_HOME/RDBMS/ADMIN/CATSNAP.SQL
SQL语句的优化方法
174. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化。例如:
SELECT /*+ALL+_ROWS*/EMP_NO,EMP_NAM,DAT_INFROMBSEMPMSWHEREEMP_NO='CCBZZP';
175. /*+FIRST_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化。例如:
SELECT /*+FIRST_ROWS*/EMP_NO,EMP_NAM,DAT_INFROMBSEMPMSWHEREEMP_NO='CCBZZP';
176. /*+CHOOSE*/
表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;例如:
SELECT /*+CHOOSE*/EMP_NO,EMP_NAM,DAT_INFROMBSEMPMSWHEREEMP_NO='CCBZZP';
177. /*+RULE*/
表明对语句块选择基于规则的优化方法。例如:
SELECT /*+ RULE*/EMP_NO,EMP_NAM,DAT_INFROMBSEMPMSWHEREEMP_NO='CCBZZP';178. /*+FULL(TABLE)*/
表明对表选择全局扫描的方法。例如:SELECT /*+FULL(A)*/EMP_NO,EMP_NAMFROMBSEMPMS AWHEREEMP_NO='CCBZZP';
179. /*+ROWID(TABLE)*/
提示明确表明对指定表根据ROWID进行访问。例如:SELECT /*+ROWID(BSEMPMS)*/ *FROMBSEMPMSWHEREROWID>='AAAAAAAAAAAAAA'ANDEMP_NO='CCBZZP';
180. /*+CLUSTER(TABLE)*/
提示明确表明对指定表选择簇扫描的访问方法,它只对簇对象有效。例如:
SELECT /*+CLUSTER*/BSEMPMS.EMP_NO,DPT_NOFROMBSEMPMS,BSDPTMSWHEREDPT_NO='TEC304' ANDBSEMPMS.DPT_NO=BSDPTMS.DPT_NO;181. /*+INDEX(TABLE INDEX_NAME)*/
表明对表选择索引的扫描方法。例如:
SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE BSEMPMS*/ FROMBSEMPMSWHERESEX='M';
182. /*+INDEX_ASC(TABLE INDEX_NAME)*/表明对表选择索引升序的扫描方法。例如:
SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS)*/ FROMBSEMPMSWHEREDPT_NO='CCBZZP';
183. /*+INDEX_COMBINE*/
为指定表选择位图访问路经,如果INDEX_COMBINE中没有提供作为参数的索引,将选择出位图索引的布尔组合方式。例如:
SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROMBSEMPMSWHERESAL<5000000 ANDHIREDATE
184. /*+INDEX_JOIN(TABLE INDEX_NAME)*/
提示明确命令优化器使用索引作为访问路径。例如:
SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/SAL,HIREDATEFROMBSEMPMSWHERESAL<60000;
185. /*+INDEX_DESC(TABLE INDEX_NAME)*/表明对表选择索引降序的扫描方法。例如:
SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS)*/ FROMBSEMPMSWHEREDPT_NO='CCBZZP';
186. /*+INDEX_FFS(TABLE INDEX_NAME)*/
对指定的表执行快速全索引扫描,而不是全表扫描的办法。例如:
SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROMBSEMPMSWHEREDPT_NO='TEC305';
187. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/提示明确进行执行规划的选择,将几个单列索引的扫描合起来。例如:
SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROMBSEMPMSWHEREEMP_NO='CCBZZP'ANDDPT_NO='TDC306';
188. /*+USE_CONCAT*/
对查询中的WHERE后面的OR条件进行转换为UNION ALL的组合查询。例如:
SELECT /*+USE_CONCAT*/ * FROMBSEMPMSWHEREDPT_NO='TDC506' ANDSEX='M';
189. /*+NO_EXPAND*/
对于WHERE后面的OR或者IN-LIST的查询语句,NO_EXPAND将阻止其基于优化器对其进行扩展。例如:
SELECT /*+NO_EXPAND*/ * FROMBSEMPMSWHEREDPT_NO='TDC506' ANDSEX='M';
190. /*+NOWRITE*/
禁止对查询块的查询重写操作。
191. /*+REWRITE*/可以将视图作为参数。
192. /*+MERGE(TABLE)*/能够对视图的各个查询进行相应的合并。例如:
SELECT /*+MERGE(V)*/A.EMP_NO,A.EMP_NAM,B.DPT_NOFROMBSEMPMS A (SELET DPT_NO,AVG(SAL)ASAVG_SALFROMBSEMPMS BGROUP BYDPT_NO) VWHEREA.DPT_NO=V.DPT_NOANDA.SAL>V.AVG_SAL;
193. /*+NO_MERGE(TABLE)*/
对于有可合并的视图不再合并。例如:
SELECT /*+NO_MERGE(V)*/A.EMP_NO,A.EMP_NAM,B.DPT_NOFROMBSEMPMS A (SELET DPT_NO,AVG(SAL)ASAVG_SALFROMBSEMPMS BGROUP BYDPT_NO) VWHEREA.DPT_NO=V.DPT_NOANDA.SAL>V.AVG_SAL;
194. /*+ORDERED*/根据表出现在FROM中的顺序,ORDERED使ORACLE依此顺序对其连接。例如:
SELECT /*+ORDERED*/A.COL1,B.COL2,C.COL3FROMTABLE1 A,TABLE2 B,TABLE3 CWHEREA.COL1=B.COL1ANDB.COL1=C.COL1;
195. /*+USE_NL(TABLE)*/
将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表。例如:
SELECT /*+ORDERED USE_NL(BSEMPMS)*/BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAMFROMBSEMPMS,BSDPTMSWHEREBSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
196. /*+USE_MERGE(TABLE)*/将指定的表与其它行源通过合并排序连接方式连接起来。例如:
SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ *FROMBSEMPMS,BSDPTMSWHEREBSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
197. /*+USE_HASH(TABLE)*/将指定的表与其它行源通过哈希连接方式连接起来。例如:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ *FROMBSEMPMS,BSDPTMSWHEREBSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
198. /*+DRIVING_SITE(TABLE)*/
强制与ORACLE所选择的位置不同的表进行查询执行。例如:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROMBSEMPMS,DEPT@BSDPTMS WHEREBSEMPMS.DPT_NO=DEPT.DPT_NO;
199. /*+LEADING(TABLE)*/将指定的表作为连接次序中的首表。
200. /*+CACHE(TABLE)*/当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端例如:
SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS)*/EMP_NAMFROMBSEMPMS;
oracle出现101,oracle常见问题(101-200)相关推荐
- oracle数据库性能awr,常见问题:如何使用AWR报告来诊断数据库性能问题
常见问题:如何使用AWR报告来诊断数据库性能问题 (Doc ID 1523048.1) Last updated on FEBRUARY 03, 2019 适用于: Oracle Database - ...
- Oracle手动建库常见问题
Oracle手动建库常见问题 BLOG文档结构图 前言部分 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 10G和11 ...
- cmd删除oracle监听,oracle数据库监听删除
oracle 10G for linux常用命令 oracle 10G for linux常用命令 首先以Oracle用户登录 1. $/oracle/oracle/app/product/101/b ...
- oracle 18c 转 11g,安装Oracle:Oracle 18c、Oracle 11g
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) yum -y update yum -y upgrade or ...
- Oracle: 三、Oracle的隐藏事务与视图的创建
内容简介 1,Oracle的隐藏事务.2,视图(View)的创建. 技术与环境 操作系统: windows 语言类别: SQL之PL/SQL thankyou: sunshine, 谢谢你的默默付出 ...
- oracle flex cluster,Oracle Flex ASM和Flex集群
Oracle Flex ASM和Flex集群 Oracle RAC 12c 引入了两个新概念: 中心节点: 和以前的版本一样,它们通过专用网络相互连接,并且可以直接访问共享存储.这些节点可以直接访问 ...
- Oracle Study之--Oracle 11g RAC添加节点错误
Oracle Study之--Oracle 11g RAC添加节点错误 系统环境: 操作系统:RedHat EL5 Cluster: Oracle 11gR2 Grid Or ...
- oracle rman 00571,Oracle RMAN传输解决办法
一.新建目录 connect / as sysdba create directory dump as 'f:\dump'; --必须创建此目录 f:\dump drop directory dump ...
- oracle顺序读等待,Oracle Study之--Oracle等待事件(4)
Oracle Study之--Oracle等待事件(4) Db file scattered read这个等待事件在实际生产库中经常可以看到,这是一个用户操作引起的等待事件,当用户发出每次I/O需要读 ...
- oracle rcu 安装,Oracle Fusion MiddlewareⅠ: 数据库和RCU
计划学习下WebCenter,需要搭建环境.计划写几篇文章,以备分享和记录:数据库.RCU.Weblogic.WebCenter Portal.WebCenter Content(UCM).环境配置. ...
最新文章
- object dection资源
- JavaScript对象的创建总结
- 【转】JMeter学习(二十七)Jmeter常见问题
- 02-通过修改映射在本地模拟Eureka集群
- android-pageviewer实现linearlayout的切换
- 【http协议2】 深入理解HTTP协议
- java 栈的输出顺序,栈在Java类库中的顺序表示及实现——Stack
- 微信小程序开发者工具真机调试和预览连接本地服务器
- acrobat linux 下载地址,如何安装从Adobe网站下载的Adobe Acrobat Reader deb软件包?
- 凑个热闹,发布一下Consolas和雅黑的混合字体
- SQL Server2019还原.bak文件为数据库且更改数据库的存放位置
- 前端团队代码规范最佳实践!
- GIF动态图怎么制作
- JDY-31 蓝牙模块使用(HC-06)
- linux cp mv区别,浅谈Linux下mv和cp命令的区别
- 亚坦新能:选择家庭光伏误区,你有过吗?
- matlab布林算法代码,MATLAB量化交易策略源码分享之 布林通道+高低点
- krpano 开场特效 小行星
- 有哪些好用的进销存系统值得推荐?
- 全美欢度的国庆节,我绝对是看了个假烟花
热门文章
- 简述直方图和柱形图的区别_什么是直方图?跟柱状图有什么区别?终于有人讲明白了...
- 目录树算法(毗邻目录模式、预排序遍历树算法)
- P2562kitty猫基因
- 仿天猫商城html网页源码
- flask+dash可视化的一些问题
- 谈谈软件开发项目管理的积分制
- TFT屏幕使用(CUBEMX+SPI)
- 关于手机屏幕的一些知识(2)
- 按键手机Java游戏回顾,绿豆蛙勇闯冒险岛java 老式按键手机青蛙闯关游戏
- Java 实现调度算法 包括 FCFS(FIFO)、优先权排队、循环排队、加权公平排队(WFQ)