最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
oracle邏輯讀怎么看,oracle如何讀

如何查詢Oracle用戶操作日志

1 查看值得懷疑的SQL

成都創(chuàng)新互聯(lián)公司長期為數(shù)千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為烏蘭企業(yè)提供專業(yè)的網(wǎng)站制作、做網(wǎng)站,烏蘭網(wǎng)站改版等技術服務。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

select substr(to_char(s.pct,'99.00'),2)||'%'load,

s.executions executes,

p.sql_text

from(select address,

disk_reads,

executions,

pct,

rank() over(order by disk_reads desc) ranking

from(select address,

disk_reads,

executions,

100*ratio_to_report(disk_reads) over() pct

from sys.v_$sql

where command_type!=47)

where disk_reads50*executions) s,

sys.v_$sqltext p

where s.ranking=5

and p.address=s.address

order by 1, s.address, p.piece;

2 查看消耗內(nèi)存多的sql

select b.username ,a.buffer_gets ,a.executions,

a.disk_reads/decode(a.executions,0,1,a.executions),a.sql_text SQL

from v$sqlarea a,dba_users b

where a.parsing_user_id = b.user_id

and a.disk_reads 10000

order by disk_reads desc;

3 查看邏輯讀多的SQL

select*

from(select buffer_gets, sql_text

from v$sqlarea

where buffer_gets500000

order by buffer_gets desc)

where rownum=30;

4 查看執(zhí)行次數(shù)多的SQL

select sql_text, executions

from(select sql_text, executions from v$sqlarea order by executions desc)

where rownum81;

5 查看讀硬盤多的SQL

select sql_text, disk_reads

from(select sql_text, disk_reads from v$sqlarea order by disk_reads desc)

where rownum21;

6 查看排序多的SQL

select sql_text, sorts

from(select sql_text, sorts from v$sqlarea order by sorts desc)

where rownum21;

7 分析的次數(shù)太多,執(zhí)行的次數(shù)太少,要用綁變量的方法來寫sql

set pagesize 600;

set linesize 120;

select substr(sql_text,1,80) "sql",count(*),sum(executions) "totexecs"

from v$sqlarea

where executions5

group by substr(sql_text,1,80)

having count(*)30

order by 2;

8 游標的觀察

set pages 300;

select sum(a.value), b.name

from v$sesstat a, v$statname b

where a.statistic#=b.statistic#

and b.name='opened cursors current'

group by b.name;

select count(0) from v$open_cursor;

select user_name, sql_text,count(0)

from v$open_cursor

group by user_name, sql_text

having count(0)30;

9 查看當前用戶username執(zhí)行的SQL

select sql_text

from v$sqltext_with_newlines

where(hash_value, address) in

(select sql_hash_value, sql_address

from v$session

where username='username')

order by address, piece;

oracle中的一致性讀是什么意思

邏輯讀就是從內(nèi)存中(db buffer cache)讀。 SQL執(zhí)行過程中,如果發(fā)生物理讀,將dbf的數(shù)據(jù)加載到內(nèi)存,這一步顯然是非常耗時的。 所以上面的說法是錯誤的。 我們總是希望邏輯讀越多越好,畢竟從內(nèi)存讀的速度要遠遠大大于從硬盤讀

oracle如何讀取數(shù)據(jù)

Oracle讀取數(shù)據(jù)的最大限制取決于操作系統(tǒng)和Oracle對多塊讀IO的限制。在物理上來說,一個SQL語句要讀取某個記錄,必須將該記錄讀取到DB CACHE中,然后才能從DB CACHE中獲取,這種訪問我們一般稱為物理讀(READ),如果這個數(shù)據(jù)已經(jīng)存在于DB CACHE中,那么前臺進程可以直接從DB CACHE中讀取數(shù)據(jù),這樣的讀取成為邏輯讀(GET),如果要讀取的數(shù)據(jù)已經(jīng)被修改,需要從UNDO中讀取前映像來獲取一致性的數(shù)據(jù),那么會從UNDO中取出前映像,和當前的數(shù)據(jù)塊一起形成一個一致性讀塊(CR BLOCK),然后再從CR BLOCK中讀取數(shù)據(jù),這種訪問方式稱為一致性讀(CR GET)。 從邏輯上講, Oracle讀取數(shù)據(jù)通過三種途徑:全表掃描( Full Table Sacn,FTS )、引掃描、通過ROWID直接訪問。在閱讀SQL執(zhí)行計劃的時候,可以通過 TABLE ACCESS子句來查看Oracle訪問某個表的方法,一般來說,對于大型的表來說,如果出現(xiàn) TABLE ACCESS FULL 的提示,是需要加以重視的,一般情況下,對于大表的全表掃描應該是盡量避免的。下面是一個簡單的執(zhí)行計劃:Query Plan----------------------------------------- SELECT STATEMENT [CHOOSE] Cost=1234 TABLE ACCESS FULL LARGE [:Q65001] [ANALYZED]查看SQL的執(zhí)行計劃的時候,最右邊的,最上面的操作是首先被執(zhí)行的,上面的例子只有一個操作,就是對表“LARGE”進行全表掃描。當這個步驟執(zhí)行完畢后,就會將結果集返回給上面一層的語句,上面的例子就是 SELECT STATEMENT 這個語句,一般來說 SELECT STATEMENT 是整個執(zhí)行計劃的頂層。 [CHOOSE]表明這個SQL語句的OPTIMIZER_GOAL ,在這個提示的右側是COST數(shù)據(jù),如果COST是有實際值的,那么說明使用了CBO優(yōu)化器,如果COST沒有實際值,那么說明使用了RBO優(yōu)化器。比如: SELECT STATEMENT [CHOOSE] Cost=COST只是一個相對的值,只是優(yōu)化器用來分析訪問路徑的優(yōu)劣的,相同的SQL, COST越小的執(zhí)行計劃,起執(zhí)行效果越好,開銷越小。而不同的SQL ,其COST值是沒有可比性的。 [:Q65001]指明這部分操作被采用并行查詢的方式執(zhí)行,

