一個客戶的11.2的RAC環境,出現了一個節點DOWN掉的問題。這個客戶手工調整了系統的時間,使得兩個節點的系統時間只相差幾秒,而且還設定了11.2的自動時間同步功能。但是到了下午發現一個節點上的執行個體DOWN掉了,而且這時兩個節點的時間相差了一個小時左右。檢查掛掉的節點上的資料庫alert檔案:Mon May 10 15:22:03 2010NOTE: ASMB terminatingErrors in file
2.跨分區訪問,依然是分區表的效能好,因為資料集中在了2個分區中,還是比訪問t1要少訪問資料...SQL> select * from t1 where object_id<4000;已選擇504448行。執行計畫----------------------------------------------------------Plan hash value: 3617692013----------------------------------------------------
外鍵上沒有index操作主表資料時常會引起阻塞和deadlock問題外鍵引起的阻塞:session 1:SQL> create table p(id int primary key ) tablespace users;表已建立。SQL> create table r(id int references p on delete cascade) tablespace users;表已建立。SQL> insert into p values(1);已建立 1 行。SQL>
作用:merge into 解決用B表跟新A表資料,如果A表中沒有,則把B表的資料插入A表;文法:MERGE INTO [your table-name] [rename your table here]USING ( [write your query here] )[rename your query-sql and using just like a table]ON ([conditional expression here] AND […]…)WHEN
and_equal是Oracle支援的一種特定操作,可以將多個單列索引進行合并(Index Merge)輸出查詢結果。同時and_equal可以通過Hints來進行強制,最少指定兩個索引,最多指定5個。以下的執行計畫是常見的and_equal執行方式:SQL> select /*+ and_equal(t1 iu ii) */ username,password from t1 where username='EYGLE' and user_id=58;USERNAME
從一個客戶的真實最佳化案例引申的問題。客戶的一個資料庫需要進行最佳化,不過由於程式開發方沒有介入,因此這次最佳化無法對SQL進行修改。僅對資料庫級的調整一般來說收效不大,不過發現客戶資料庫中個別的SQL存在效能問題,且這個效能問題已經影響到整個資料庫。如果可以將這個SQL最佳化,那麼可以解決目前資料庫的效能問題。幸運的是,這個問題可以通過添加索引來進行最佳化。類比問題SQL如下:SQL> select * from v$version;BANNER---------------------