當前位置:文思屋>學習教育>考研>

阿里巴巴的Oracle筆試題

文思屋 人氣:2.02W

DBA筆試考題
2007年06月27日 星期三 17:59
一:SQL tuning 類
1 列舉幾種表連線方式
等連線、非等連線、自連線、外連線(左、右、全)
2 不借助第三方工具,怎樣檢視sql的執行計劃
I) 使用Explain Plan,查詢PLAN_TABLE;
EXPLAIN   PLAN
SET STATEMENT_ID=’QUERY1′
FOR
SELECT *
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    , spid, status, SUBSTR (ram, 1, 40) prog, inal,_TEXT,
osuser, VALUE / 60 / 100 VALUE
FROM v$session a, v$process b, v$sesstat c
WHERE istic# = 12 AND = AND r =
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影響、對查詢影響、為什麼提高查詢效能)
          索引有B-TREE、BIT、CLUSTER等型別。ORACLE使用了一個複雜的自平衡B-tree結構;
          通常來說,在表上建立恰當的索引,查詢時會改進查詢效能。但在進行插入、刪除、修改時,同時會進行索引的修改,在效能上有一定的影響。
        有索引且查詢條件能使用索引時,資料庫會先度取索引,根據索引內容和查詢條件,查詢出ROWID,再根據ROWID取出需要的資料。由於索引內容通常比全表內容要少很多,因此通過先讀索引,能減少I/O,提高查詢效能。
8 使用索引查詢一定能提高查詢的效能嗎?為什麼
         通常,通過索引查詢資料比全表掃描要快.但是我們也必須注意到它的代價.
         索引需要空間來儲存,也需要定期維護, 每當有記錄在表中增減或索引列被修改時,
          索引本身也會被修改. 這意味著每條記錄的INSERT,DELETE,UPDATE將為此多付出4,5 次的磁碟I/O. 因為索引需要額外的儲存空間和處理,那些不必要的索引反而會使查詢反應時間變慢.
          使用索引查詢不一定能提高查詢效能,索引範圍查詢(INDEX RANGE SCAN)適用於兩種情況:
          基於一個範圍的檢索,一般查詢返回結果集小於表中記錄數的30%宜採用;
          基於非唯一性索引的檢索
9 繫結變數是什麼?繫結變數有什麼優缺點?
          繫結變數是指在SQL語句中使用變數,改變變數的值來改變SQL語句的執行結果。
          優點:使用繫結變數,可以減少SQL語句的解析,能減少資料庫引擎消耗在SQL語句解析上的資源。提高了程式設計效率和可靠性。減少訪問資料庫的次數, 就能實際上減少ORACLE的工作量。
          缺點:經常需要使用動態SQL的寫法,由於引數的不同,可能SQL的執行效率不同;
10 如何穩定(固定)執行計劃

阿里巴巴的Oracle筆試題