欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle Arraysize設(shè)置對(duì)于邏輯讀的影響實(shí)例分析

 更新時(shí)間:2014年07月17日 11:20:59   投稿:junjie  
這篇文章主要介紹了Oracle Arraysize設(shè)置對(duì)于邏輯讀的影響實(shí)例分析,通過(guò)設(shè)置Arraysize大幅減少了邏輯讀的次數(shù)和網(wǎng)絡(luò)往返次數(shù),需要的朋友可以參考下

當(dāng)執(zhí)行一條SQL查詢的時(shí)候,為了獲得滿足的數(shù)據(jù),查詢?cè)谶@個(gè)過(guò)程中完成解析,綁定,執(zhí)行和提取數(shù)據(jù)等一系列步驟,這些步驟都是單獨(dú)執(zhí)行的,滿足條件的數(shù)據(jù)行必須由數(shù)據(jù)庫(kù)返回給應(yīng)用;對(duì)于任何大小的結(jié)果集,需要返回的數(shù)據(jù)行很可能不是在一次往返調(diào)用過(guò)程中傳遞給應(yīng)用的!

每次調(diào)用過(guò)程中,數(shù)據(jù)庫(kù)與客戶端之間的往返回路數(shù)將一定層次上影響總的響應(yīng)時(shí)間,其中除了提取數(shù)據(jù)(FETCH)步驟,其余步驟(解析,綁定,執(zhí)行)都只執(zhí)行一次,這也是必要的,Oracle需要獲得滿足查詢條件的所有數(shù)據(jù)結(jié)果從而執(zhí)行多次提取操作。

關(guān)于提取操作的機(jī)制,一次FETCH調(diào)用將會(huì)訪問(wèn)緩沖區(qū)緩存中的一個(gè)或多個(gè)數(shù)據(jù)塊,每次訪問(wèn)一個(gè)數(shù)據(jù)塊的時(shí)候,Oracle會(huì)在該塊中取出數(shù)據(jù)行然后在一次回路中返回給客戶端,這里對(duì)于一次返回的行數(shù)便是Arraysize(列大小),Arraysize表明了一次提取操作在網(wǎng)絡(luò)回路中傳輸?shù)目赡艿臄?shù)據(jù)行數(shù)。

分析Arraysize的機(jī)制我們可以得知Arraysize對(duì)于邏輯讀的一個(gè)基本的影響,如果在應(yīng)用中相應(yīng)的提高Arraysize的大小,相比之前的設(shè)置,每次從數(shù)據(jù)塊中獲取的行數(shù)將對(duì)應(yīng)得到提高,相同行數(shù)情況下,訪問(wèn)數(shù)據(jù)塊的次數(shù)自然減小,邏輯讀也就相應(yīng)的降低;實(shí)際情況也是如此。

-- 查看當(dāng)前的Arraysize
SQL> show arraysize
arraysize 15

SQL> set autotrace traceonly statistics
SQL> select * from dba_objects;

72457 rows selected.

Statistics
----------------------------------------------------------
     0 recursive calls
     0 db block gets
    7675 consistent gets
     5 physical reads
     0 redo size
  3463453 bytes sent via SQL*Net to client
   53549 bytes received via SQL*Net from client
    4832 SQL*Net roundtrips to/from client
     0 sorts (memory)
     0 sorts (disk)
   72457 rows processed

-- 設(shè)置Arraysize為50
SQL> set arraysize 50
SQL> /

72457 rows selected.

Statistics
----------------------------------------------------------
     15 recursive calls
     0 db block gets
    3618 consistent gets
     0 physical reads
     0 redo size
  3034066 bytes sent via SQL*Net to client
   16358 bytes received via SQL*Net from client
    1451 SQL*Net roundtrips to/from client
     0 sorts (memory)
     0 sorts (disk)
   72457 rows processed

上面的測(cè)試我以SQL*Plus為例,選取了對(duì)dba_objects表訪問(wèn)的查詢,SQL查詢的結(jié)果集是相同的,這時(shí)將Arraysize的值從默認(rèn)的15提高至50,就看到了非常明顯的變化:

1.邏輯讀次數(shù)大幅減小,由7675減至3618。
2.網(wǎng)絡(luò)往返次數(shù)由之前的4832次下降到只需要1451次。

