10g,11g sql auto tuning 测试
DBMS_SQLTUNE包的使用[@more@]11gselectDBMS_SQLTUNE.REPORT_SQL_MONITOR(session_id=>sys_context('userenv','sid'),report_level=>'ALL') as reportfrom dual;10gSELECT a.status,c.piece,c.sql_textFROM v$session a,v$sqltext c WHERE a.sql_address=c.address(+)and a.audsid=userenv('sessionid') ORDER BY c.piece;SELECT a.status,c.sql_text,c.sql_idFROM v$session a,v$sql c WHERE a.sql_address=c.address(+)and a.sid=749 ORDER BY c.sql_id;SELECT c.*FROM V$SESSION_WAIT_HISTORY c WHERE c.sid=userenv('sid');gran
ASK_tom 文章3 查看当前用户的SID等v$session信息 zt
方法有三个1。select * from v$session where audsid=userenv('sessionid');2。SELECT SYS_CONTEXT ('USERENV', 'SESSION_USER') FROM DUAL;3。select * from v$session where sid = ( select sid from v$mystat where rownum=1);[@more@]第一 和第三个都是使用过, 第2个我还真的第一次见过!记住了!!!!方法(一) 使用 userenv 函数select sid,audsid from v$session where audsid=userenv('sessionid');参数可以是如下!CLIENT_INFOCLIENT_INFO returns up to 64 bytes of user session information that can be stored by an appl
Performance Tools Quick Reference Guide
metalink:438452.1[@more@]Subject:Performance Tools Quick Reference Guide Doc ID:438452.1Type: BULLETIN Modified Date: 03-NOV-2008Status: PUBLISHED Performance ToolsQuick Reference GuideJuly 2007ContentsIntroductionQuery TuningEnterprise Manager (SQL Tuning Advisor)AWR SQL ReportSQLTXPLAINTRCANLZRPL/SQ_ ProfilerLTOM (Session Trace Collector)OPDGOS DataOS_WatcherDatabase TuningEnterprise Manager ADDMADDM ReportSTATSPACKAWR ReportOPDGHang, Locking, and Transient IssuesASH ReportLTOM (Hang Detecto
hints提示总结 zt
http://space.itpub.net/77406/viewspace-510300 http://download.oracle.com/docs/cd/B12037_01/server.101/b10752/hintsref.htm#6174[@more@]/*+ ALL_ROWS */表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.SELECT /*+ ALL_ROWS */ employee_id, last_name, salary, job_idFROM employees WHERE employee_id = 192;/*+ APPEND */直接插入到表的最后,可以提高速度.insert /*+append*/ into test1 select * from test4 ; insert /*+append */ into emp nologging/*+ CACHE */当进行全表扫描时,CACHE提示能够将表的
怎样获取发生错误的会话信息 zt
http://www.laoxiong.net/how_to_get_session_occured_error.html[@more@]某些Oracle错误,并不是总是伴随着产生trace文件,这些错误,对Oracle来说并不是严重的错误,比如像ORA-01555这样的错误。我们可以设置一个事件,在发生错误时,产生一个Trace文件,事件通常使用下面的命令格式:view plaincopy to clipboardprint?alter system set events '<error_number> trace name errorstack level <level>'; alter session set events '<error_number> trace name errorstack level <level>'; alter system
一个老外高手的Favorite Metalink Articles
有点老,文章是2006年写的[@more@] When you answer questions in public forums, you typically end up either the same question many times or pointing the poster to a particular slice of the documentation or a Metalink document. Some of the more frequently suggested documents and tools I use from Metalink:Why is my index not used?ORA-600/7445 Lookup FacilityBackup & Recovery FAQRMAN FAQSemaphors & Shared Memory ExplainedShared MemoryKernal Parameters and how they relate to OracleW
大型网站架构演变和知识体系 ZT
http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html[@more@]之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中 将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行业的同学一点初步的概念,:),文中的不对之处也
关于insert /*+ append*/ 各种insert插入速度比较
http://hi.baidu.com/dba_james/blog/item/6909ec2b7e0a742ad52af128.html[@more@]SQL> select count(*) from t;COUNT(*)----------5442048****************************SQL> alter table t1 nologging;SQL> insert /*+append*/ into t12 select * from t;5442048 rows created.Elapsed: 00:00:55.73****************************SQL> create table t1 nologging parallel(degree 2) as select * from t;Table created.Elapsed: 00:00:56.79********************************SQL> insert /*+APPEND */ into t12 select /*+
利用NO_MERGE解决数据字典视图访问低效 ZT
=========================================================== 作者: yangtingkun(http://yangtingkun.itpub.net)发表于: 2009.06.04 21:04分类: ORACLE 出处: http://yangtingkun.itpub.net/post/468/485443--------------------------------------------------------------- [@more@]数据库的数据字典视图的访问一般都比较迅速,因为Oracle已经做了专门的优化工作,但是有些时候,几个数据字典进行关联的时候,CBO就没有那么智能了,有时候会给出一些效率很低的执行计划。比如在尝试构造一个大表的时候,想要构造DBA_OBJECTS和另一张数
一次更新操作的优化 zt
driving site的使用及游标循环和单句update性能对比http://space.itpub.net/4227/viewspace-196034[@more@]
SQL、Linux 脚本与 Ruby 之比较 ZT
http://oracle.chinaitlab.com/PLSQL/755199_3.html[@more@]针对 Linux 的 Oracle 数据库版本在 1998 年发布,自那以后,陆续推出了可以在 Linux 上使用的其他 Oracle 应用产品和中间件。随着 Oracle 坚不可摧 Linux 支持计划的实行,许多组织将他们的 Oracle 安装移植到了 Linux 平台。这些变化导致越来越多的 DBA 需要调查资源(如脚本),以便管理在 Linux 上运行的服务器。 在前面的文章中,我说过,系统管理员与 DBA 之间在职责方面存在一个传统的差异,但实际情况中,这个差异并不明显。公司会雇佣一些可以解决数据库级以及操作
SELECT FOR UPDATE SKIP LOCKED --- 一个未公开但十分有用的特性 zt
http://space.itpub.net/9036/viewspace-473[@more@]SELECT FOR UPDATE SKIP LOCKED选项是ORACLE的一个未公开的特性,它的含义是SELECT时跳过被锁的记录。考虑下面的例子:会话1:SQL> select * from sex_dict ;SERIAL_NOS SEX_INPUT_CO---------- - ---- --------1 1男 N9 0未知 WZ2 2女 N4 9未定 WDSQL> select * from sex_dict where serial_no = 1 for update ;SERIAL_NOS SEX_INPUT_CO---------- - ---- --------1 1男 N会话2:查询并锁住serial_no in (1,2)的记录SQL> select * from sex_dict where serial_no in ( 1, 2)
整型序号产生器 zt
原文地址:http://www.sqlsnippets.com/en/topic-11814.html[@more@]有的时候。你必须创建连续的整数。例如假设你有如下的数据:select * from t ;DAY_OF_WEEK VAL----------- ----------1 1003 3004 4005 500你想如下输出:DAY_OF_WEEK VAL----------- ----------01 10023 3004 4005 5006如果你有个表。其数据为0到6,那么你可以写如下的查询:selectday_of_week,t.valfromdays_of_the_week dleft outer join t using ( day_of_week )order byday_of_week;DAY_OF_WEEK VAL----------- ----------01 10023 3004 4005 5006 如果你有大量这样
WMSYS.WM_CONCAT 函數的用法 ZT
WMSYS.WM_CONCAT 函數的用法[@more@]SQL> select version from v$instance;VERSION-----------------10.2.0.1.0SQL> SQL> create table IDTABLE2 (3 id number,4 val varchar2(20)5 )6 ;Table createdSQL> SQL> insert into IDTABLE (ID, VAL)2 values (10, 'abc');1 row insertedSQL> insert into IDTABLE (ID, VAL)2 values (10, 'abc');1 row insertedSQL> insert into IDTABLE (ID, VAL)2 values (10, 'def');1 row insertedSQL> insert into IDTABLE (ID, VAL)2 values (10, 'def');1 row insertedSQL> i
查找没有使用绑定变量的sql zt
http://www.itpub.net/335137.html[@more@]1. Jametong减产前40个字符相同, 有多于5个不同sql版本的sql语句^_^select substr(sqltext,1,40) sql_text,count(*)from v$sqlgroup by substr(sqltext,1,40)having count(*) >= 5;2. husthxd定位应该使用绑定变量的sql语句 SELECT substr(sql_text,1,40) "SQL", count(*) , sum(executions) "TotExecs" FROM v$sqlarea WHERE executions < 5 GROUP BY substr(sql_text,1,40) HAVING count(*) > 30 ORDER BY 2 / 40表示sql语句的前40个字符是一样的,5表示执行次数
Oracle 10g第2版新特性之性能特性 zt
http://space.itpub.net/47598/viewspace-330872[@more@]挂起但未瘫痪:附连内存的 SGA 查询 假设您使用 Oracle 企业管理器诊断和解决性能问题。一天,出现了一个棘手的问题:一个设计糟糕的应用程序引起了严重的库高速缓存锁定问题,并且数据库呈现挂起状态。您必须快速确定导致该问题发生的会话,并快速终止这些会话。 您可以启动 Oracle 企业管理器来诊断此问题。且慢!如果整个数据库充满了挂起的会话,那么 Oracle 企业管理器中的查询是否也会挂起? 如果使用 Oracle 数据库 10g 第 2 版,则答案是否定的。正如我在第 2 部分
Oracle中查看已执行sql的执行计划
DBMS_XPLAN.DISPLAY_CURSOR 介绍[@more@]有时候我们可能会希望查看一条已经执行过的sql的执行计划,常用的方式有两种:a,set autotrace后再重新执行一遍,不过重新执行可能会浪费时间,而且有些语句也不允许(例如修改操作的语句),或者查询v$sql_plan视图,但v$视图的可读性又不是那么好,这里提供一个新方式,通过dbms_xplan.display_cursor来获取执行过的sql的执行计划。首先看看该函数的语法:DBMS_XPLAN.DISPLAY_CURSOR(sql_id IN VARCHAR2 DEFAULT NULL,child_number IN NUMBER DEFAULT NULL,format IN VARCHAR2 DEFAULT 'TYPICAL');
Oracle常用dump命令,备查。
已经根据功能分类[@more@]一.Memory Dumps1).Global AreaALTER SESSION SET EVENTS ‘immediate trace name global_area level n’;1 包含PGA2 包含SGA4 包含UGA8 包含indrect memory2).Library CacheALTER SESSION SET EVENTS ‘immediate trace name library_cache level n’;1 library cache统计信息2 包含hash table histogram3 包含object handle4 包含object结构(Heap 0)3).Row CacheALTER SESSION SET EVENTS ‘immediate trace name row_cache level n’;1 row cache统计信息2 包含hash table histogram8 包含object结构4).Buff
绑定变量、BIND PEEKING、histogram(柱状图)的使用(zt)
http://space.itpub.net/756652/viewspace-470127[@more@]在我们进行对系统进行优化的时候,我们希望在数据中执行的语句尽量的少出现hard parse,尽量使用绑定变量,可以减少分析,节约共享池的空间,减少CPU的使用,所以对于系统中未使用的绑定语句通常告诉开发人员尽量改成使用绑定变量,当where 条件上的字段分布均匀的时候,绑定变量可以达到比较好的效果, 但当该字段数据分布倾斜严重时,并在该字段上收集了histogram信息时会出现什么情况呢?下面将一一测试。 一. create table testtb, 并插入98304条值为(1,’aaa’),3条值为(2,’b
10g新特性——回滚监视
作者: sunwgneuqsoft(http://sunwgneuqsoft.itpub.net)发表于: 2008.03.10 14:46分类: oracle相关 出处: http://sunwgneuqsoft.itpub.net/post/34741/456891[@more@]大家应该都有等女朋友的经历吧。想想下面两种情况哪种会更让你着急,一是知道她20分钟后肯定到,二是不确定到底她会什么时候来(可能5分钟,也可能50分钟)。我想对大部分人来说第二种会更让人发狂。在oracle的使用过程中,大家也一定会有下面的经历,先前执行了一个错误的大规模操作,幸好没有提交,现在需要做的回滚。等发出了rollback的命令后,迎接我们的是不可预知的等