激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Oracle - Oracle Arraysize設置對于邏輯讀的影響實例分析

Oracle Arraysize設置對于邏輯讀的影響實例分析

2019-12-11 15:01junjie Oracle

這篇文章主要介紹了Oracle Arraysize設置對于邏輯讀的影響實例分析,通過設置Arraysize大幅減少了邏輯讀的次數和網絡往返次數,需要的朋友可以參考下

當執行一條SQL查詢的時候,為了獲得滿足的數據,查詢在這個過程中完成解析,綁定,執行和提取數據等一系列步驟,這些步驟都是單獨執行的,滿足條件的數據行必須由數據庫返回給應用;對于任何大小的結果集,需要返回的數據行很可能不是在一次往返調用過程中傳遞給應用的!

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

關于提取操作的機制,一次FETCH調用將會訪問緩沖區緩存中的一個或多個數據塊,每次訪問一個數據塊的時候,Oracle會在該塊中取出數據行然后在一次回路中返回給客戶端,這里對于一次返回的行數便是Arraysize(列大小),Arraysize表明了一次提取操作在網絡回路中傳輸的可能的數據行數。

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

  1. -- 查看當前的Arraysize 
  2. SQL> show arraysize 
  3. arraysize 15 
  4.   
  5. SQL> set autotrace traceonly statistics 
  6. SQL> select * from dba_objects; 
  7.   
  8. 72457 rows selected. 
  9.   
  10. Statistics 
  11. ---------------------------------------------------------- 
  12.      0 recursive calls 
  13.      0 db block gets 
  14.     7675 consistent gets 
  15.      5 physical reads 
  16.      0 redo size 
  17.   3463453 bytes sent via SQL*Net to client 
  18.    53549 bytes received via SQL*Net from client 
  19.     4832 SQL*Net roundtrips to/from client 
  20.      0 sorts (memory) 
  21.      0 sorts (disk) 
  22.    72457 rows processed 
  23.   
  24. -- 設置Arraysize為50 
  25. SQL> set arraysize 50 
  26. SQL> / 
  27.   
  28. 72457 rows selected. 
  29.   
  30. Statistics 
  31. ---------------------------------------------------------- 
  32.      15 recursive calls 
  33.      0 db block gets 
  34.     3618 consistent gets 
  35.      0 physical reads 
  36.      0 redo size 
  37.   3034066 bytes sent via SQL*Net to client 
  38.    16358 bytes received via SQL*Net from client 
  39.     1451 SQL*Net roundtrips to/from client 
  40.      0 sorts (memory) 
  41.      0 sorts (disk) 
  42.    72457 rows processed 

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

1.邏輯讀次數大幅減小,由7675減至3618。

2.網絡往返次數由之前的4832次下降到只需要1451次。

需要注意的是這些改變都是與SQL語句本身無關的,Arraysize大小需要通過編程實現,本例中使用SQL*Plus環境中的SET ARRAYSIZE命令,如果是Java應用,可以通過設置Connection.SetdefaultRowPrefetch(n)來實現。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品岛国久久久久久 | 国产一区视频免费观看 | 亚洲视频在线免费看 | 国产亚洲精品美女久久久 | 免费激情网站 | 日本欧美一区二区三区视频麻豆 | 成人短视频在线播放 | 亚洲精品无码不卡在线播放he | 欧美亚洲另类在线 | 成人羞羞国产免费游戏 | 日本一区二区免费在线观看 | 黄色片在线免费播放 | 久久千人斩 | 免费网站看毛片 | www.com超碰 | 99欧美精品 | 亚洲午夜免费 | 一本色道久久综合亚洲精品小说 | 久在线播放 | 国产寡妇xxxxxxxx性开放 | 最近日本电影hd免费观看 | 九九热国产视频 | 精品国产一区在线 | 亚洲国产精品久久久 | 久久精品亚洲国产奇米99 | 久久99国产精品视频 | www久久综合 | 国产成人高清在线观看 | 欧美久久久久久久久 | h久久| 毛片免 | 久久久久久久久久综合 | 亚洲精品一区二区三区免 | 欧美另类69xxxxx 视频 | 久久影片| 国产成人在线综合 | 黄色毛片一级视频 | 中文字幕在线永久视频 | 精品一区二区三区免费毛片爱 | 狠狠干夜夜操 | 黄色影院在线看 |