ORACLE DBA面試題集

2021-08-22 19:52:54 字數 2660 閱讀 6744

一:sql tuning 類

1 列舉幾種表連線方式

等連線、非等連線、自連線、外連線(左、右、全)

2 不借助第三方工具,怎樣檢視sql的執行計畫

i) 使用explain plan,查詢plan_table;

explain   plan

set statement_id='query1'

forselect *

from a

where aa=1;

select    operation, options, object_name, object_type, id, parent_id

from plan_table

where statement_id = 'query1'

order by id;

ii)sqlplus中的set trace 即可看到execution plan statistics

set autotrace on;

3:如何使用cbo,cbo與rule的區別

if 初始化引數 optimizer_mode = choose then   --(8i default)

if 做過錶分析

then 優化器 optimizer=cbo(cost);           /*高效*/

else

優化器 optimizer=rbo(rule);                /*高效*/

end if;

end if;

區別:rbo根據規則選擇最佳執行路徑來執行查詢。

cbo根據表統計找到最低成本的訪問資料的方法確定執行計畫。

使用cbo需要注意:

i)   需要經常對錶進行analyze命令進行分析統計;

ii) 需要穩定執行計畫;

iii)需要使用提示(hint);

使用rule需要注意:

i)   選擇最有效率的表名順序

ii) 優化sql的寫法;

4 如何定位重要(消耗資源多)的sql

使用cpu多的使用者session

select    a.sid, spid, status, substr (a.program, 1, 40) prog, a.terminal,a.sql_text,

osuser, value / 60 / 100 value

from v$session a, v$process b, v$sesstat c

where c.statistic# = 12 and c.sid = a.sid and a.paddr = b.addr

order by value desc;

5 如何跟蹤某個session的sql

利用trace 跟蹤

alter session set sqltrace on;

column sql format a200;

select    machine, sql_text sql

from v$sqltext a, v$session b

where address = sql_address

and machine = '&a'

order by hash_value, piece;

6 sql調整最關注的是什麼

檢查系統的i/o問題

sar-d能檢查整個系統的iostat(io statistics)

7 說說你對索引的認識(索引的結構、對dml影響、對查詢影響、為什麼提高查詢效能)

l          索引有b-tree、bit、cluster等型別。oracle使用了乙個複雜的自平衡b-tree結構;

l          通常來說,在表上建立恰當的索引,查詢時會改進查詢效能。但在進行插入、刪除、修改時,同時會進行索引的修改,在效能上有一定的影響。

l          有索引且查詢條件能使用索引時,資料庫會先度取索引,根據索引內容和查詢條件,查詢出rowid,再根據rowid取出需要的資料。由於索引內容通常比全表內容要少很多,因此通過先讀索引,能減少i/o,提高查詢效能。

8 使用索引查詢一定能提高查詢的效能嗎?為什麼

l          通常,通過索引查詢資料比全表掃瞄要快.但是我們也必須注意到它的代價.

n          索引需要空間來儲存,也需要定期維護, 每當有記錄在表中增減或索引列被修改時,

n          索引本身也會被修改. 這意味著每條記錄的insert,delete,update將為此多付出4,5 次的磁碟i/o. 因為索引需要額外的儲存空間和處理,那些不必要的索引反而會使查詢反應時間變慢.

l          使用索引查詢不一定能提高查詢效能,索引範圍查詢(index range scan)適用於兩種情況:

n          基於乙個範圍的檢索,一般查詢返回結果集小於表中記錄數的30%宜採用;

n          基於非唯一性索引的檢索

9 繫結變數是什麼?繫結變數有什麼優缺點?

l          繫結變數是指在sql語句中使用變數,改變變數的值來改變sql語句的執行結果。

l          優點:使用繫結變數,可以減少sql語句的解析,能減少資料庫引擎消耗在sql語句解析上的資源。提高了程式設計效率和可靠性。減少訪問資料庫的次數, 就能實際上減少oracle的工作量。

l          缺點:經常需要使用動態sql的寫法,由於引數的不同,可能sql的執行效率不同;

求職點評 Oracle DBA面試題

it工作市場是如此的緊張,每個可獲得的職位都有一堆人在申請。nxdyeen nahata為oracle e business suite的資料庫管理員申請者提供了以下一些面試時的技術問題,它可以幫助申請者們快速脫穎而出。問題1.解釋冷備份和熱備份的不同點以及各自的優點 解答 熱備份針對歸檔模式的資料...

面試題集 redis

1.redis常用的五種資料型別 1.string 字串 string是簡單的 key value 鍵值對,value 不僅可以是 string,也可以是數字。它是redis最基本的資料型別,乙個redis中字串value最多可以是512m。2.hash 雜湊 redis hash 是乙個鍵值對集合...

oracle面試題集

oracle 面試問題 技術篇 1.解釋冷備份和熱備份的不同點以及各自的優點 解答 熱備份針對歸檔模式的資料庫,在資料庫仍舊處於工作狀態時進行備份。而冷備份指在資料庫關閉後,進行備份,適用於所有模式的資料庫。熱備份的優點在於當備份時,資料庫仍舊可以被使用並且可以將資料庫恢復到任意乙個時間點。冷備份的...