**:
9.
整合簡單
,無關聯的資料庫訪問
,你可以把它們整合到乙個查詢中
(即使它們之間沒有關係)
例如:select name
from emp
where emp_no = 1234;
select name
from dpt
where dpt_no = 10 ;
select name
from cat
where cat_type = 『rd』;
上面的3個查詢可以被合併成乙個:
select e.name , d.name , c.name
from cat c , dpt d , emp e,dual x
where nvl(『x』,x.dummy) = nvl(『x』,e.rowid(+))
and nvl(『x』,x.dummy) = nvl(『x』,d.rowid(+))
and nvl(『x』,x.dummy) = nvl(『x』,c.rowid(+))
and e.emp_no(+) = 1234
and d.dept_no(+) = 10
and c.cat_type(+) = 『rd』;
(
譯者按:
雖然採取這種方法
,效率得到提高
,但是程式的可讀性大大降低
,所以讀者
還是要權衡之間的利弊
)
10.
刪除重覆記錄
最高效的刪除重覆記錄方法
(因為使用了
rowid)
delete from emp e
where e.rowid > (select min(x.rowid)
from emp x
where x.emp_no = e.emp_no);
11.
用truncate
替代delete
當刪除表中的記錄時
,在通常情況下
,回滾段
(rollback segments )
用來存放可以被恢復的資訊
.如果你沒有
commit
事務,oracle
會將資料恢復到刪除之前的狀態
(準確地說是
恢復到執行刪除命令之前的狀況)
而當運用
truncate時,
回滾段不再存放任何可被恢復的資訊
.當命令執行後
,資料不能被恢復
.因此很少的資源被呼叫
,執行時間也會很短.
ORACLE SQL效能優化系列
1.選用適合的 oracle 優化器 oracle 的優化器共有3種 a.rule 基於規則 b.cost 基於成本 c.choose 選擇性 設定預設的優化器 可以通過對 init.ora 檔案中optimizer mode 引數的各種宣告,如 rule,cost,choose,all rows,...
ORACLE SQL效能優化系列
1.選用適合的oracle優化器 oracle的優化器共有3種 a.rule 基於規則 b.cost 基於成本 c.choose 選擇性 設定預設的優化器,可以通過對init.ora檔案中optimizer mode引數的各種宣告,如rule,cost,choose,all rows,first r...
Oracle SQL效能優化系列
1.選用適合的oracle優化器 oracle的優化器共有3種 a.rule 基於規則 b.cost 基於成本 c.choose 選擇性 設定預設的優化器,可以通過對init.ora檔案中optimizer mode引數的各種宣告,如rule,cost,choose,all rows,first r...