阿里巴巴公司2010年DBA筆試題
筆試, DBA, 阿里巴巴
注:以下題目,可根據自己情況挑選題目作答,不必全部作答.您也可以就相關問題直接找負責面試人員面述而不筆答
一. SQL tuning 類
1:列舉幾種表連線方式
hash join/merge join/nest loop(cluster join)/index join
複製程式碼
2:不借助第三方工具,怎樣檢視sql的執行計劃
set autot on
explain plan set statement_id = item_id for &sql;
select * from table(dbms_lay);
或者:
SQL>EXPLAIN PLAN FOR SELECT * FROM EMP;
SQL>SELECT plan_table_output FROM TABLE(DBMS_LAY('PLAN_TABLE'));
複製程式碼
3:如何使用CBO,CBO與RULE的區別
Rule Based Optimizer(RBO):基於規則
Cost Based Optimizer (CBO):基於成本,或者講統計資訊。
在optimizer_mode=choose時,如果表有統計資訊(分割槽表外),優化器將選擇CBO,否則選RBO。RBO遵循簡單的分級方法學,使用15種級別要點,當接收到查詢,優化器將評估使用到的要點數目, 然後選擇最佳級別(最少的數量)的執行路徑來執行查詢。
CBO嘗試找到最低成本的訪問資料的方法,為了最大的吞吐量或最快的初始響應時間,計算使用不同的執行計劃的成本,並選擇成本最低的一個,關於表的資料內容的統計被用於確定執行計劃。
4:如何定位重要(消耗資源多)的SQL
select sql_text from v$sql where disk_reads > 1000 or (executions > 0 and buffer_gets/executions > 30000);
複製程式碼
5:如何跟蹤某個session的SQL
exec dbms__sql_trace_in_session(sid,serial#,sql_trace);
select sid,serial# from v$session where sid = (select sid from v$mystat where rownum = 1);
exec dbms__ev(sid,&serial#,&event_10046,&level_12,'');
複製程式碼
6:SQL調整最關注的是什麼
檢視該SQL的response time(db block gets/consistent gets/physical reads/sorts (disk))