oracle中邏輯讀的單位是什么?

有兩種讀:邏輯讀和物理讀

數(shù)據(jù)庫讀寫的單位是數(shù)據(jù)塊。當用戶最終得到的結果可能只是某個數(shù)據(jù)塊中的幾行或幾列。當一個查詢語句被執(zhí)行時,服務器進程會將相關的數(shù)據(jù)塊從數(shù)據(jù)文件中寫入內(nèi)存(buffer cache)。這就叫做物理讀。每讀取一個數(shù)據(jù)塊,即是一次物理讀。

而用戶需要的并不是整個數(shù)據(jù)塊,而是其中的幾行或幾列。從buffer cache中提取行的過程,便是邏輯讀。

而其中邏輯讀又分成兩種:即時讀(current read)和一致性讀(consistent read)。

(1)即時讀::即時讀就是讀取數(shù)據(jù)塊當前的最新數(shù)據(jù)。任何時候在buffer cache中都只有一份當前數(shù)據(jù)塊。即時讀通常發(fā)生在對數(shù)據(jù)進行修改,刪除操作時。這時,進程會給數(shù)據(jù)加上行級鎖,并且標識數(shù)據(jù)為“臟數(shù)據(jù)”。

(2)一致性讀:

一致性讀就是為了保證數(shù)據(jù)的一致性。在Buffer Cache中的數(shù)據(jù)塊上都會有最后一次修改數(shù)據(jù)塊時的SCN。

如果一個事務需要修改數(shù)據(jù)塊中數(shù)據(jù),會先在回滾段中保存一份修改前數(shù)據(jù)和SCN的數(shù)據(jù)塊,然后再更新Buffer Cache中的數(shù)據(jù)塊的數(shù)據(jù)及其SCN,并標識其為“臟”數(shù)據(jù)。

當其他進程讀取數(shù)據(jù)塊時,會先比較數(shù)據(jù)塊上的SCN和自己的SCN。如果數(shù)據(jù)塊上的SCN小于等于進程本身的SCN,則直接讀取數(shù)據(jù)塊上的數(shù)據(jù);

如果數(shù)據(jù)塊上的SCN大于進程本身的SCN,則會從回滾段中找出修改前的數(shù)據(jù)塊讀取數(shù)據(jù)。通常,普通查詢都是一致性讀。

綜上所述,邏輯讀的原理和過程比較復雜。邏輯讀的單位并不能簡單的認為是個塊。

oracle需要經(jīng)常統(tǒng)計每個會話的邏輯讀和物理讀信息,直接使用SQL很不方便,設計一個程序,簡化查看某個會話

select t.SID,n.NAME,t.VALUE

from v$sesstat t, v$statname n

where t.STATISTIC# = n.STATISTIC#

and n.STATISTIC# in (9, 54)

and t.SID=sid

如何判斷oracle的讀寫狀態(tài)是否正常

一:查看數(shù)據(jù)庫監(jiān)聽是否啟動

lsnrctl status

二:查看數(shù)據(jù)庫運行狀態(tài),是否open

select instance_name,status from v$instance;

三:查看alert日志,查看是否有錯誤信息

SQL show parameter background_dump

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

background_dump_dest string /u01/app/oracle/diag/rdbms/ogg1/ogg1/trace

vim / u01/app/oracle/diag/rdbms/ogg1/ogg1/trace/alert_ogg1.log


網(wǎng)頁名稱:oracle邏輯讀怎么看,oracle如何讀
標題網(wǎng)址:http://fisionsoft.com.cn/article/hcgisd.html