版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、简介理解 DB2如何使用内存,可以防止过度分配内存,并有助于对内存的使用进行调优,从 而获得更好的性能。DB2 V9引入了自动自调整内存管理,自适应的自调整内存功能通过自动设置内存配置参数值以及调整缓冲池大小来简化内存配置任务。启用此功能后,内存调整器就会在几个内存使用者(包括:排序、程序包高速缓存、锁定列表和缓冲池)之间动态地分配可用内存资源,从而简 化了内存配置参数调整的工作量。在DB2 V9之前,数据库 的内存配置参数和缓冲池都是由管理员手工设置的。而数据库的 工作负载很少是静态的,而是动态变化的。比如,当工作负载类型发生变化(由事务型变成了混合型等)、用户增加、维护任务的运行或者其它应
2、用程序消耗的资源变化等,都会造成工作负载在不停的变化。因此,即便是资深的数据库管理员调优过的系统,在另一个时候也未必是最优的。数据库管理员需要根据变化随时做岀调整,工作量大而效果也不明显。 变化可能在很短的时间内发生,因此留给数据库管理员作岀响应的时间很短。数据库内存设置尤其容易受这些变化的影响,因而会严重影响响应时间。DB2内存结构B0B犀曾理器共事丙存包抓FCM敛孑E 个(Darabase Memory或用珂序堆 ML悔朋空:也字也扁,kijpcKcachesr)冲忖 f &gbbfz j站;;i卜”内存(appl memory共亨应用程序内存MHF 乍卡applgp&zii!iiUHl:
3、 isrnntheap与用拮序的持序M(SJava 朮 age/if stack sz-shaapthr&s 】m临 /10Jp )1 Strrf/OHp J弃户机I/O块CqnotiUc(册瞳,代理程序/庫用程序共享内存- |序支轿馆唯浮尸机I/O块- as/hopsz、It rqriobikJava virtual Hachine haap sjlzeCjawl_heap_E2)= 204&Aucht bu尸ftr $彳工亡KEplAUDrr_EiUF_S2) - Dsize of Insiance shared memory (4kb) (instancejemory) - autwat
4、ic(3433509)Agent stack size(agektZstack 5Z) = 102iFort, heap Threshold (4KB)(EHEAPTUftEs) = 0Ireciory cache support(DIR_CACHE) YESAppli cati on support 1a/er heap si ze (4KB) (AELHEAPEZ) = 15 Max requester I.- 0 boek size (bytestUQRT&BLKj = 32767workload nrhpact by rhrotTled uti 11r1e5(uTiL_iMPACT_L
5、iK) - ioAGENTPRI) fN jm_pck)l age hts) NUN_lNLTAGLMrS (AX_C00RDAGEMT5) (MAK_CONNCCTIONS)-SVSEM=AUTOMATIC (130-)=o AUTOMATIC2003-AUTOMATIC MA_CCKJ R DAGE NTS)Priority of agentsAcent pool si zeinitial number of agenrs 1n pool Max number of cotxd-nat;ng agents Nax number of diem conreccioreinstance_mem
6、ory默认值是 AUTOMATIC可以使用下面的命令来确定它的值:db2 attachto in sta nce_n ame (其中instance_name 是实例的名称)db2 get dbm cfg show detailDdiabME inijm tor lie dipla8?, a Virtual Machin? tirafi si je (4帆R)(MON HEAP SZ) (3AVA. HFAP 5ZJ -AUTOMATIC 90) ?048AUTOMATIC (90) 504 BAudi 1 huf f pryp aJKfliJ(AIIIRTTRF =:7 j 打OSizein
7、staixe shared w-mgry(InSt.xm-f “cn问)-AUEKTTTt 知 3 册CWAgent st act- sizetAGFJT-STACK.SZl 1Q24TL0Z-Sort heap threshold 口煥)(StlETFfi5)-00DirectorysupperrCmr_cache)-VE5YESAppHration suppqrr丹size鑒am requester ig block size (byEes)QKR)OVilHFAFu.理-(R.qRICIBLItl -a 5327B71532767IqpMt by ihrOCTled utllUIfrS
8、(LlTl lJMP *C T_L IW) LG10Fr ar 1 ty af argents(ARi1 SSTt1i,lpool if(NUP.JPO0L JuGf IW5 J -4UTDTIC( 1001ALTraiAiTTCtlOaInitial fiuiher of agents in poolNLA1-! MI TAGElMTE)=0D幣誑乂 rtuiiber of coordiinarlinog弓(M1 AX_COOR LUGt N1 Si AUTClAnCpOO)AUIDMATICCJOO)咄量就 rkiiihpr of clienr cflnrwrtionsj. nokJTT-
9、门旳站* nt s)altcmatic 曲 dzctjuci 吐;fktq上面的输岀表明有 13.6GB的内存被预留给实例共享内存集(页 *4096字节/页):in sta nce_memory参数只是设置了实例共享内存的限制,它并没有说岀当前使用了多少内存。要查明一个实例的内存使用情况,可以使用DB2内存跟踪器工具 db2mtrk。例如,db2mtrk -i -vdb2iS db2mtrk -1 7Tracking Memory on: 2015/02/26 at 16:17:28Memory for 1nstanceorher remory is of size 13041664 byre
10、sfcmbp Heap is of size 851968 bytesDatabase Monitor Heap is of size 196G08 bytesTotal : 14090240 bytes上面的例子表明,实例内存只用到了大约14MB那么还有很大一部分内存哪去了?答案是instance_memory 包含了 database_memory 总和的限制。2. 数据库共享内存每个数据库有一个数据库共享内存集。数据库共享内存是在数据库被激活或者第一次被连接上的时候分配的,在数据库处于非激活状态时释放(如果数据库先前是处于激活状态)或者最后一个连接被断开的时候释放。这种内存用于数据库级的
11、任务,例如备份/恢复、锁定和 SQL的执行。完整的绿色方框意味着,在数据库启动的时候,该内存池是完全分配的,否则,就只分配部分的内存。获取配置命令:db2 get db cfg for TSOclt2-inst3perf234 - get db cfg for tscself tuning memory(SLF_tuning_memj = onsize of database shared memory f4kb) (DataeasEjviEmorY3 - automatic(7509&0) Database memory threshold(db_mem_thresh)-10Max stor
12、age for lock list (4k.b)Clocklist)-automatic(6208)percent, of lock lists per application(maxlocks)=automatic(97)package cache size (4kb)(pckcachesz)=automati匚12555)Eort heap thres for wh日sorts(4kb)(5HEAPTHRE5_5HR)=automatic(41473)Sort list heap (4kb)Cortheap)=automatic(S294)Database heap (4kB) catal
13、og cache size (4KB)Log buffer size (4Ke) util ifies heap size C4kb Buffer pool size (pages)SQL statement heap (4KB) DefaulT applicarl on heap (4KB) Appl -i cat t on Memory St ze 4kb) statist!C5 heap size (4kb)(deheap) = AUTOMATIC(5540) fCATALOGCACH E_SZ) = 300 CLOGBUFSZ) = 256 CUTIL_HEAP_5Z) - 73933
14、 (BUFFPAGE) - 1000 STMTHEAP)- AUTOMATIC(4096)Cappl he Apsz) = autoihatic(256) (APPLJEMORY) = AUTOMATIC(40000) CSTAT_HEAP_5Z ) = AUTOMATIC (4304)1) 主 缓冲池(M AIN BUFFE RPOOLS)数据库缓冲池通常是数据库共享内存中最大的一块内存。DB2在其中操纵所有常规数据和索引数据。一个数据库必须至少有一个缓冲池,并且可以有多个缓冲池,这要视工作负载的特征、数据库中使用的数据库页面大小等因素而定。例如,页面大小为8KB的表空间只能使用页面大小为
15、8KB的缓冲池。查看主缓冲池的大小有多少,可以发岀:SELECT * FROM SYSCAT.BUFFERPOOLS;DPhlAME BUFFERFOOLD DDPGtlAME NPA. FAGESIZE ESTORE flUMBlJOCKPAGc:S OLOCkSGE FKfF.MEPVARCHAft (LIB)rVTTGB?VARC-lAS (12rJTTCER :HAS iriTOCRVARCHAft (123)BMDEFAULTBPL NULL|du(1 HULL0PJ2K+ MULL232766 ri00 HULL:DMDtrAU T32kJ MULL50003276G ri00 H
16、ULL8UFFP 32K2 BMDEF4U TGRDW11OD01J327M n00 BMDEFAbLTGROuHNPAGE列代表页数量,PAGESIZE为页大小。NPAGE=-2代表缓冲池大小是自动调整的,非固定。注:NPAGE=-1,表示缓冲池大小由db cfg 的buffer_page 大小控制,默认是 1000页。如何创建自动调整内存大小的缓冲池:create bufferpool BP4K immediate size 100000 automatic pagesize 4K2)隐藏的缓冲池当数据库启动时,要分配4个页宽分别为4K、8K、16K和32K的小型缓冲池。这些缓冲池是“隐藏
17、”的,因为在系统编目中看不到它们(通过 SELECT * FROM SYSCAT.BUFFERPOOLS显示不岀)。3)UTIL_HEAP_SZ指示可由BACKUP RESTORE LOAD实用程序同时使用的内存量。4)PCKCACHE SZn丿a 11jHan jbimij i 11 j iu i i 用于高速缓存数据库上的静态和动态SQL以及Xquery语句的部分。5)DBHE AP包含表、索引、表空间和缓冲池的控制块信息,还包括日志缓冲区的空间(logbufsz)和实用程序使用的临时内存。因此,堆大小将取决于许多变量。6)LOGBUFSZ在将日志记录写入磁盘之前,此参数允许您指定用作这些
18、记录的缓冲区的数据库堆大小(由dbheap参数定义)。当发生下列一种情况时会将日志记录写入磁盘:一个事务落实或一组事务落实,由min commit配置参数定义日志缓冲区已满发生了某些其他内部数据库管理器事件此参数也必须小于或等于dbheap参数。缓冲日志记录将使日志记录文件I/O更有效,因为将日志记录写入磁盘的频率越低,每次可写入的日志记录就越多。可以使用数据库系统监视器来确定将多少日志缓冲区空间用于特定事务(或工作单元)。7) CATALOGCACHE _SZ此参数指定目录高速缓存可以使用的数据库堆中的最大空间(以页计)。高速缓存各个数据库分区中的目录信息允许数据库管理器不需要访问系统目录(
19、或分区数 据库环境中的目录节点)即可获取先前检测的信息,从而降低其内部开销。使用目录高速 缓存可以帮助提高下列各项的整体性能:绑定程序包以及编译 SQL和Xquery语句涉及检查数据库级别特权、例程特权、全局变量特权和角色权限的操作 连接至分区数据库环境中的非目录节点的应用程序8) LOCKLI ST此参数指示分配给锁定列表的内存量。每个数据库都有一个锁定列表,锁定列表包含由同 时连接至数据库的所有应用程序挂起的锁定。在所有平台上,每个锁定需要128或256字节的锁定列表,这取决于是否对该对象挂起了其他锁定:对于未挂起其他锁定的对象,挂起一个锁定需要256个字节。对于存在挂起的锁定的对象,记录
20、一个锁定需要128个字节。一旦锁定列表已满,性能就可能会降低,因为锁定升级将生成更多的表锁定和更少的行锁 定,从而降低数据库中共享对象的并行性。9) 排序堆 的阈值 (SHE APTHR ES, SHE APT HR ES_SHR)I !I J JBBMB J 11 iMB U J 11 ! J JBII B BOB U a JJ K M II J il JBJ H J 11 J H B MBBM J J lm J如果没有索引满足所取的行的要求顺序,或者优化器断定排序的代价低于索引扫描,那么就需要进行排序。DB2中有两种排序,一种是私有排序,一种是共享排序。私有排序发生在代理的私有代理内存中,
21、而共享排序发生在数据库的数据库共享内存中。对于私有排序,数据库管理器配置参数sheapthres指定了私有排序在任何时刻可以消耗的内存总量在实例范围内的软限制。如果一个实例总共消耗的私有排序内存达到了这一限制,那么为额外传入的私有排序请求所分配的内存将大大减少。如果启用了内部分区并行性(in tra-partition那么当 DB2断定共享排序比私有排序更有效时,parallelism)或者集中器 (concentrator),DB2就会选择执行共享排序。如果执行共享用于共享排序的最大内存量是排序,那么就会在数据库共享内存中分配用于这种排序的排序堆。由sheapthres_shr数据库参数指定
22、的。这是对共享排序在任何时刻可以消耗的内存总量在数据库范围内的硬限制。当达到这个限制时,请求排序的应用程序将收到错误SQL0955 (rc2)之后,在共享内存总消耗量回落到低于由sheapthres_shr指定的限制之前,任何共享排序内存的请求都得不到允许。10)查看内存大小:查看数据库详细配置信息:db2i nst3pef233 $ db2 conn ect to TSOJX user tso usi ng tso db2i nst3pef233 $ db2 get db cfg for TSOJX show detail on (alliv) AUTQFAT1G T694 3W) -10
23、AirTOHATIC(111658)-AIUTUFAT1C1.98)-1$) AUTOMATIC f 8031)-AirraKATic C1606)AUTQFATIG C694 狛心 10AIUTOATIC 1H 659 ALTOFATICtgS) AVT0WATlCp2?L5) AVTWATI 匚) ALTDFATICSelf tLininq nsricry 5ELF_TL NI NG_MEvi)size of daidb曲电 shared memory (4ke) (databaseehory) e eraory thresholdCob_tem_thresh)Max stQrg for
24、lock li*t (4KB)CLOCKLIST)percent. of lock lists per appllcailixiCmaxlocksjpackage cache size (4kb5sort Map thrw for shared(4kb) (sheapthresjhrJSOTL I tSC hCBp (4KE)C5ORTTiEAiPJWtMb舶已 heap Ckb)cdialog cache size (4kb3Log buffer size &IJti 1 iti es heap s-ize (4KB) BtfTIFar pool size (pages)SQLihep (4
25、pl Icdlfofl MefiKM-y(4kB)stTisric heiip zf (4KB)(tATALDGCjAt H_5ZJ CLOGBUFSZ) (UriL_H-EAP_5Zj CfiUFFlPA&L) C51MTHEAP) CAPPLHEAFSZJ Cappijlmidryj (5TAT_kf ap_S?)=AUT0H/ATICC2S2?)-260-39=124911 XOOD-AUT0FiTICC*O96)=ALTOMATTC;2Sb) AUTQPTTCIB*)AUTOMATIC(227) 2frD99124911IMOAUTOMATIC (4096)ALTOWATIC 2 坯
26、jAlLlUkAFI匸 ClOOlfl)ALTQF4TJC(4ia4)使用db2mtrk工具显示当前使用的内存量:db2mtrk -i -d -vdb2inst3(ftperf233 5 dbZntrk -d -vTracking Hemary on: 2015/02r13 at 11:12:12Memory for database: tsojxBackup/Restore/ucil Hea.p is of size 65536 bytes Package cache is of size 158S7078i byres other Memory is of19608 bytescatalo
27、g cache Heap iof si7c 136256 bytes Buffer BufferB uff er E uff er B uff er Guff B uff er Buffer Shared Lock Manager Heap i Database neap n sHeap Heap Heap11旳 Heapneap Heap Heap Heap Heap 忡eapHwp Heap 忡eap Heap nep Hccip Mep Heap HepPool pool pool pool Pool Pool Pool Pool sortHeap Heap 忡h电dp Heap Hap
28、 Hep Heap HeapJjl size size size S12G13357624 b IM 9 54112 I 129 5 8C 544 I S2S860S64 I is Of(3) is of(2) is of(1) is of(System 32k buffer pool)(SySrtem 16k buffer pool J(5ysneni 8k buffer pool) is of size 4587i2 byr (System 4k buffer poolis &f size* APP1APPApplApplicati onAppl i cafi anAppV APK App
29、l APP1 Appl ,Appl-icari onApplicafi tjnAppllcafi onApplicafi on Applicati onAppUcafi on Appllcarlon Applicafi on AppllcarlanAppUcati anAppllcarlanApplncati on Appll匚on Applicati on ApplicationApplicati(?ns shared h它孔p T0T31: 1728053248 byt郎i cati onicati oncati oni cati an i cati on i c?n Icati onon
30、 Icati onyresbytes bytes bytes is of size 851968 bytes is of589S24 bytes-J-a、二一殆(System 4k buffer pool) is si2e 393216 bytes Is of Size 2293760 bytesis of si4757S5056 bvtes of 5-i ze 3S2O748S byxis of si ze 13(2977 (16665 i s ofC9491 S65) -AUTQHAriCOHAUTQFATHC 花 w 转Q IDALTOKATIC (111殆町ALTOKATIC f 9f
31、l) il IGU JC. L. - e size 斗eLog birfer 51? (4k6)IJti 1 iti es heap size (4*) usuffer pT size (pages)SQlIhfp (4*C0)Defaullt: aplication heiap (5-KE) Apf? ItdL foci Meniory 島ize (4kU) sraTisTic曰砂fDEHEAPj (CAT/M-OGCjAt H_5ZJ CLOGBUFSZ) CVriL_ttEAP_53:J CflUFFPMEj CSTOTHEAP) CAPPLHEAPSZJ -IF L 7 (STAT_H
32、f4PS7)=autoikatic(2S2?) -260-99=124&11 XOOD AUT0K4TICC4O96)-ALTaMATICf256)-AiriWATlCHBOO) AUTQkTTCIB*)AUTOMATIC(22?)26099124911IMOAUTOMATIC (4096)ALTOkATIC 2 autwatic cooie)默认配置如下:注:DB_MEM_THRES参数 此数据库配置参数表示数据库管理器允许的已落实但当前未使用的数据库共享内存最大百分比,达到此百分比后, 数据库管理器将开始释放已落实的内存页以将它们返回给操作系统。可接受的值是整数0 (立即释放任何未使用的数
33、据库共享内存)到100 (永远不释放任何未使用的数据库共享内存)。缺省值是10 (仅当当前未使用的数据库共享内存超过10%时,才释放那些内存)。四、优化建议1.使用合适的缓冲池大型缓冲池具有下列优点:? 它们使频繁被请求的数据页能够保留在缓冲池中,从而提高访问速度。较少的I/O操作可以减少I/O争用情况,从而缩短响应时间并减少I/O操作所需的处理器资源。?它们提供了在保持响应时间不变的前提下实现更高事务处理速率的机会。?它们能够防止频繁使用的磁盘存储设备(例如用于存储目录表以及频繁引用的用户表和索引的设备)发生I/O争用情况。由于包含临时表空间的磁盘存储设备上的I/O争用情况减少,因此查询所需
34、执行的排序操作也能受益。多个缓冲池的优点:如果系统中存在下列任何一种情况,那么应该只使用一个缓冲池:? 缓冲池总空间量小于 10000个4 KB页? 找不到具备该应用程序知识来执行专门调试的人员? 您正在测试系统中工作 在所有其他情况下,请考虑使用多个缓冲池,原因如下:? 可以将临时表空间指定到独立的缓冲池,以便提高需要临时存储器的查询(尤其是执行大量 排序操作的查询)的性能。? 如果数据必须由很多小型的更新事务应用程序反复并快速地访问,那么请考虑将包含该数据 的表空间指定到独立的缓冲池。如果此缓冲池的大小合适,那么它的页被找到的机会将更大, 这有利于缩短响应时间和降低事务成本。? 可以将数据
35、隔离到不同的缓冲池中,以利于特定的应用程序、数据和索引。例如,您可能想 将频繁更新的表和索引放在单独的缓冲池中,以便与那些频繁查询但很少更新的表和索引分 开。? 对于很少使用的应用程序(尤其是需要对一个很大的表非常随机地进行访问的应用程序)所 访问的数据,可使用较小的缓冲池。在此情况下,不需要使数据保存在缓冲池中的时间超岀 单个查询的运行时间。最好为此类数据保留一个小缓冲池,以便腾出额外的内存供其他缓冲 池使用。将数据分到不同的缓冲池之后, 可以根据统计信息和记帐跟踪来生成良好并且成本相对较低的性能诊? 一个大型的缓冲池,用于那些包含经常要访问的表的表空间。? 一个小型的缓冲池,用于那些包含访
36、问不多的表、随机访问的表或顺序访问的表的表空间。对于DMS只包含LOB数据的表空间,可以为其分配任何缓冲池, 因为LOB不占用缓冲池空间。2.数据预取1) 顺序预取使用单一 I/O操作将多个连续的页读入缓冲池可以大大降低应用程序开销。当数据库管理器确定顺序I/O合适并且预取操作有助于提高性能时,预取操作就会启动。对于表扫 描和表排序这类情况,数据库管理器将自动选择顺序预取。以下示例(可能要求执行表扫描)适合于 顺序预取:SELECT NAME FROM EMPLOYEE顺序检测有时,并不能立即确定顺序预取能否提高性能。在此类情况下,数据库管理器可以监视I/O并在顺序页读操作发生时激活预取。这种
37、类型的顺序预取称为 顺序检测,并且同时适用于索引页和数据页。 您可以使用seqdetect数据库配置参数来控制数据库管理器是否执行顺序检测。例如,如果启用顺序检测,那么顺序预取有可能使以下SQL语句受益:SELECT NAME FROM EMPLOYEE WHERE EMPNO BETWEEN 100 AND 3000在本示例中,优化器可能已开始使用基于 EMPNO列的索引来扫描表。如果该表相对于此索引而言高 度集群,那么数据页读操作将几乎按顺序进行,并且预取有助于提高性能。同样,如果必须检查许多 索引页,并且数据库管理器检测到正在按顺序读取索引页,那么有可能进行索引页预取。表空间的PREFE
38、TCHSIZ选项的含义CREATE TABLESPACE ALTER TABLESPACE句的 PREFETCHSIZ子句允许您指定执行数据预取时将 从表空间中读取的预取页数。您指定的值(或者“AUTOMATIC将存储在 SYSCAT.TABLESPAC目录视图的 PREFETCHSIZ列中。您最好将PREFETCHSIZ值明确设置为表空间容器数、每个容器下的物理磁盘数(如果使用了RAID设备的话)与表空间的EXTENTSIZE!(数据库管理器在使用另一个容器前写入容器的页数)的乘积。例如,如果扩展数据块大小为 16页,并且表空间包含两个容器,那么可以将预取大小设置为 32页。 如果每个容器有
39、5个物理磁盘,那么可以将预取大小设置为160页。数据库管理器将监视缓冲池的使用情况,以确保预取不会从缓冲池中除去另一个工作单元所需的页。为了避免引起问题,数据库管理器可将预取的页数限制为小于您对表空间指定的数目。预取大小可能会显著影响性能, 对于大型表扫描而言尤其如此。 请使用数据库系统监视器和其他系统 监视工具来帮助您调整表空间的预取大小。您可以收集有关是否存在下列情况的信息:查询等待I/O (通过使用适用于操作系统的监视工具来检查这种情况)正在进行预取(通过查看数据库系统监视器提供的 pool_async_data_reads (缓冲池异步数据读取) 数据元素来检查这种情况)如果查询预取数
40、据时发生I/O等待情况,那么请增大 PREFETCHSIZ的值。如果预取程序不是这些 I/O等待情况的原因,那么增大 PREFETCHSIZ值对提高查询性能没有帮助。对于所有类型的预取而言,如果预取大小是表空间的扩展数据块大小的倍数,并且这些扩展数据块在多个不同的容器中,那么可以并行地执行多个I/O操作。为了提高性能,请将容器配置为使用多个不同的物理设备。2) 列表预取I ! J li ! J JBII U BOB a J E MS M a J il JIB MHBM il J 11 ilJ H MBBM J IMMBI J J列表预取(即列表顺序预取)是一种高效访问数据页的方法,即使那些数据
41、页不连续亦如此。列表预取功能可以与单索引访问或多索引访问结合使用。如果优化器使用索引来访问行,那么它可将数据页读操作推迟到从该索引中获取所有行标识(RID)之后进行。例如,优化器可以执行索引扫描以确定要检索的行和数据页。INDEX 1X1: NAME ASC,DEPT ASC,MGR DESC,SALARY DESC,YEARS ASC然后,使用以下搜索条件:WHERE NAME BETWEEN A and T如果数据未根据此索引进行集群,那么列表预取过程将包括对索引扫描操作所获取的RID列表进行排序的步骤。3. 调整排序性能由于查询通常需要经过排序或分组的结果,因此正确地配置排序堆对于良好的
42、查询性能而言至关重要。在下列情况下,需要进行排序:不存在能够满足所请求顺序的索引(例如,使用了ORDER BY 子句的SELECT语句)? 存在索引,但执行排序比使用索引更有效? 创建索引? 删除索引,这将导致对索引页号进行排序影响排序的元素下列因素将影响排序性能:? 下列配置参数的设置:o 排序堆大小( sortheap ),此参数指定用于执行每次排序的内存量o 排序堆阈值( sheapthres )和共享排序的排序堆阈值( sheapthres_shr ),这些 参数控制整个实例中可用于执行排序的内存总量? 工作负载中需要执行大量排序操作的语句数? 是否存在有助于避免执行不必要的排序操作的
43、索引? 使用了未最大程度减少排序需求的应用程序逻辑? 并行排序,这可以提高排序性能,但仅当语句使用分区内并行性时才可行? 排序是否 溢 出 。如果经过排序的数据在排序堆(这是每次执行排序时分配的内存块)中放 不下,那么数据将溢出到数据库所拥有的临时表中。? 排序结果是否 管 道 式 结果。如果经过排序的数据可直接返回,而不需要一个临时表来存储 经过排序的列表,那么这是管道式排序。对于管道式排序,在应用程序关闭与排序相关联的游标之前,排序堆不会被释放。在游标关 闭之前,管道式排序可以持续耗用内存。尽管可以完全在排序内存中执行排序,但这可能会导致过度进行页交换。在这种情况下,将失去大型 排序堆的优势。因此,每当您调整排序配置参数时,应该使用操作系统监视器来跟踪系统页面调度方 面的任何变化。用于管理排序性能的技术确定排序对性能产生重大影响的特定应用程序和语句:1. 在应用程序级别和语句级别设置事件监视器,以帮助您确定排序总时间最长的应用程序。2. 对于其中的每个应用程序,查找 排序 总 时间最长的语句。您也可以搜索说明表,以确定执行了排序操作的查询。3. 使用这些语句作为设计顾问程序的输入,该程序将标识索引并可创建索引以减少排序需求。 可以使用自调整内存管理器( STMM )自动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年延边职业技术学院单招职业适应性测试模拟试题及答案解析
- 中医理疗对慢性肺气肿的改善
- 心理创伤与康复护理
- 免疫第三章免疫器官
- 慢性疼痛管理方法探索
- 医疗机构成本控制与预算优化
- 医学伦理与法律法规研究进展
- 内分泌系统疾病护理与管理
- 2026北京房山区教育委员会所属事业单位招聘专业技术人员120人(一)备考笔试题库及答案解析
- 2025海南航空审计监察负责人岗位招聘1人备考笔试题库及答案解析
- 《淳安县养老服务设施布局专项规划(2022-2035年)》
- 开票税点自动计算器
- DZ/T 0426-2023 固体矿产地质调查规范(1:50000)(正式版)
- 加氢裂化装置技术问答
- 广东省东莞市东华中学2023-2024学年数学九上期末考试试题含解析
- 麻醉科临床技术操作规范2023版
- 消防系统瘫痪应急处置方案
- 《大数的认识》复习教学设计
- GB/T 11417.5-2012眼科光学接触镜第5部分:光学性能试验方法
- 《寝室夜话》(4人)年会晚会搞笑小品剧本台词
- 开放大学土木工程力学(本)模拟题(1-3)答案
评论
0/150
提交评论