2 回答

TA貢獻43條經(jīng)驗 獲得超29個贊
優(yōu)化數(shù)據(jù)庫內(nèi)存
在Oracle共享池中固定應用程序代碼
優(yōu)化數(shù)據(jù)存儲
優(yōu)化數(shù)據(jù)排序的技術
優(yōu)化SQL語句

TA貢獻1條經(jīng)驗 獲得超0個贊
Oracle調(diào)優(yōu)總結 ?
Problem Description:
1.每個表的結構及主鍵索引情況
2.每個表的count(*)記錄是多少
3.對于創(chuàng)建索引的列,索引的類型是什么?count(distinct indexcol)的值是多少?
4.最后一次對表進行分析是在什么時間,分析后,是否又對相關表做過大的操作
5.索引最后一次rebuild,是在什么時間,此后對表的操作類型又是什么狀況?索引中浪費的空間是多少?
6.這些表的存儲情況,表的存儲參數(shù),表空間的類型,存儲參數(shù)等
7.執(zhí)行該SQL語句時,系統(tǒng)等候的資源是什么? Trace SQL語句的執(zhí)行過程
8.另一臺執(zhí)行相似SQL速度很快的機器上的相關表的如上信息是什么?
一:SQL tuning 類
1:列舉幾種表連接方式
? hash join/merge join/nest loop(cluster join)/index join
2:不借助第三方工具,怎樣查看sql的執(zhí)行計劃
set autotrace on
set autotrace traceonly
explain plan set statement_id = &item_id for &sql;
select * from table(dbms_xplan.display);
3:如何使用CBO,CBO與RULE的區(qū)別
? 在optimizer_mode=choose時,如果表有統(tǒng)計信息(分區(qū)表外),優(yōu)化器將選擇CBO,否則選RBO。
? RBO遵循簡單的分級方法學,使用15種級別要點,當接收到查詢,優(yōu)化器將評估使用到的要點數(shù)目,
然后選擇最佳級別(最少的數(shù)量)的執(zhí)行路徑來運行查詢。
CBO嘗試找到最低成本的訪問數(shù)據(jù)的方法,為了最大的吞吐量或最快的初始響應時間,計算使用不同
的執(zhí)行計劃的成本,并選擇成本最低的一個,關于表的數(shù)據(jù)內(nèi)容的統(tǒng)計被用于確定執(zhí)行計劃。
4:如何定位重要(消耗資源多)的SQL
? select sql_text
? from v$sql
where disk_reads > 1000 or (executions > 0 and buffer_gets/executions > 30000);
5:如何跟蹤某個session的SQL
select sid,serial# from v$session where sid = (select sid from v$mystat where rownum = 1);
6:SQL調(diào)整最關注的是什么
? 查看該SQL的response time(db block gets/consistent gets/physical reads/sorts (disk))
7:說說你對索引的認識(索引的結構、對dml影響、為什么提高查詢性能)
? b-tree index/bitmap index/function index/patitional index(local/global)
? 索引通常能提高select/update/delete的性能,會降低insert的速度,
?
8:使用索引查詢一定能提高查詢的性能嗎?為什么
? 索引就是為了提高查詢性能而存在的,
如果在查詢中索引沒有提高性能,
只能說是用錯了索引,或者講是場合不同
9:綁定變量是什么?綁定變量有什么優(yōu)缺點?
? 綁定變量是相對文本變量來講的,所謂文本變量是指在SQL直接書寫查詢條件,
這樣的SQL在不同條件下需要反復解析,綁定變量是指使用變量來代替直接書寫條件,
查詢bind value在運行時傳遞,然后綁定執(zhí)行。
- 2 回答
- 7 關注
- 2128 瀏覽
添加回答
舉報