《数据库程序员面试分模拟题8.docx》由会员分享,可在线阅读,更多相关《数据库程序员面试分模拟题8.docx(16页珍藏版)》请在课桌文档上搜索。
1、数据库程序员面试分模拟题8简答题1. 如何确定MySQ1.是否处于运行状态?如何开启MySQ1.服务?正确答案:分为1.inux和Windows来讨论。1)在1.inUX下启动MySQ1.服务:(江南博哥)Irooigtesdb,pJaViamysqlSUmSERRORItmsqIisnotf三ingInX)电屿曲FWVkeInySqIstmStamttmyx1I_SUCCESS!roottcsd)办SaviCCmysqlSQIuSSUCCESS!11yslMning(WI)rortfo午PJ-crepIn)S)Inxx2938IO1930,0CKMttOO恤处.tabinmyjqldsife
2、TjttfiKvarihinysq)-PiHk=ys5tttdb.pidmysqlJWI29384319:30网)OlMo:09toSbininysqld-而o=diQdirwWmysql-plucintfri,MHbysqa-USElysqlTogtrra=Hr现却1血).6-pid-filr=r,ar.1ibmysqlits41.pdroot30%234201%OP(So0000X0gripmyl在1.inUX下,也可以通过netstat-nipIgrepInySqId”来查看MySQ1.服务的状态:ErootQtestdb/netstat-nipgrepmysqldtcp00:3306:
3、*1.ISTEN13853/mysqldunix2CCSTREM1.ISTENING3851113853/mysqldvarlibmysql57mysql.sock也可以使用mysqld_safe命令启动MySQ1.数据库,通过mysqladmin来关闭MySQ1.数据库:Irootejtdb,l*n)5qtanUrOeCpIhr如ItowDm)5lid11三NimingUsi球aPMsWOnian&axnnmJ辰i11rtxeOBbeMCUre.roo(gtdb牛帅qld_sfc&I4rooic5idb胪2017-Ce-23TlftQ2;38.?MWmysqld_safe1.oggingu1
4、,s5711nsl5719.llog11yjqldi3g,.2017杂-2JTIw)123872M29ZmysqldsafcSt三tg115qld(boncewithduawsftcsHafIIhy靖炯招67l9fdw在数据库启动的时候可以加上从指定参数文件进行启动,如下:mysqldsafe-defaults-file=etcf&2)在Windows下启动MySQ1.服务:I):MySQ1.MySQ1.-advanccd-5.6.21-win32binnetstartmysqlMySQ1.服务正在启动.MySQ1.服务已经启动成功。进入WindOWS的服务可以看到:MySQ1.US勺3SSF
5、tt三三BS三MrooSharePcntWo*kxcAudH-手动McrotohSowaBACKUPINCREMENTA1.1.EVE1.ODATABASE;02)执行差异增量备份的命令为RMANBACKUPINCREMEVrA1.1.EVE1.1DATABASE:1,3)执行累积增量备份的命令为RMANBACKuPINCREMENTA1.1.EVE1.1CUMU1.ATIVEDATABASE;。可以对处于NOARCHIVE1.OG模式的数据库执行任何类型的备份(完全或增量)。当然,前提条件是数据库处于未打开状态。需要注意的是,数据库只能恢复到上次备份时的状态。只有当数据库处于AReHIVE1
6、.OG模式时,才可以将其恢复到上次提交事务处理时的状态。考点RMAN4. FORUPDATE和FORUPDATEOF的区别是什么?正确答案:SE1.ECT.FORUPDATE语句的语法如下:SE1.ECT.FORUPDATEOFcolumn_listWAITnNOWITSKIP1.OCKED;其中,这个OF广句在涉及多个表前,具有较大作用。若不使用OF指定锁定的表的列,则所有表的相关行均被锁定。若在OF中指定了需修改的列,则只有与这些列相关的表的行才会被锁定。WAIT子句指定等待其他用户释放锁的秒数,以防止无限期的等待。“使用FORUPDATEWAIT子句的优点如下:1)防止无限期地等待被锁定
7、的行。2)允许应用程序中对锁的等待时间进行更多的控制。3)对于交互式应用程序非常有用,因为这些用户不能等待不确定的时间。4)若使用了SKlP1.OCKED,则可以越过锁定的行,不会报告由Waitn引发的“资源忙”异常报告。在OraCIeIOg之前,SE1.ECT.FORUPDATE获取的是2级TM锁,而从OracleIOg开始,SE1.ECT.FORUPDATE获取的是3级TM锁。考点锁5. 如何删除表中重任的记录?正确答案:在平时工作中可能会遇到这种情况,当试图对表中的某一列或几列创建唯一索引时,系统提示ORAOl452:不能创建唯一索引,发现重复记录。这个时候只能创建普通索引或者删除重复记
8、录后再创建唯一索引。重复的数据可能有这样两种情况:第一种是表中只有某些字段一样,第二种是两行记录完全一样。删除重复记录后的结果也分为两种,第一种是重复的记录全部删除,第:种是重复的记录只保留最新的条记录。在一般业务中,第二种的情况较多。1 .删除重复记录的方法原理在OraCIe中,每条记录都有RONID,R(MID在整个数据库中是唯一的,ROID确定了每条记录是在OrHClC中的哪一个数据文件、块、行上。在重复的记录中,可能所有列上的内容都相同,但ROWlD不会相同,所以,只要保留市曳记录中那些具有最大的ROWID的记录,其余的全部删除。2 .删除重复记录的方法若想要删除部分字段重复的数据,则
9、使用卜面语句进行删除,卜.面的语句是删除表中字段1和字段2重复的数据:DE1.ETEFROM表名WHERE(字段1,字段2)IN(SE1.EeT字段1,字段2FROM表名GROUPBY字段1,字段2HAVINGCOUNT(I)1);也可以利用临时表的方式,先将查询到的重复的数据插入一个临时表中,然后进行删除,这样,执行删除的时候就不用再进行一次查询了。代码如下:CREATETAB1.E临时表AS(SE1.ECT字段1,字段2,COUNT(*)FROM表名GROUPBY字段1,字段2HAVINGCOUNT(*)1):上面这句话的功能是建立临时表,并将查询到的数据插入其中。有了上面的执行结果,下面
10、就可以进行删除操作了:DE1.ETEFROM表名AWHERE(字段1,字段2)IN(SE1.ECT字段1,字段2FROM临时表);假如想保留重夏数据中最新的一条记录,应该怎么做呢?可以利用ROWTD,保留重复数据中ROWID最大的一条记录即可:DE1.ETEFROMTAB1.ENAMEWHEREROWIDNOTIN(SE1.ECTMAX(ROWID)FROMTAB1.ENAMEDGROUPBYD.CO1.l,D.C01.2);重复数据删除技术可以提供更大的备份容量,实现更长时间的数据保留,还能实现备份数据的持续验证,提高数据恢复服务水平,方便实现数据容灾等。考点高级操作6. 如何填充V$SES
11、SlON的C1.1ENT_INTO列和CUENIDENTIFIER列?正确答案:Vssession的client_info列和CUENidentifier列往往为空,所以需要写登录触发器,然后在触破器中使用如下的力储过程记录这2列的值:BEGINDBMSAPP1.ICATIONINFO.SETC1.IENTINFO(SYSCONTEXT(,USERENV,IFADDRESS);DBMS_SESSION.SET_IDENTIFIER(SYS_CONTEXT(,USERENVt,HOST);END;考点系统包7. 在Undo表空间数据文件丢失的情况下如何恢复?正确答案:恢熨大约可以分为3种情况:有
12、备份,这种情况下直接采用备份的文件进行恢熨即可;无备份但是有完整的归档文件存在,这种情况下可以使用命令“A1.TERDATABASECREATEDATAFl1.E文件号AS,u01apporacleoradatalhrdbundotbs01.dbfsize50m;,来创建丢失的Undo文件,然后使用“RECOVERDATAFI1.E文件号;”进行数据库文件恢复即可;无备份,归档文件丢失,在这种情况F的恢复比较复杂。首先应该切换Undo表空间到一个新建的Undo表空间中,并设置原有表空间的管理模式为手动管理模式,然后将隐含参数“_0FF1.INE_Ro1.1.BAa1.SEGMENTS”设置为T
13、RUE,些关键性的命令如下:A1.TERSYSTEMSETUNDo.TAB1.ESPACE=UNDoTBS2SCOPE=S1I1.E;A1.TERSYSTEMSETUND(1.MANAGEMENT=MANUA1.SCOPE=SPFI1.E;A1.TERSYSTEMSErj)FF1.INE_RO1.1.BAeK_SEGMENTS=TRUESeOPD=SPFI1.E;A1.TERSYSTEMSETICORRUPTED_RO1.1.BACK_SEGMENTS=_SYSSMU】$,_SYSSMU2$SCOPE=SPFI1.E;CREATEUNDOTAB1.ESPACEUNDOTBS1DATAFI1.E
14、u03apporacteoradataora1024gundo1.bsO1.dbf,SIZE50MAUTOEXTENDON;A1.TERSYSTEMSETUNDo.TAB1.ESPACE=UNDOTESISCOPE=SPFI1.E;A1.TERSYSTEMSETUNDOtNAGEMENT=AUTOSCOPE=SPFI1.E;A1.TERSYSTEMRESETOFF1.INERO1.1.BACKSEGMENTSSCOPE=SP111.ESID=*,;A1.TERSYSTEMRESET*_CORRUPTED_RO1.1.BACK_SEGMENTS*SCOPE=SPFl1.ESID=;考点RMAN8
15、. 若在使用“P1.SQ1.Developer软件编译存储过程、函数等对象时无响应,则可能的原因是什么?正确答案:在编译某不存储过程的时候,OraCIe会自动给这个对象加上DD1.锁,同时也会对这个存储过程所引用的对象加锁。在数据库的开发过程中,经常碰到包、存储过程、函数无法编译或使用“P1.SQ1.DeveIoperw这款软件进行编译时会导致该软件无法响应的问题,这个时候可以通过查询DBDD1.1.OCKS或V$ACCESS来获取锁的相关信息。考点锁9. MySQ1.的分区表是什么?如何查询MySQ1.是否支持分区?正确答案:表分区是指根据一定规则,将数据库中的-张表分解成多个更小的、容易管
16、理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成,每个分区都是一个独立的对象。分区有利于管理大表,体现了“分而治之”的理念。一个表最多支持1024个分区。在MySQ1.5.6.1之前可以通过命令showvariableslike飞havepartitioning%,来查看MySQ1.是否支持分区。若havepartintioning的值为YES,则表示支持分区。从MySQ1.5.6.1开始,该参数已经被去掉了,而是用SHOWP1.UGlNS来代替。若有Partition行且STATUS列的值为AcnVE,则表示支持分区,如下:rwoSldbSHOWP1.UGINS;I5Stat
17、usI)一门一一,:1.ibrair!1.iceisepartitionACTnEISKRAGEDCPiENlll)”F三IEI三,一一,一-.此外,也可以使用表IMoRVATON_SCHEMA.P1.UGINS来查询,如下:- SE1.ECTP1.UG”AMEASNAME- P1.1.GIN.VERSIONASV三ION.- PtlXiKSTAIUSASSTATUS-Frominforxwiowematluginsa- WHEREP1.UGlNjYPE=三)RAGEENGINE- ANDAjJ1.I;GNjAME=卿xf;XAME三I(KSTAKSpartition1.0ACTDE10. 什
18、么是物理读和逻辑读?正确答案:当会话所需要的数据在内存的BUfferCaChe中找不到,此时就要去磁盘上的数据文件中读取,这样就产生了物理读(PhySiCaIReads),即物理读是从磁盘文件把需要的数据读入内存(SGA中的BufferCache)逻辑读(1.ogiCalReadS)衣示CPU需要的数据在内存中被找到,数据被直接从内存中传入CPU执行,即逻辑读是从内存中读取。在OraCle中,逻辑读=即时读(又叫当前读,CurrentRead)+一致性读(COnSiStentRead):在“SETAUTOTRACEON”中,逻辑读=dbblockgets(当前读)+consistentgets
19、(一致性读)。即时读就是读取数据块当前的最新数据。任何时候在BUfferCaChC中都只有一份当前数据块。即时读通常发生在对数据进行修改、删除操作时。这时,后台进程会给相关数据加上行级锁,并且标识数据为“脏数据”。需要注意的是,物理读过大表现为磁盘1/0较高,逻辑读过大表现为CPU使用率过高。考点SQ1.优化11. SESSIONS和PROCESSES有什么关系?正确答案:在数据库安装完成后,常常需要设置SESSloNS和PROCESSES的大小。其中,SESSIONS指定了一个实例中允许的会话数,即能同时登录到数据库的并发用户数;PROCESSES指定了一个实例在操作系统级别能同时运行的进程
20、数,包括后台进程与服务器进程。由于一个后台进程可能同时对应多个会话,所以,通常SESSIONS的值大于PROCESSES的值。通过查找官方文档,可以知道SESSloS参数的值在OraClCIOg和IIg中是不同的,见下表。属性OraCIeIOgOrac1e1lgR2参数值的类型IntegerInteger默认值Derived:(1.1*PROCESSES)+5Derived:(1.5*PR0CESSES)+22鬣可以动态否否范围1-2311216(即1-65536)注:在OraCleIlgRl中,该参数值和IOg足一样的,修改语句为“A1.TERSYSTEMSETPROCESSESISESSI
21、0NS=200SCOPE=SPFI1.E;w。由于SESSIONS的值是根据PRoCESSES的值计算得到的,所以,一般情况下只需要设置PROCESSES的值即可。在OraCIellgR2以下版本中,SESSlONS大小的计算公式为(1.l*PR0CESSES)+5:在OraCleUgR2中,SESSloNS大小的计算公式为(1.5*PR0CESSES)+22.若SESSlONS的当前值比计算值大,则SESSIoNS的值可能保持不变;若SESSlONS的当前值比计算值小,则SESSlONS取计算值,即SESSIoNS的值总是取MAX(当前值,计算值),但是这个也不是绝对的。当数据库连接的并发用
22、户已经达到SESSIONS的值时,又有新会话连接进来,就会报错:“0RA-00018,maximumnumberofsessionsexceeded”。当Oracle需要启动新的PROCESS,而当前的进程数又已经达到PROCESSES参数时,就会报错:0RA-00020:maximumnumberofprocesses(2048)exceeded,o如果数据库上连接被占用完,当新的连接过来时,那么就会在客户端产生0ORA-12519,TNS:noappropriateservicehandlerfoundw的报错信息。考点会话12. RAC环境中的SCANIP的作用是什么?正确答案:从Ora
23、CIellgR2RAC开始引入SCAN(SingIeClientAccessName,集群的单客户端访问名称)IP的概念,相当于在客户端和数据库之间增加一层虚拟的网络服务层,即是SCANIP和SCAPIP1.ISTENER数据文件(DataFiles)、联机Redo口志文件(OnIineRedo1.ogFiles)参数文件(ParameterFile)、归档日志文件(ArChiVe1.ogFiIeS)和密码文件(PaSSWOrdFiIe)组成。D控制文件:包含维护和验证数据库完整性的必要信息,其中记录r数据库的物理结构。例如,控制文件用于识别数据文件和Redo日志文件。每个Oracle数据库都
24、有相应的控制文件,一个数据库至少需要一个控制文件,控制文件属于二进制文件。控制文件的命名格式通常为ctr*Sl。2)数据文件:存储数据的文件。3)联机Redo日志文件:包含对数据库所做的更改记录,一个数据库至少需要两组联机Redo日志文件。联机Redo日志文件也叫布线重做日志文件或联机重做口志文件。4)参数文件:定义Oracle实例的特性,分为SPFI1.E和PFI1.E两种类型的参数文件。5)归档文件:归档文件是联机Red。R志文件的脱机副本,这些归档文件对于介质恢复很重要。6)密码文件:认证哪些用户有权限启动和关闭Oracle实例。Oracle中逻辑结构包括表空间(TAB1.ESPACE)
25、、段(SEGMENT).I(EXTENT)和块(B1.OCK)。数据库由表空间构成,而表空间乂由段构成,段又由区构成,区又由Oracle块构成,即块T区一段表空间T数据库。考点物理结构15. 在MySQ1.中,如何查看表的详细信息,例如,存储引擎、行数、更新时间等?正确答案:可以使用SHOwTAB1.ESTATUS获取表的详细信息,语法为SHOWTAB1.ESTTUSFROMINdb_name1.IKEpattern*jWHEREexpr例如:(Dshowtablestatusfromdbname查询dbname数据库里所有表的信息(2)showtablestatusfromdbnamelik
26、e,lhruse,G;查询dbname里Ihruse表的信息(3)showtablestatusfromdb_namelikeuc%查询db_name数据库里表名以UC开头的表的信息下面的SQ1.语句查询/mysql数据库中的user表的详细信息:其中,每列的含义见下表。列名解释Name表名Engine表的存储引擎,在MySQ1.4.1.2之前,该列的名字为TyPeVersion表的.frm文件的版本号行存储格式(FiXed,Dynamic,Compressed,Redundant,Compact)0对于MyISAM引擎,可以是DynalmeRowformatFiXed或COmPreSSed。
27、动态行的行长度nJ变,例如VarChar或BIob类型字段。固定行是指行长度不变,例如Char和Integer类型字段行的数目。对于非事务性表,这个值是精确的,对于事务性引Rows擎,这个值通常是估算的。例如MylSA此存储精确的数目。对于其他存储引擎,比如InnODB,本值是一个大约的数,与实际值相差nJ达1050/.在这些情况下,使用SE1.ECTCOlNT(*)来获得准确的数目。对于在INFORMTION.SCHEM数据库中的表,Rows值为NU1.1./vg_row_length平均每行包括的字节数Data_length表数据的大小(和存储引擎有关)Max_data-ength表可以容
28、纳的最大数据量(和存储引擎有关)Index_lengthDatafreeAuto_incrementCreatetimeUpdatetimeChecktimeColIationChecksumCreateoptionsComment索引的大小(和存储引擎有关)对于MylSAM引擎,标识已分配,但现在未使用的空间,并且包含了已被删除行的空间下一个AUto一increment的值表的创建时间表的最近更新时间使用checktable或myisanchk工具检查表的最近时间表的默认字符集和字符排序规则如果启用,则对整个表的内容计算时的校验和指表创建时的其他所有选项包含了其他额外信息,对于MylSAM引
29、擎,包含了注释。对于InnoDB引擎,则保存着InnoDB表空间的剩余空间信息。如果是一个视图,那么注释里面包含了VIEW字样也可以使用information.SChema.tables表来查询,如b-:SE1.ECTtablename,Engine,Version,Rowformat,tablerows,Avgrowlength,Data_length,Max_data_length,Index_length,Data_free,uto-increment,Create_time,Upclate_time,Check_time,table_collation,Checksum,Create.
30、options,table_commentFROMinformationSChema.tablesWHERETabIe_SehenIa=mysqlandtable_name=,userG;16. 使用裸设备作为Oracle数据文件有什么需要注意的?正确答案:使用裸设备作为OraeIe的数据文件必须注意以卜几点:1) 一个裸设备只能放置一个数据文件。2)数据文件的大小不能超过裸设备的大小,为了简单起见,对所有的文件设置成比裸设备小IMB即可。3)数据文件最好不要设置成自动扩展,如果设置成自动扩展,一定要把MAXSIZE设置为比裸设备小。考点裸设备(RN)17. 1.inux卜.启动和关闭网络的命
31、令有哪些?正确答案:1.inux下启动和关闭网络的命令如下:chkconfigNetworkManageroffchkconfignetworkonserviceNetworkManagerstopservicenetworkstart考点网络18. OracleIog和IIg的自动统计信息收集机制有哪些不同?正确答案:OracleIOg之前并没有自动收集统计信息的机制,从OraCleIOg开始引入了自动收集统计信息的功能,这个功能在OraCIeIOg中被称为自动统计信息收集(AUtomatiCStatisticsGathering).在OraCleIIg中被称为自动优化器统计信息收集(AUt
32、OmatiCOptimizerStatisticsCollection)自动统计信息收集作业能够每天收集普通对象和数据字典的统计信息,但不会收集乂$系列表的内部对象统计信息。Oracle的初始化参数STATISTICSJEVE1.控制收集统计信息的级别,有三个参数值:1)BASIC:收集基本的统计信息。2)TYPlCA1.:收集大部分统计信息(数据库的默认设置)。3)A1.1.:收集全部统计信息。当使用OraCIe自动收集统计信息时,必须要确保OraCle的参数STATISTICS1.EVE1.的值为TYPlCA1.或者A1.1.。默认值为TYPlCA1.,该值可以确保数据库自我管理功能所需求
33、的所有主要统计信息的正确收集,及提供最好的综合性能。这个默认值能胜任大多数的环境,并且OraCIe不推荐去修改该值。DB.可以根据Oracle提供的脚本SORC1.EJiOMErdbmsadminCatmWin.sql查看统计信息收集作业的整体搭建流程。有兴趣的读者可以研究下此脚本的内容。OracleIog和Ilg的自动统计信息收集机制有所不同,详见下表。OracIelOgOnclcllgJOB标GAT三STATS.X)Bautocimusuecol)cdkD则DBMSSWTS.GXniERDATABASES三JOBPROCmftOxkIOg中.Oafc花出库Ei醺於Iir-M5GA1三.ST
34、ATS.J0e的稿任条肝日刷僚CK)扁温诚JoB硼林版展DBMS_$膝GMHER-DATABASE-STgJoB_PROC”就邮标岷维计晶蕨(MiSEsots)m(SbdcStffitia)fliJI.甑艇怫吊刑斶怖嬲谈蟆MW是骏慢SiMfftWWfifflR的13慨会自湫彘翻变史仔也可灿谶KDBATABMODmCATKWS三iOwleIlg中的自燃加收箝业联自动运疗任务GATHERSgPROG亲魏,次竦酬候鞋先生成名为ORASA1.OSgTlXxX的作也断瞰惚州妹的徽财驰,财.她研DeMSSTANGATHERDXrABASESraS0JOBJROC,哦序斯朝DeMvUTOJASjMMH)IA
35、TEGm风0P11112ER-SATS料做政iH1JJOB关腼令可疑护R有再个,Whkmgiotndow利WEEXENiWNXW,H同为DWIm0期第二瓶晟6苴,艘8例2)所有的麻喇跚摊天政(ffiitw,三三6.)OlXk撤拥我用Wl如能城液林独髓林Caid(Il中怕就懒ft臬判却何以现辨股级娴 ExecdbmsSCHEDllEilESAB邸YSiGmERS1JOBtA1.TER疝SET”OPTIMIZERAUTOSTArSjoB卡位SCoPE=SPF execdBmsSchediierdisablecsys.GmIER_飒颂 A1.THSSTENfSETIoPTMZERAUT0SW.J0e
36、,toqxinwNUll,wii)jorume*Nll1.); EXECDSMS_AuTOjAS“DMNDBAB1.EO; EXECDBMIAUT6j就ADMINDlSABIWJ三=actoqti三tscolfcctxn,j)perajcnNll1.wiown三ne=NUm一SE1.ECTOJEKrKME,STATUSFROMDBA_AiTOUSK_CUENTWHERECUE-NAEattcc三zcrSSSCoIlaSo11;SE1.ECT三DOWNAMETOCHAR(WN)OWNEXTIMIYYYY-MM-DDHH24iHSS)OPTIMIZERST-AA.AurOTAsK_丽3FKOMBB
37、A_AUroTASK-WindotlcuentsaaORDERBY。NDOW忘1.11ME;一SE1.ECrjRDlOGID.JRDJobHaneNJOB.C1.ASS,TO.CHAR(JRDAC11JA1.START,DAE,YYT-MM-DDIIH24:M1:SSACTUA1.STARTDATE.TOCHAR(JRD.10GD,YYYY-MM-DDHH24:M1:SS31.OGDATE,JRDSTARJS,tonCDDnffi在OraCIeIlg中对统计信息自动收集的功能进行了加强。在OraCIeIOg中,如果表中变更的行数(字典表SYS.M0N_M0DS_A1.1.$中记录的INSERT
38、+UPDATE+DE1.ETE的总数)超过表的点行数7sYS.TABS中记录的目标表总记录数)的10%时或自上次自动统计信息收集作业完成之后目标表被执行过TRUNCATE操作,那么OraCle就会在指定时间段自动收集统计信息。在OraCleIog中,这个10%(STA1.EPERCENT)是无法修改的,如果表非常大,那么10%其实是非常多的数据,这就造成统计信息不准确。在OraCIeIIg中,这个o%(Stalilpercent)是可以修改的,分为全局(DBMS-STTS.SET_G1.0BAjPREFS)、数据库级别(DBMS_STATS.SET_DATABASE_PREFS)、用户级别(D
39、BMS_STATS.SET_SCHEMA_PREFS)和表级别(DBMS_STATS.SET,ABu1.PREFS)。其中,数血库级别和用户级别都是调用表级别的存储过程DBMS_STATS.SET,ABu1.PREFS来对表进行设置的。表级别的设定如下:1)修改为5改范围为l100):EXECDBMS_STATS.SETjrAB1.E_PREFS(USER,TI1.NAME,STA1.I-PERCENT,5);2)恢复为10%:EXECDBMSSTATS.SETTAB1.EPREFS(USER,TBNAME,STA1.EPERCENT*,NU1.1.);3)查询表百分比:SE1.ECTDBMS
40、-STTS.GET_PREFS(STA1.E_PERCET,USER,TB_NAME)FROMDUA1.:4)查询全高百分比:SE1.ECTDBMS_STATS.GET_PREFS(,STA1.E.PERCENT,)FROMDUA1.:OracleIOg的自动统计信息收集功能没有资源限制,但OraCleUg的统计信息收集功能在资源管理上面限制了对系统资源使用,其对应的RESOURCE_P1.AN的名称为DEEAU1.TJIAlNTENANCE-P1.ANe用户可以根据各自系统的业务场泉来配置是否开启自动收集统评信息,也可以调整窗口调度的开始时间、持续时间和资源组限制等。DBAjrAB.MODIFICATIONS视图(基表为SYS.MON_MODS_A1.1.$)记录了从上次收集统计后息以来表中DV1.操作变化的数据量,包括执行ISERT、UPDATE和DE1.ETE影响的行数,以及是否执行过TRUCATE操作。该特性依赖于表的MONITORING属性是否打开,可以查询DBATAB1.ES视图的MONITORING列获取该属性值。另外,DBMS_STATS.F1.USH_DATABASE_MONITORING_INFO可以将内存中的数据快速刷新到数据亳典SYS.MOX