版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一、 簡介理解 DB2 如何使用內(nèi)存,可以防止過度分配內(nèi)存,并有助于對內(nèi)存的使用進(jìn)行調(diào)優(yōu),從而獲得更好的性能。DB2 V9 引入了自動(dòng)自調(diào)整內(nèi)存管理 ,自適應(yīng)的自調(diào)整內(nèi)存功能通過自動(dòng)設(shè)置內(nèi)存配置參數(shù)值以及調(diào)整緩沖池大小來簡化內(nèi)存配置任務(wù)。啟用此功能后,內(nèi)存調(diào)整器就會(huì)在幾個(gè)內(nèi)存使用者(包括:排序、程序包高速緩存、鎖定列表和緩沖池)之間動(dòng)態(tài)地分配可用內(nèi)存資源,從而簡化了內(nèi)存配置參數(shù)調(diào)整的工作量。在DB2 V9之前,數(shù)據(jù)庫 的內(nèi)存配置參數(shù)和緩沖池都是由管理員手工設(shè)置的。而數(shù)據(jù)庫的工作負(fù)載很少是靜態(tài)的,而是動(dòng)態(tài)變化的。比如,當(dāng)工作負(fù)載類型發(fā)生變化(由事務(wù)型變成了混合型等)、用戶增加
2、、維護(hù)任務(wù)的運(yùn)行或者其它應(yīng)用程序消耗的資源變化等,都會(huì)造成工作負(fù)載在不停的變化。因此,即便是資深的數(shù)據(jù)庫管理員調(diào)優(yōu)過的系統(tǒng),在另一個(gè)時(shí)候也未必是最優(yōu)的。數(shù)據(jù)庫管理員需要根據(jù)變化隨時(shí)做出調(diào)整,工作量大而效果也不明顯。變化可能在很短的時(shí)間內(nèi)發(fā)生,因此留給數(shù)據(jù)庫管理員作出響應(yīng)的時(shí)間很短。數(shù)據(jù)庫內(nèi)存設(shè)置尤其容易受這些變化的影響,因而會(huì)嚴(yán)重影響響應(yīng)時(shí)間。 二、 DB2 內(nèi)存結(jié)構(gòu)DB2在4種不同的內(nèi)存集(memory set)內(nèi)拆分和管理內(nèi)存。這4種內(nèi)存集分別是:n 實(shí)例共享內(nèi)存(instance shared memory) n 數(shù)據(jù)庫共享內(nèi)存
3、(database shared memory) n 應(yīng)用程序組共享內(nèi)存(application group shared memory) (略)n 代理私有內(nèi)存(agent private memory)1. 實(shí)例共享內(nèi)存每個(gè)DB2實(shí)例都有一個(gè)實(shí)例共享內(nèi)存。實(shí)例共享內(nèi)存是在數(shù)據(jù)庫管理器啟動(dòng)(db2start)時(shí)分配的,并隨著數(shù)據(jù)庫管理器的停止(db2stop)而釋放。這種內(nèi)存集用于實(shí)例級的任務(wù),例如監(jiān)控、審計(jì)和節(jié)點(diǎn)間通信。獲取配置命令: db2 get dbm cfginstance_memory
4、60;默認(rèn)值是AUTOMATIC??梢允褂孟旅娴拿顏泶_定它的值: db2 attach to instance_name(其中 instance_name是實(shí)例的名稱) db2 get dbm cfg show detail上面的輸出表明有13.6GB的內(nèi)存被預(yù)留給實(shí)例共享內(nèi)存集(3433509頁*4096字節(jié)/頁): instance_memory 參數(shù)只是設(shè)置了實(shí)例共享內(nèi)存的限制,它并沒有說出當(dāng)前使用了多少內(nèi)存。要查明一個(gè)實(shí)例的內(nèi)存使用情況,可以使用DB2內(nèi)存
5、跟蹤器工具db2mtrk。例如, db2mtrk -i -v上面的例子表明,實(shí)例內(nèi)存只用到了大約14MB。那么還有很大一部分內(nèi)存哪去了?答案是instance_memory包含了database_memory總和的限制。2. 數(shù)據(jù)庫共享內(nèi)存每個(gè)數(shù)據(jù)庫有一個(gè)數(shù)據(jù)庫共享內(nèi)存集。數(shù)據(jù)庫共享內(nèi)存是在數(shù)據(jù)庫被激活或者第一次被連接上的時(shí)候分配的,在數(shù)據(jù)庫處于非激活狀態(tài)時(shí)釋放(如果數(shù)據(jù)庫先前是處于激活狀態(tài))或者最后一個(gè)連接被斷開的時(shí)候釋放。這種內(nèi)存用于數(shù)據(jù)庫級的任務(wù),例如備份/恢復(fù)、鎖定和SQL的執(zhí)行。完整的綠色方框意味著,在數(shù)據(jù)庫啟動(dòng)的時(shí)候,該內(nèi)存池是完全分配的,
6、否則,就只分配部分的內(nèi)存。獲取配置命令: db2 get db cfg for TSO1) 主緩沖池(Main Bufferpools)數(shù)據(jù)庫緩沖池通常是數(shù)據(jù)庫共享內(nèi)存中最大的一塊內(nèi)存。DB2 在其中操縱所有常規(guī)數(shù)據(jù)和索引數(shù)據(jù)。一個(gè)數(shù)據(jù)庫必須至少有一個(gè)緩沖池,并且可以有多個(gè)緩沖池,這要視工作負(fù)載的特征、數(shù)據(jù)庫中使用的數(shù)據(jù)庫頁面大小等因素而定。例如,頁面大小為 8KB 的表空間只能使用頁面大小為 8KB 的緩沖池。查看主緩沖池的大小有多少,可以發(fā)出: SELECT * FROM SYSCAT.BUFFERP
7、OOLS;NPAGE列代表頁數(shù)量,PAGESIZE為頁大小。NPAGE=-2,代表緩沖池大小是自動(dòng)調(diào)整的,非固定。注:NPAGE=-1 ,表示緩沖池大小由db cfg的buffer_page大小控制,默認(rèn)是1000頁。如何創(chuàng)建自動(dòng)調(diào)整內(nèi)存大小的緩沖池:create bufferpool BP4K immediate size 100000 automatic pagesize 4K2) 隱藏的緩沖池 當(dāng)數(shù)據(jù)庫啟動(dòng)時(shí),要分配4個(gè)頁寬分別為4K、8K、16K和32K的小型緩沖池。這些緩沖池是“隱藏”的,因?yàn)樵谙到y(tǒng)編目中看不到它們(通過 SELECT
8、60;* FROM SYSCAT.BUFFERPOOLS 顯示不出)。3) util_heap_sz指示可由BACKUP、RESTORE、LOAD實(shí)用程序同時(shí)使用的內(nèi)存量。4) pckcachesz用于高速緩存數(shù)據(jù)庫上的靜態(tài)和動(dòng)態(tài)SQL以及Xquery語句的部分。5) dbheap包含表、索引、表空間和緩沖池的控制塊信息,還包括日志緩沖區(qū)的空間(logbufsz)和實(shí)用程序使用的臨時(shí)內(nèi)存。因此,堆大小將取決于許多變量。6) logbufsz在將日志記錄寫入磁盤之前,此參數(shù)允許您指定用作這些記錄的緩沖區(qū)的數(shù)據(jù)庫堆大?。ㄓ蒬bheap參數(shù)定義)。當(dāng)發(fā)生下列一種情況時(shí)會(huì)
9、將日志記錄寫入磁盤:l 一個(gè)事務(wù)落實(shí)或一組事務(wù)落實(shí),由mincommit配置參數(shù)定義l 日志緩沖區(qū)已滿l 發(fā)生了某些其他內(nèi)部數(shù)據(jù)庫管理器事件此參數(shù)也必須小于或等于dbheap參數(shù)。緩沖日志記錄將使日志記錄文件I/O更有效,因?yàn)閷⑷罩居涗泴懭氪疟P的頻率越低,每次可寫入的日志記錄就越多。可以使用數(shù)據(jù)庫系統(tǒng)監(jiān)視器來確定將多少日志緩沖區(qū)空間用于特定事務(wù)(或工作單元)。7) catalogcache_sz此參數(shù)指定目錄高速緩存可以使用的數(shù)據(jù)庫堆中的最大空間(以頁計(jì))。高速緩存各個(gè)數(shù)據(jù)庫分區(qū)中的目錄信息允許數(shù)據(jù)庫管理器不需要訪問系統(tǒng)目錄(或分區(qū)數(shù)據(jù)庫環(huán)境中的目錄節(jié)點(diǎn))即可獲取先前檢測的信息,從而降低其內(nèi)部
10、開銷。使用目錄高速緩存可以幫助提高下列各項(xiàng)的整體性能:l 綁定程序包以及編譯SQL和Xquery語句l 涉及檢查數(shù)據(jù)庫級別特權(quán)、例程特權(quán)、全局變量特權(quán)和角色權(quán)限的操作l 連接至分區(qū)數(shù)據(jù)庫環(huán)境中的非目錄節(jié)點(diǎn)的應(yīng)用程序8) locklist此參數(shù)指示分配給鎖定列表的內(nèi)存量。每個(gè)數(shù)據(jù)庫都有一個(gè)鎖定列表,鎖定列表包含由同時(shí)連接至數(shù)據(jù)庫的所有應(yīng)用程序掛起的鎖定。在所有平臺上,每個(gè)鎖定需要128或256字節(jié)的鎖定列表,這取決于是否對該對象掛起了其他鎖定:對于未掛起其他鎖定的對象,掛起一個(gè)鎖定需要256個(gè)字節(jié)。對于存在掛起的鎖定的對象,記錄一個(gè)鎖定需要128個(gè)字節(jié)。一旦鎖定列表已滿,性能就可能會(huì)降低,因?yàn)殒i
11、定升級將生成更多的表鎖定和更少的行鎖定,從而降低數(shù)據(jù)庫中共享對象的并行性。9) 排序堆的閾值(sheapthres,sheapthres_shr) 如果沒有索引滿足所取的行的要求順序,或者優(yōu)化器斷定排序的代價(jià)低于索引掃描,那么就需要進(jìn)行排序。DB2 中有兩種排序,一種是私有排序,一種是共享排序。私有排序發(fā)生在代理的私有代理內(nèi)存中,而共享排序發(fā)生在數(shù)據(jù)庫的數(shù)據(jù)庫共享內(nèi)存中。 對于私有排序,數(shù)據(jù)庫管理器配置參數(shù) sheapthres 指定了私有排序在任何時(shí)刻可以消耗的內(nèi)存總量在實(shí)例范圍內(nèi)的 軟限制。如果
12、一個(gè)實(shí)例總共消耗的私有排序內(nèi)存達(dá)到了這一限制,那么為額外傳入的私有排序請求所分配的內(nèi)存將大大減少。如果啟用了內(nèi)部分區(qū)并行性(intra-partition parallelism)或者集中器(concentrator),那么當(dāng) DB2 斷定共享排序比私有排序更有效時(shí),DB2 就會(huì)選擇執(zhí)行共享排序。如果執(zhí)行共享排序,那么就會(huì)在數(shù)據(jù)庫共享內(nèi)存中分配用于這種排序的排序堆。用于共享排序的最大內(nèi)存量是由 sheapthres_shr 數(shù)據(jù)庫參數(shù)指定的。這是對共享排序在任何時(shí)刻可以消耗的內(nèi)存總量在數(shù)據(jù)庫范圍內(nèi)的 硬限制。當(dāng)達(dá)到這個(gè)限制時(shí)
13、,請求排序的應(yīng)用程序?qū)⑹盏藉e(cuò)誤 SQL0955 (rc2)。之后,在共享內(nèi)存總消耗量回落到低于由 sheapthres_shr 指定的限制之前,任何共享排序內(nèi)存的請求都得不到允許。 10) 查看內(nèi)存大?。翰榭磾?shù)據(jù)庫詳細(xì)配置信息:db2inst3perf233 $ db2 connect to TSOJX user tso using tsodb2inst3perf233 $ db2 get db cfg for TSOJX show detail使用db2mtrk工具顯示當(dāng)前使用的內(nèi)存量: db2mtrk -i -d -v3. 應(yīng)用程
14、序組共享內(nèi)存 這種共享內(nèi)存集僅適用于以下環(huán)境。(對于其他環(huán)境,這種內(nèi)存集不存在。)多分區(qū)(multi-partitioned)數(shù)據(jù)庫。 啟用了內(nèi)部并行(intra-parallel)處理的未分區(qū)(non-partitioned)數(shù)據(jù)庫。支持連接集中器的數(shù)據(jù)庫。 注意:當(dāng) max_connections的值大于 max_coordagents的值時(shí),連接集中器便被啟用。
15、這兩個(gè)參數(shù)可以在數(shù)據(jù)庫管理器配置中找到。(使用GET DBM CFG顯示數(shù)據(jù)庫管理器配置。) 4. 代理私有內(nèi)存 每個(gè)DB2代理進(jìn)程都需要獲得內(nèi)存,以執(zhí)行其任務(wù)。代理進(jìn)程將代表應(yīng)用程序使用內(nèi)存來優(yōu)化、構(gòu)建和執(zhí)行訪問計(jì)劃,執(zhí)行排序,記錄游標(biāo)信息(例如位置和狀態(tài)),收集統(tǒng)計(jì)信息,等等。為響應(yīng)并行環(huán)境中的一個(gè)連接請求或一個(gè)新的SQL請求,要為一個(gè)DB2代理分配代理私有內(nèi)存。 代理的數(shù)量受下面兩者中的較低者限制:所有活動(dòng)數(shù)據(jù)庫的數(shù)據(jù)庫配置參數(shù)maxappls
16、的總和。數(shù)據(jù)庫管理器配置參數(shù)maxagents的值,這指定了允許的最大代理數(shù)。代理私有內(nèi)存集由以下內(nèi)存池組成。Application Heap ( applheapsz) Sort Heap ( sortheap) Statement Heap ( stmtheap)
17、60; Statistics Heap ( stat_heap_sz) Query Heap ( query_heap_sz) Java Interpreter Heap ( java_heap_sz)
18、160; Agent Stack Size ( agent_stack_sz) (僅適用于 Windows) 私有內(nèi)存何時(shí)釋放呢?答案取決于 dbm cfg 參數(shù) num_poolagents的值。該參數(shù)的值指定任何時(shí)候可以保留的閑置代理的最大數(shù)目。如果該值為 0,那么就不允許有閑置代理。只要一個(gè)代理完成了它的工作,這個(gè)代理就要被銷毀,它的內(nèi)存也要返回給操作系統(tǒng)。如果該參數(shù)被設(shè)為一個(gè)非零值,那么
19、一個(gè)代理在完成其工作后不會(huì)被銷毀。相反,它將被返回到閑置代理池,直到閑置代理的數(shù)目到達(dá) num_poolagents指定的最大值。當(dāng)傳入一個(gè)新的請求時(shí),就要調(diào)用這些閑置代理來服務(wù)該新請求。這樣就減少了創(chuàng)建和銷毀代理的開銷。 三、 自動(dòng)調(diào)整內(nèi)存從 DB2® V9 開始,內(nèi)存調(diào)整功能通過自動(dòng)設(shè)置一些內(nèi)存配置參數(shù)的值來簡化內(nèi)存配置任務(wù)。啟用此功能之后,內(nèi)存調(diào)整器將在下列內(nèi)存使用者之間動(dòng)態(tài)分配可用的內(nèi)存資源:緩沖池、鎖定內(nèi)存、程序包高速緩存和排序內(nèi)存。調(diào)整器在 database_memory 配置參數(shù)所定義的內(nèi)存限制范圍內(nèi)工作。此參數(shù)的值也可以自動(dòng)調(diào)整
20、。啟用自調(diào)整功能(將 database_memory 的值設(shè)置為 AUTOMATIC)之后,調(diào)整器將確定數(shù)據(jù)庫的整體內(nèi)存需求并根據(jù)當(dāng)前數(shù)據(jù)庫需求來增加或減少分配給數(shù)據(jù)庫共享內(nèi)存的內(nèi)存量。例如,如果當(dāng)前數(shù)據(jù)庫需求很高,并且系統(tǒng)上有足夠的可用內(nèi)存,那么將為數(shù)據(jù)庫共享內(nèi)存分配較多的內(nèi)存。如果數(shù)據(jù)庫內(nèi)存需求下降,或者系統(tǒng)上的可用內(nèi)存量變得過低,那么將釋放一些數(shù)據(jù)庫共享內(nèi)存。默認(rèn)配置如下:可以對下列內(nèi)存使用者啟用自調(diào)整(把相應(yīng)的參數(shù)設(shè)置為 AUTOMATIC):l 緩沖池(由 ALTER BUFFERPOOL 和 CREATE BUFFERPOOL 語句指定AUTOMATIC屬性)。
21、l 程序包高速緩存(由 pckcachesz 配置參數(shù)控制)。l 鎖定內(nèi)存(由 locklist 和 maxlocks 配置參數(shù)控制)。l 排序內(nèi)存(由 sheapthres_shr 和 sortheap 配置參數(shù)控制)。l 數(shù)據(jù)庫共享內(nèi)存(由 database_memory 配置參數(shù)控制)。 注:DB_MEM_THRESH參數(shù)此數(shù)據(jù)庫配置參數(shù)表示數(shù)據(jù)庫管理器允許的已落實(shí)但當(dāng)前未使用的數(shù)據(jù)庫共享內(nèi)存最大百分比,達(dá)到此百分比后,數(shù)據(jù)庫管理器將開始釋放已落實(shí)的內(nèi)存頁以將它們返回給操作系統(tǒng)??山邮艿闹凳钦麛?shù) 0(立即釋放任何未使用的數(shù)據(jù)庫共享內(nèi)存)到 100(永遠(yuǎn)不釋放任何未使用的數(shù)據(jù)庫共
22、享內(nèi)存)。缺省值是 10(僅當(dāng)當(dāng)前未使用的數(shù)據(jù)庫共享內(nèi)存超過 10% 時(shí),才釋放那些內(nèi)存)。四、 優(yōu)化建議1. 使用合適的緩沖池大型緩沖池具有下列優(yōu)點(diǎn):· 它們使頻繁被請求的數(shù)據(jù)頁能夠保留在緩沖池中,從而提高訪問速度。較少的 I/O 操作可以減少 I/O 爭用情況,從而縮短響應(yīng)時(shí)間并減少 I/O 操作所需的處理器資源。· 它們提供了在保持響應(yīng)時(shí)間不變的前提下實(shí)現(xiàn)更高事務(wù)處理速率的機(jī)會(huì)。· 它們能夠防止頻繁使用的磁盤存儲設(shè)備(例如用于存儲目錄表以及頻繁引用的用戶表和索引的設(shè)備)發(fā)生 I/O 爭用情況。由于包含臨時(shí)表空間的磁盤存儲設(shè)備上的 I/O 爭用情況減少,因此查
23、詢所需執(zhí)行的排序操作也能受益。多個(gè)緩沖池的優(yōu)點(diǎn):如果系統(tǒng)中存在下列任何一種情況,那么應(yīng)該只使用一個(gè)緩沖池:· 緩沖池總空間量小于 10000 個(gè) 4 KB 頁· 找不到具備該應(yīng)用程序知識來執(zhí)行專門調(diào)試的人員· 您正在測試系統(tǒng)中工作在所有其他情況下,請考慮使用多個(gè)緩沖池,原因如下:· 可以將臨時(shí)表空間指定到獨(dú)立的緩沖池,以便提高需要臨時(shí)存儲器的查詢(尤其是執(zhí)行大量排序操作的查詢)的性能。· 如果數(shù)據(jù)必須由很多小型的更新事務(wù)應(yīng)用程序反復(fù)并快速地訪問,那么請考慮將包含該數(shù)據(jù)的表空間指定到獨(dú)立的緩沖池。如果此緩沖池的大小合適,那么它的頁被找到的機(jī)會(huì)將更
24、大,這有利于縮短響應(yīng)時(shí)間和降低事務(wù)成本。· 可以將數(shù)據(jù)隔離到不同的緩沖池中,以利于特定的應(yīng)用程序、數(shù)據(jù)和索引。例如,您可能想將頻繁更新的表和索引放在單獨(dú)的緩沖池中,以便與那些頻繁查詢但很少更新的表和索引分開。· 對于很少使用的應(yīng)用程序(尤其是需要對一個(gè)很大的表非常隨機(jī)地進(jìn)行訪問的應(yīng)用程序)所訪問的數(shù)據(jù),可使用較小的緩沖池。在此情況下,不需要使數(shù)據(jù)保存在緩沖池中的時(shí)間超出單個(gè)查詢的運(yùn)行時(shí)間。最好為此類數(shù)據(jù)保留一個(gè)小緩沖池,以便騰出額外的內(nèi)存供其他緩沖池使用。將數(shù)據(jù)分到不同的緩沖池之后,可以根據(jù)統(tǒng)計(jì)信息和記帳跟蹤來生成良好并且成本相對較低的性能診斷數(shù)據(jù)。增加緩沖池大小一般會(huì)改進(jìn)
25、命中率,但您會(huì)達(dá)到一個(gè)最優(yōu)狀態(tài),而無法繼續(xù)改進(jìn)。從理論上說,如果能夠分配大到足以存儲整個(gè)數(shù)據(jù)庫的緩沖池,則系統(tǒng)啟動(dòng)并運(yùn)行后你可以得到 100% 的命中率。但在許多情況下這是不現(xiàn)實(shí)的。命中率的高低實(shí)際上取決于數(shù)據(jù)的大小以及訪問數(shù)據(jù)的方式。如果數(shù)據(jù)庫很大并且數(shù)據(jù)訪問比較平均,則命中率將會(huì)很低。對于非常大的表來說,您幾乎無能為力。在此情況下,應(yīng)該將重點(diǎn)放在較小并且訪問較為頻繁的表以及索引上。如果可能的話,將它們指定給希望獲取高命中率的各個(gè)緩沖池。如果采用多緩沖池的方法,對于初學(xué)者來說使用 4 個(gè)緩沖池比較合適:· 一個(gè)中等大小的緩沖池,用于臨時(shí)表空間。 · 一個(gè)大型的緩沖池,用于
26、索引表空間。 · 一個(gè)大型的緩沖池,用于那些包含經(jīng)常要訪問的表的表空間。 · 一個(gè)小型的緩沖池,用于那些包含訪問不多的表、隨機(jī)訪問的表或順序訪問的表的表空間。 對于 DMS 只包含 LOB 數(shù)據(jù)的表空間,可以為其分配任何緩沖池,因?yàn)?LOB 不占用緩沖池空間。2. 數(shù)據(jù)預(yù)取1) 順序預(yù)取使用單一 I/O 操作將多個(gè)連續(xù)的頁讀入緩沖池可以大大降低應(yīng)用程序開銷。當(dāng)數(shù)據(jù)庫管理器確定順序 I/O 合適并且預(yù)取操作有助于提高性能時(shí),預(yù)取操作就會(huì)啟動(dòng)。對于表掃描和表排序這類情況,數(shù)據(jù)庫管理器將自動(dòng)選擇順序預(yù)取。以下示例(可能要求執(zhí)行表掃描)適合于順序預(yù)?。篠ELECT NAME FRO
27、M EMPLOYEE順序檢測有時(shí),并不能立即確定順序預(yù)取能否提高性能。在此類情況下,數(shù)據(jù)庫管理器可以監(jiān)視 I/O 并在順序頁讀操作發(fā)生時(shí)激活預(yù)取。這種類型的順序預(yù)取稱為順序檢測,并且同時(shí)適用于索引頁和數(shù)據(jù)頁。您可以使用 seqdetect 數(shù)據(jù)庫配置參數(shù)來控制數(shù)據(jù)庫管理器是否執(zhí)行順序檢測。例如,如果啟用順序檢測,那么順序預(yù)取有可能使以下 SQL 語句受益:SELECT NAME FROM EMPLOYEE WHERE EMPNO BETWEEN 100 AND 3000在本示例中,優(yōu)化器可能已開始使用基于 EMPNO 列的索引來掃描表。如果該表相對于此索引而言高度集群,那么
28、數(shù)據(jù)頁讀操作將幾乎按順序進(jìn)行,并且預(yù)取有助于提高性能。同樣,如果必須檢查許多索引頁,并且數(shù)據(jù)庫管理器檢測到正在按順序讀取索引頁,那么有可能進(jìn)行索引頁預(yù)取。表空間的 PREFETCHSIZE 選項(xiàng)的含義CREATE TABLESPACE 或 ALTER TABLESPACE 語句的 PREFETCHSIZE 子句允許您指定執(zhí)行數(shù)據(jù)預(yù)取時(shí)將從表空間中讀取的預(yù)取頁數(shù)。您指定的值(或者“AUTOMATIC”)將存儲在 SYSCAT.TABLESPACES 目錄視圖的 PREFETCHSIZE 列中。您最好將 PREFETCHSIZE 值明確設(shè)置為表空間容器數(shù)、每個(gè)容器下的物理磁盤數(shù)(如果使用了 RAI
29、D 設(shè)備的話)與表空間的 EXTENTSIZE 值(數(shù)據(jù)庫管理器在使用另一個(gè)容器前寫入容器的頁數(shù))的乘積。例如,如果擴(kuò)展數(shù)據(jù)塊大小為 16 頁,并且表空間包含兩個(gè)容器,那么可以將預(yù)取大小設(shè)置為 32 頁。如果每個(gè)容器有 5 個(gè)物理磁盤,那么可以將預(yù)取大小設(shè)置為 160 頁。數(shù)據(jù)庫管理器將監(jiān)視緩沖池的使用情況,以確保預(yù)取不會(huì)從緩沖池中除去另一個(gè)工作單元所需的頁。為了避免引起問題,數(shù)據(jù)庫管理器可將預(yù)取的頁數(shù)限制為小于您對表空間指定的數(shù)目。預(yù)取大小可能會(huì)顯著影響性能,對于大型表掃描而言尤其如此。請使用數(shù)據(jù)庫系統(tǒng)監(jiān)視器和其他系統(tǒng)監(jiān)視工具來幫助您調(diào)整表空間的預(yù)取大小。您可以收集有關(guān)是否存在下列情況的信息
30、:查詢等待 I/O(通過使用適用于操作系統(tǒng)的監(jiān)視工具來檢查這種情況)正在進(jìn)行預(yù)取(通過查看數(shù)據(jù)庫系統(tǒng)監(jiān)視器提供的 pool_async_data_reads(緩沖池異步數(shù)據(jù)讀?。?shù)據(jù)元素來檢查這種情況)如果查詢預(yù)取數(shù)據(jù)時(shí)發(fā)生 I/O 等待情況,那么請?jiān)龃?PREFETCHSIZE 的值。如果預(yù)取程序不是這些 I/O 等待情況的原因,那么增大 PREFETCHSIZE 值對提高查詢性能沒有幫助。對于所有類型的預(yù)取而言,如果預(yù)取大小是表空間的擴(kuò)展數(shù)據(jù)塊大小的倍數(shù),并且這些擴(kuò)展數(shù)據(jù)塊在多個(gè)不同的容器中,那么可以并行地執(zhí)行多個(gè) I/O 操作。為了提高性能,請將容器配置為使用多個(gè)不同的物理設(shè)備
31、。2) 列表預(yù)取列表預(yù)?。戳斜眄樞蝾A(yù)取)是一種高效訪問數(shù)據(jù)頁的方法,即使那些數(shù)據(jù)頁不連續(xù)亦如此。列表預(yù)取功能可以與單索引訪問或多索引訪問結(jié)合使用。如果優(yōu)化器使用索引來訪問行,那么它可將數(shù)據(jù)頁讀操作推遲到從該索引中獲取所有行標(biāo)識 (RID) 之后進(jìn)行。例如,優(yōu)化器可以執(zhí)行索引掃描以確定要檢索的行和數(shù)據(jù)頁。INDEX IX1: NAME ASC,DEPT ASC,MGR DESC,SALARY DESC,YEARS ASC然后,使用以下搜索條件:WHERE NAME BETWEEN 'A' and 'I'如果數(shù)據(jù)未根據(jù)此索引進(jìn)行集群,那么列表預(yù)取過程將包括對索引掃
32、描操作所獲取的 RID 列表進(jìn)行排序的步驟。3. 調(diào)整排序性能由于查詢通常需要經(jīng)過排序或分組的結(jié)果,因此正確地配置排序堆對于良好的查詢性能而言至關(guān)重要。在下列情況下,需要進(jìn)行排序:· 不存在能夠滿足所請求順序的索引(例如,使用了 ORDER BY 子句的 SELECT 語句)· 存在索引,但執(zhí)行排序比使用索引更有效· 創(chuàng)建索引· 刪除索引,這將導(dǎo)致對索引頁號進(jìn)行排序影響排序的元素下列因素將影響排序性能:· 下列配置參數(shù)的設(shè)置:o 排序堆大?。╯ortheap),此參數(shù)指定用于執(zhí)行每次排序的內(nèi)存量o 排序堆閾值(sheapthres)和共享排序的
33、排序堆閾值(sheapthres_shr),這些參數(shù)控制整個(gè)實(shí)例中可用于執(zhí)行排序的內(nèi)存總量· 工作負(fù)載中需要執(zhí)行大量排序操作的語句數(shù)· 是否存在有助于避免執(zhí)行不必要的排序操作的索引· 使用了未最大程度減少排序需求的應(yīng)用程序邏輯· 并行排序,這可以提高排序性能,但僅當(dāng)語句使用分區(qū)內(nèi)并行性時(shí)才可行· 排序是否溢出。如果經(jīng)過排序的數(shù)據(jù)在排序堆(這是每次執(zhí)行排序時(shí)分配的內(nèi)存塊)中放不下,那么數(shù)據(jù)將溢出到數(shù)據(jù)庫所擁有的臨時(shí)表中。· 排序結(jié)果是否管道式結(jié)果。如果經(jīng)過排序的數(shù)據(jù)可直接返回,而不需要一個(gè)臨時(shí)表來存儲經(jīng)過排序的列表,那么這是管道式排序。對于管道式排序,在應(yīng)用程序關(guān)閉與排序相關(guān)聯(lián)的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級語文工作計(jì)劃
- 勞動(dòng)力計(jì)劃及人員配備
- 2024-2025年中國化肥電商行業(yè)市場前景預(yù)測及投資戰(zhàn)略研究報(bào)告
- 大班班級工作計(jì)劃
- 幼兒園中班班級教育教案模板
- 個(gè)人自我介紹集錦15篇
- 市場人員年度工作總結(jié)十篇
- 《傅雷家書》讀書筆記
- 個(gè)人原因離職申請書11篇
- 后備干部培養(yǎng)參考計(jì)劃范文
- 水泥行業(yè)數(shù)字化轉(zhuǎn)型服務(wù)方案
- 深圳市南山區(qū)2024-2025學(xué)年第一學(xué)期期末教學(xué)質(zhì)量檢測九年級物理 24-25上九年級物理
- 應(yīng)急設(shè)施設(shè)備和物資儲備管理制度(4篇)
- 團(tuán)委書記個(gè)人工作總結(jié)
- 高危多發(fā)性骨髓瘤診斷與治療中國專家共識(2024年版)解讀
- 英語語法與長難句理解知到智慧樹章節(jié)測試課后答案2024年秋山東石油化工學(xué)院
- 2025年新高考語文古詩文理解性默寫(含新高考60篇)
- 2024版房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)內(nèi)容解讀
- 江蘇省鎮(zhèn)江市實(shí)驗(yàn)學(xué)校2023-2024學(xué)年九年級上學(xué)期期末考試化學(xué)試卷
- 期末 (試題) -2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- GB/T 32066-2024煤基費(fèi)托合成液體石蠟
評論
0/150
提交評論