Time of Update: 2017-02-27
雖然上一篇介紹了NATIVE_FULL_OUTER_JOIN和NO_NATIVE_FULL_OUTER_JOIN兩個HINT,但是實際上NATIVE_FULL_OUTER_JOIN並沒有發揮任何的作用,因為Oracle對全外串連的最佳化使得新的執行計畫的代價比原始執行計畫要低,所以Oracle預設就選擇這個執行計畫,因此看不到NATIVE_FULL_OUTER_JOIN提示的效果。SQL> SET AUTOT ONSQL> SELECT T1.ID, T2.ID2 FROM T1
Time of Update: 2017-02-27
Oracle在推出了新的執行計畫的同時,還提供了兩個控制這個執行計畫的提示NATIVE_FULL_OUTER_JOIN和NO_NATIVE_FULL_OUTER_JOIN。這兩個HINT的使用十分簡單,不需要其他的任何參數。下面繼續上一篇文章的例子:SQL> SELECT /*+ NO_NATIVE_FULL_OUTER_JOIN */ T1.ID, T2.ID2 FROM T1 FULL OUTER JOIN T23 ON T1.ID = T2.ID;ID
Time of Update: 2017-02-27
在11.2中,Oracle對於全外串連的執行計畫進行了最佳化。在以前的版本中,全外串連的執行計畫如下:SQL> SELECT * FROM V$VERSION;BANNER----------------------------------------------------------------Oracle Database10gEnterpriseEdition Release10.2.0.3.0 - 64biPL/SQL Release 10.2.0.3.0 -
Time of Update: 2017-02-27
如果使用DBCA建立RAC資料庫,預設情況下會在各個節點上配置REMOTE_LISTENER參數,因此以前測試的LOAD_BALANCE是在REMOTE_LISTENER存在的情況下進行的測試,這裡測試一下去掉REMOTE_LISTENER對LOAD_BALANCE的影響。資料庫環境為10.2.0.4 Rac for Solaris for sparc 64:SQL> SELECT * FROM V$VERSION;BANNER-------------------------------
Time of Update: 2017-02-27
其實談不上是陷阱,只是不注意的話,很容易出現配置錯誤。這一篇介紹LOAD_BALANCE和FAILOVER配合可能導致的錯誤。當服務名同時配置了LOAD_BALANCE和FAILOVER時:TESTRAC =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST =
Time of Update: 2017-02-27
暫存資料表的redo產生要比普通表少的多,但是undo的產生並不比普通表少。通過一個簡單的例子說明:SQL> create global temporary table t_temp2 (id number, name varchar2(30))3 on commit preserve rows;表已建立。SQL> create table t_normal2 (id number, name varchar2(30));表已建立。SQL>
Time of Update: 2017-02-27
RMAN CATALOG資料庫的配置1、catalog database 的功能1)集中存放rman的資料庫(備份的中繼資料),並且可以和target database 的controlfile同步2)存放rman的備份指令碼2、catalog database 的配置1)需要建立一個單獨的database02:43:21 SQL> show parameter nameNAME
Time of Update: 2017-02-27
1)建立指令碼(replace 是修改已經存在的指令碼)RMAN> create script users_bak {2> backup datafile '/u01/app/oracle/oradata/prod/users01.dbf' format '/disk1/rman/prod/users_%s.bak';3> }created script users_bak2)查看指令碼資訊RMAN> print script users_bak;printing
Time of Update: 2017-02-27
Oracle的最佳化器有兩種最佳化方式:基於規則的最佳化方式:Rule-Based Optimization(RBO)基於成本或者統計資訊的最佳化方式(Cost-Based Optimization:CBO)RBO方式:最佳化器在分析SQL語句時,所遵循的是Oracle內部預定的一些規則。比如我們常見的,當一個where子句中的一列有索引時去走索引。CBO方式:CBO是在ORACLE7 引入,但到ORACLE8i 中才成熟。ORACLE 已經聲明在ORACLE9i之後的版本中,RBO將不再支援。
Time of Update: 2017-02-27
Topas命令可以監控系統活動――memory,I/O,paging space,cpu,process。此命令包含在perfagent.tools檔案集裡面。命令使用方法:topas [ -d number_of_monitored_hot_disks ] [ -h ][ -i monitoring_interval_in_seconds ][ -n number_of_monitored_hot_network_interfaces][ -p number_of_monitored_hot_
Time of Update: 2017-02-27
一資料庫版本LEO1@LEO1>select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionPL/SQL Release11.2.0.1.0 - ProductionCORE
Time of Update: 2017-02-27
本次我們主要講解oracle 10053事件和實驗,好多朋友可能對這個事件不是很熟悉,因為在日常營運中用到的不是很多。Oracle 10046和10053都是非官方trace sql的方法,在官方文檔上是找不到相關資料的,但在MOS上可以找到。sql_trace是官方推薦的trace
Time of Update: 2017-02-27
資料庫環境LEO1@LEO1> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionPL/SQL Release 11.2.0.1.0 - ProductionCORE
Time of Update: 2017-02-27
並行:把一個工作分成幾份,分給不同進程同時進行處理。進程層面並發:多個會話同時進行訪問,就是通常所說並發數。會話層面資料庫版本LEO1@LEO1> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -
Time of Update: 2017-02-27
oracle資料庫效能調優最需要重視的也最常遇到的就是SQL執行效率,而反映SQL效率最直觀的工具就是CBO產生的執行計畫,那麼如何讓CBO產生最精準的效率最高的執行計畫成為我們當前需要研究的課題。同一條語句,好的執行計畫能帶來飛一樣的速度,壞的執行計畫讓我們痛苦不堪,下面我們從原理到實踐來把如何產生高效計劃的方法教給大家。一 CBO介紹CBO全稱叫Cost Based
Time of Update: 2017-02-27
oracle執行計畫對我們並不陌生,往往我們在工作中只會在發生效能瓶頸時看一下,沒有想過執行計畫是如何產生的。下面用執行個體來類比資料訪問方式和資料處理方式的演變。1.執行計畫—通過表訪問資料 TABLE ACCESS FULLLEO1@LEO1> create table leo1 as select * from dba_objects; 我們建立一張表leo1Table created.LEO1@LEO1>
Time of Update: 2017-02-27
oracle的分區和索引可以說是它自己的亮點,可能你會說在其他資料庫上也有,嗯是的,但oracle的種類效能便利性可以說是比較人性化的,下面我們通過實驗來闡述它們的特性和功能。1.分別給出一個B-tree索引針對全表掃描效能高和低的例子。索引定義:oracle資料庫中索引就是為了加快資料訪問速度的一種目錄結構B-tree索引特點:(1)二叉樹結構(2)用比較大小方式尋找索引塊(3)適合建立在索引值重複率低的欄位例如
Time of Update: 2017-02-27
作為一個ORACLE DBA,在工作中會經常處理由於字元集產生的一些問題。但是當真正想寫一些這方面的東西時,卻突然又沒有了頭緒。發了半天呆,還是決定用兩個字元集方面的例子作為切入點,倒不失為一個頭緒,說不定在實驗的過程中,問題就會一個接著一個的浮現出來。現在,讓我們切入正題。我用的資料庫是oracle10.2.0.3,資料庫字元集是al32utf8。用戶端就是同一台機器的windows xp.下面是示範的例子:[php]SQL> drop table test purge;Table
Time of Update: 2017-02-27
hints翻譯成中文就是提示,暗示的意思,它在資料庫中作用就是更改SQL語句的執行方式,你可以使用hints強制sql按照你所設定的方式執行sql,一般用來做效能診斷和調優,不建議在開發中使用。1.寫一條SQL,使它通過全表掃描方式的效率優於索引訪問,分別給出各自的執行計畫。LEO1@LEO1> create table leo1 as select * from dba_objects; 建立leo1表Table created.LEO1@LEO1>
Time of Update: 2017-02-27
1.比較sql*loader使用conventional傳統 和direct直接