
Oracle - 优化/结构
文章平均质量分 57
t0nsha
ocp/rhce/rhcds/rhca oracle dba/ebs dba/ebs dev
展开
-
ORA-13600, QSM-00775, ORA-06512 when running DBMS_ADVISOR
Error DescriptionWhen using DBMS_ADVISOR on a table in SYS or SYSTEM schema, the following errors returned.ORA-13600: error encountered in AdvisorQSM-00794: the statement can not be stored due to a vi转载 2012-03-11 21:24:24 · 1973 阅读 · 0 评论 -
两个对Oracle性能影响很大的io参数
两个对Oracle性能影响很大的io参数 准备给application打patch,结果adpatch卡在"Trying to obtain a lock..."不动了,运行其它sql脚本也非常慢. v$session_wait里有大量的free buffer waits以及一个local write wait和一个db file paralle write等待事件 试着重启数据库,结果sh原创 2014-04-04 02:23:36 · 7502 阅读 · 0 评论 -
Ask Tom 'Chained Rows and Autotrace'
一篇解释的非常好的关于行迁移(row chained)和行连接(row migrated)的文章.Dear Tom,I have a table with 25% chained rows.I am trying to determine the impact of this chaining and rebuild it if needed.To determine, whether翻译 2013-09-12 21:42:38 · 1545 阅读 · 0 评论 -
Oracle - 数据库(database)与实例(instance)的区别
数据库指与Oracle相关的一些文件的集合(包括数据文件, 控制文件, redo等)实例指与Oracle相关的一些进程(SMON, PMON, DBWR等)和共享内存(SGA)的集合.一个数据库可以同时被多个实例挂载和打开.一个实例可以挂载和打开任何数据库, 但是一次只能打开一个数据库.Difference between DB_NAME and Instance_Name(http://askt原创 2013-09-07 13:53:00 · 3405 阅读 · 0 评论 -
db block gets (current gets) VS. consistent gets
当前读(db block gets / current gets)与一致读(consistent gets)统称为逻辑读,逻辑读可能需要物理读把块读到cache中。当前读指读现在已提交了的数据,一般在全表扫描读数据字典、更新、删除时发生。一致读指读发出SELECT的那个时间点SCN的数据,一般在查询(增删改都可能有隐式查询)时发生。db block gets are blocks read in原创 2013-08-21 01:50:04 · 1349 阅读 · 0 评论 -
AUTOTRACE与EXPLAIN PLAN,ANALYZE与DBMS_STATS
AUTOTRACE与EXPLAIN PLAN,ANALYZE与DBMS_STATSSET AUTOTRACE TRACEONLY与EXPLAIN PLAN FORAUTOTRACE可以在SQL执行完后打印出执行计划,EXPLAIN PLAN FOR执行后需要SELECT * FROM TABLE(dbms_xplan.display)才能得出执行计划,但是它不需要真正的去执行SQL.如果某段SQL原创 2013-05-30 22:58:47 · 1693 阅读 · 0 评论 -
高cpu占用sql的诊断流程
高cpu占用sql的诊断流程top 得到高cpu的进程id通过进程id(System Process ID)得到sqlSELECT /*+ ORDERED */ sql_text FROM v$sqltext a WHERE (a.hash_value, a.address) IN ( SELECT DECODE (sql_hash_value,原创 2013-05-24 23:05:17 · 1249 阅读 · 0 评论 -
Oracle Permanent Space Usage Related Queries
Based on Oracle 10g/11g-- show summary permanent tablespace usageSELECT t.tablespace_name ,t.total_perm_mb ,u.used_perm_mb , (t.total_perm_mb - u.used_perm_mb) free_perm_mb原创 2012-09-07 22:31:52 · 1039 阅读 · 0 评论 -
Oracle Temp Space Usage Related Queries
Based on Oracle 10g/11g-- show summary temp tablespace usageSELECT t.tablespace_name ,t.total_temp_mb ,u.used_temp_mb , (t.total_temp_mb - u.used_temp_mb) free_temp_mb FROM (S原创 2012-09-05 17:44:11 · 1323 阅读 · 0 评论 -
Oracle Lock Related Queries
Based on Oracle 10g/11g-- show lock contention-- v$session.ROW_WAIT_OBJ# = dba_objects.OBJECT_ID-- substr('AALha7AALAAApxMAAA',1,6) dbms_rowid.ROWID_OBJECT = dba_objects.DATA_OBJECT_IDSELECT NVL (原创 2012-09-06 17:28:50 · 1051 阅读 · 0 评论 -
Oracle Undo Space Usage Related Queries
-- show summary active undo tablespace usage SELECT ts.tablespace_name active_undo , SUM (f.BYTES) / 1024 / 1024 total_undo_mb , (SELECT SUM (ext.BYTES) / 1024 / 1024 used_undo原创 2012-09-04 17:14:21 · 1241 阅读 · 0 评论 -
试着理解instance recovery时为什么先前滚(roll forward)再回滚(roll backward)
什么是前滚(roll forward)?roll forward是指应用redo log.什么是回滚(roll backward)?roll backward是指应用undo进行rollback.实例恢复时,oracle先找到最近一次的检查点,然后应用online redo日志,重做所有未写到数据文件的数据,包括未提交却已经写到数据文件的脏数据和提交了却还没有写到数据块文件的数据.对于后者,red原创 2012-09-04 18:25:03 · 2580 阅读 · 0 评论 -
Understanding Explain Plan
Understanding Explain Plan Submitted by rleishman on Sun, 2007-02-18 03:31 SQL & PL/SQL Benjamin Disraeli, circa 1870 wrote:Never complai转载 2012-08-24 19:23:19 · 1415 阅读 · 0 评论 -
What's blocking my lock?
If you've ever gotten a phone call from an annoyed user whose transaction just won't go through, or from a developer who can't understand why her application sessions are blocking each other, you know转载 2012-03-17 22:21:49 · 1447 阅读 · 0 评论 -
不完全归纳设置isolation level为transaction level的两点影响
不完全归纳设置isolation level为transaction level的两点影响:1. 在设置了isolation level为transaction level的session执行两次同一个query的中间,即使有在其他session更新并提交了该query相关表的数据,这两次query所查出的结果仍然相同,直到当前session发出commit或rollback完成一个transac原创 2012-03-16 00:12:12 · 1294 阅读 · 0 评论 -
烦请解释一下“驱动表”的概念
关键的是明白执行计划而不在于记什么规则举例,表连接返回一条记录存在两个表,一个 10条记录 ,一个1000万条记录若2表都存在连接字段索引,若以小表为驱动表,则代价: 10* (通过索引在大表查询一条记录的代价) 若以大表为驱动表:1000万 * (通过索引在小表中查询一条记录的代价)通过索引获取一条记录,10rows的表,代价通常在 3 blocks 索引2块,表一块而如果是1000万的表,索引转载 2014-04-22 23:33:55 · 1289 阅读 · 0 评论