有很多種方法可以用來(lái)找出哪些SQL語(yǔ)句需要優(yōu)化,但是很久以來(lái),最簡(jiǎn)單的方法都是分析保存在V$SQL視圖中的緩存的SQL信息。通過(guò)V$SQL視圖,可以確定具有高消耗時(shí)間、CUP和IO讀取的SQL語(yǔ)句。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比臨清網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式臨清網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋臨清地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
1.查看總消耗時(shí)間最多的前10條SQL語(yǔ)句
select *
from (select v.sql_id,
v.child_number,
v.sql_text,
v.elapsed_time,
v.cpu_time,
v.disk_reads,
rank() over(order by v.elapsed_time desc) elapsed_rank
from v$sql v) a
where elapsed_rank = 10;
2.查看CPU消耗時(shí)間最多的前10條SQL語(yǔ)句
select *
from (select v.sql_id,
v.child_number,
v.sql_text,
v.elapsed_time,
v.cpu_time,
v.disk_reads,
rank() over(order by v.cpu_time desc) elapsed_rank
from v$sql v) a
where elapsed_rank = 10;
3.查看消耗磁盤讀取最多的前10條SQL語(yǔ)句
select *
from (select v.sql_id,
v.child_number,
v.sql_text,
v.elapsed_time,
v.cpu_time,
v.disk_reads,
rank() over(order by v.disk_reads desc) elapsed_rank
from v$sql v) a
where elapsed_rank = 10;
希望能幫到您!
通過(guò)配置本地?cái)?shù)據(jù)庫(kù)的tns配置文件實(shí)現(xiàn):
去oracle安裝目錄下oracle\product\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用記事本打開,里邊有遠(yuǎn)程數(shù)據(jù)庫(kù)的tns連接配置串如下
ORCL23 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.23)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL)
)
)
添加好ip、端口和目標(biāo)數(shù)據(jù)庫(kù)的實(shí)例名(SID),然后確保tns名稱(ORCL23)在整個(gè)文檔中唯一,保存后打開數(shù)據(jù)庫(kù)連接工具,輸入遠(yuǎn)程數(shù)據(jù)庫(kù)上的用戶名密碼,選擇數(shù)據(jù)庫(kù)對(duì)象為你配置的連接名就可以了
簡(jiǎn)單點(diǎn)判斷的話,你top或topas觀察下,cpu和磁盤讀的負(fù)載情況。
然后生成一份業(yè)務(wù)高峰時(shí)段的AWR報(bào)告,看看top 5等待事件主要是哪些,是不是跟磁盤讀相關(guān)的等待事件(比如全表掃描)
降低IO最有效的方法就是優(yōu)化sql語(yǔ)句,避免大表全表掃描,根據(jù)awr報(bào)告中sga各個(gè)內(nèi)存組件的使用情況,適當(dāng)調(diào)整buffer cache的值,來(lái)減少磁盤IO
oracle查看執(zhí)行計(jì)劃
你可以在session中set autotrace on,你可以看到統(tǒng)計(jì)信息和執(zhí)行計(jì)劃
也可以使用dbms_xplan包去查看執(zhí)行計(jì)劃。
ORACLE 不會(huì)自動(dòng)建立索引,之所以快是因?yàn)閺膬?nèi)存中讀取比disk IO要快的原因。
LZ的概念理解有誤,我來(lái)舉例說(shuō)明下。
ORACLE data一般緩存在SGA中的data cache中 1.表A有10000條數(shù)據(jù),在0:00時(shí)刻對(duì)其進(jìn)行查詢,則將表A的所有數(shù)據(jù)塊從disk緩存至data cache中。因此第二次查詢時(shí)直接從data cache中獲得速度變快。 2.0:05時(shí)刻 對(duì)表A進(jìn)行更新等操作,20000行。再次對(duì)表A進(jìn)行查詢,之前沒(méi)有變化的數(shù)據(jù)塊仍然直接從data cache中直接獲得。發(fā)生過(guò)變更,或新增的數(shù)據(jù)塊,需要重新從disk讀入data cache中,如果data cache空間已滿,就會(huì)將之前發(fā)生變更的臟數(shù)據(jù)塊及不常使用的數(shù)據(jù)塊清空出data cache,然后緩存新的數(shù)據(jù)塊。 因此整個(gè)過(guò)程中,不會(huì)出現(xiàn)你說(shuō)的只能查到緩存數(shù)據(jù)的現(xiàn)象。分析你遇到的問(wèn)題,很有可能是你用userA 進(jìn)行查詢后發(fā)現(xiàn)表10000行,然后使用userB進(jìn)行更新至20000行,但是userB并沒(méi)有commit。因此userA在查詢時(shí)仍然只能看到10000行。
當(dāng)前題目:oracleio怎么看,oracle查看io
網(wǎng)頁(yè)網(wǎng)址:http://aaarwkj.com/article34/dssigse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、用戶體驗(yàn)、微信公眾號(hào)、微信小程序、網(wǎng)站收錄、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)