需要注意的是這些改變都是與SQL語(yǔ)句本身無(wú)關(guān)的,Arraysize大小需要通過(guò)編程實(shí)現(xiàn),本例中使用SQL*Plus環(huán)境中的SET ARRAYSIZE命令,如果是Java應(yīng)用,可以通過(guò)設(shè)置Connection.SetdefaultRowPrefetch(n)來(lái)實(shí)現(xiàn)。

相關(guān)文章

  • Oracle鎖表解決方法的詳細(xì)記錄

    Oracle鎖表解決方法的詳細(xì)記錄

    在開發(fā)Oracle數(shù)據(jù)庫(kù)時(shí),我們常遇到頻繁操作的Oracle數(shù)據(jù)表,會(huì)出現(xiàn)Oracle鎖表,下面這篇文章主要給大家介紹了關(guān)于Oracle鎖表解決方法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Oracle11.2.0.1如何升級(jí)到11.2.0.3 Oracle同版本升級(jí)

    Oracle11.2.0.1如何升級(jí)到11.2.0.3 Oracle同版本升級(jí)

    這篇文章主要為大家詳細(xì)介紹了Oracle11.2.0.1如何升級(jí)到11.2.0.3的過(guò)程,Oracle同版本升級(jí)的方法,感興趣的小伙伴們可以參考一下
    2016-07-07
  • centos7.7安裝oracle11g腳本(推薦)

    centos7.7安裝oracle11g腳本(推薦)

    這篇文章主要介紹了centos7.7安裝oracle11g腳本,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Oracle 查詢死鎖并解鎖的終極處理方法

    Oracle 查詢死鎖并解鎖的終極處理方法

    本文主要介紹Oracle中如何查詢死鎖,并殺死這條進(jìn)程解鎖的方法,希望能幫到大家。
    2016-05-05
  • ORACLE中%TYPE和%ROWTYPE的使用詳解

    ORACLE中%TYPE和%ROWTYPE的使用詳解

    這篇文章主要介紹了ORACLE中%TYPE和%ROWTYPE的使用,本文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11
  • Oracle 數(shù)據(jù) 使用游標(biāo)

    Oracle 數(shù)據(jù) 使用游標(biāo)

    Oracle數(shù)據(jù)中如何使用游標(biāo)的方法
    2009-06-06
  • Oracle 系統(tǒng)變量函數(shù)介紹

    Oracle 系統(tǒng)變量函數(shù)介紹

    在Oracle數(shù)據(jù)庫(kù)中,Oracle系統(tǒng)變量函數(shù)是經(jīng)常會(huì)使用到的函數(shù),下面就為您詳細(xì)介紹Oracle系統(tǒng)變量函數(shù),供您參考學(xué)習(xí)
    2014-08-08
  • Oracle數(shù)據(jù)庫(kù)中建立索引的基本方法講解

    Oracle數(shù)據(jù)庫(kù)中建立索引的基本方法講解

    這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)中建立索引的基本方法,包括對(duì)性能方面進(jìn)行衡量而給出的一些索引的設(shè)計(jì)和使用建議,需要的朋友可以參考下
    2016-01-01
  • Oracle插入日期數(shù)據(jù)常見的2個(gè)問(wèn)題和解決方法

    Oracle插入日期數(shù)據(jù)常見的2個(gè)問(wèn)題和解決方法

    這篇文章主要介紹了Oracle插入日期數(shù)據(jù)常見的2個(gè)問(wèn)題和解決方法,一個(gè)是提示無(wú)效的月份問(wèn)題,一個(gè)是日期插入格式問(wèn)題 ,需要的朋友可以參考下
    2014-07-07
  • Oracle數(shù)據(jù)庫(kù)的兩種授權(quán)收費(fèi)方式詳解

    Oracle數(shù)據(jù)庫(kù)的兩種授權(quán)收費(fèi)方式詳解

    現(xiàn)在Oracle有兩種授權(quán)收費(fèi)方式,按CPU(Process)數(shù)和按用戶數(shù)(Named?User?Plus),前一種方式一般用于用戶數(shù)不確定或者用戶數(shù)量很大的情況,典型的如互聯(lián)網(wǎng)環(huán)境,這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)的兩種授權(quán)收費(fèi)方式介紹,需要的朋友可以參考下
    2022-10-10

最新評(píng)論