下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 常用sql脚本(Commonly used SQL scripts)

常用sql脚本(Commonly used SQL scripts).doc

常用sql脚本(Commonly used SQL scrip…

liang中峰
2017-10-22 0人阅读 举报 0 0 暂无简介

简介:本文档为《常用sql脚本(Commonly used SQL scripts)doc》,可适用于社会民生领域

常用sql脚本(CommonlyusedSQLscripts)常用sql脚本(CommonlyusedSQLscripts)Databasearchitecturesystem,themonitoringoftablespaceisanimportanttask,wemustalwaysbeconcernedaboutthesettingsofthetablespace,whethertomeettheneedsofthecurrentapplication,thefollowingstatementscanquerythedetailsofthetablespaceSELECT,TABLESPACENAME,INITIALEXTENT,NEXTEXTENT,MINEXTENTS,MAXEXTENTS,PCTINCREASE,MINEXTLEN,STATUS,CONTENTS,LOGGING,EXTENTMANAGEMENTColumns,not,available,in,vxALLOCATIONTYPERemove,these,columns,if,runningPLUGGEDINagainst,a,vx,databaseSEGMENTSPACEMANAGEMENT,use,only,in,vx,or,laterFROMDBATABLESPACESORDERBYTABLESPACENAME,forsomedatafilesthatarenotsetforautomaticallyextendedtablespaces,ifthetablespaceisfull,itmeansthatthedatabasemaybestoppedbecausethereisnoroomThemostimportantthingistomonitorthesizeoftheremainingspaceortheutilizationrateofthemonitortablespaceThefollowingisastatementthatmonitorstablespaceusageandthesizeoftheremainingspaceSELECT,DTABLESPACENAME,SPACE,SUMSPACE(M),BLOCKS,SUMBLOCKS,SPACENVL(FREESPACE,),USEDSPACE(M)",ROUND((NVL(FREESPACE,)SPACE)*,)USEDRATE(),FREESPACE,FREESPACE(M)"FROM(SELECT,TABLESPACENAME,ROUND(SUM(BYTES)(*),)SPACE,SUM(BLOCKS)BLOCKSFROMDBADATAFILESGROUP,BY,TABLESPACENAME)D,(SELECT,TABLESPACENAME,ROUND(SUM(BYTES)(*),)FREESPACEFROMDBAFREESPACEGROUP,BY,TABLESPACENAME)FWHEREDTABLESPACENAME=FTABLESPACENAME()UNION,ALL,if,have,tempfileSELECT,DTABLESPACENAME,SPACE,SUMSPACE(M),BLOCKS,SUMBLOCKS,USEDSPACE,USEDSPACE(M),ROUND(NVL(USEDSPACE,)SPACE*,),USEDRATE()",NVL(FREESPACE,),FREESPACE(M)"FROM(SELECT,TABLESPACENAME,ROUND(SUM(BYTES)(*),)SPACE,SUM(BLOCKS)BLOCKSFROMDBATEMPFILESGROUP,BY,TABLESPACENAME)D,(SELECT,TABLESPACENAME,ROUND(SUM(BYTESUSED)(*),)USEDSPACE,ROUND(SUM(BYTESFREE)(*),)FREESPACEFROMV$TEMPSPACEHEADERGROUP,BY,TABLESPACENAME)FWHEREDTABLESPACENAME=FTABLESPACENAME(),inadditiontomonitoringtheremainingspaceinthetablespace,itissometimesnecessarytoknowwhetherthetablespacehastheabilitytoautomaticallyextendspace,althoughweproposetopreallocatespaceintheproductionsystemThefollowingstatementwillcompletethisfunctionSELECT,TTABLESPACENAME,DFILENAME,DAUTOEXTENSIBLE,DBYTES,DMAXBYTES,DSTATUSFROMDBATABLESPACEST,DBADATAFILESDWHERE,T,TABLESPACENAME,=D,TABLESPACENAMEORDER,BY,TABLESPACENAME,FILENAME,Ibelievethattheuseofdictionarymanagedtablespaceandalotofit,becausethedictionarymanagedtablespace,thesizeofthenextintervalforeachtableisnottobeexpected,sowemustmonitorthetablenextassignmentwillrangeindictionarymanagedtablespacesinthesystemorcauseperformanceproblemsstopduetononextendedtablespaceThefollowingstatementchecksthatextensionstothosetableswillcauseextensionoftablespaceSELECT,AOWNER,ATABLENAME,ANEXTEXTENT,ATABLESPACENAMEFROMALLTABLESA,(SELECT,TABLESPACENAME,MAX(BYTES)BIGCHUNKFROMDBAFREESPACEGROUP,BY,TABLESPACENAME)FWHEREFTABLESPACENAME=ATABLESPACENAMEANDANEXTEXTENT>FBIGCHUNKAproblemspaceandintervalnumber,istheneedtopayattentionto,ifasectionofthespaceistoolarge,ortoomuchacrosstheinterval(willaffecttheperformanceseriouslyindictionarymanagedtablespaces,ifnoredistributioncan),interval,willcausethedatabaseerrorTherefore,monitoringthesizeandrangeofthesectionisalsoaveryimportanttaskSELECT,SOWNER,SSEGMENTNAME,SSEGMENTTYPE,SPARTITIONNAME,ROUND(BYTES(*),)USEDSPACE(M)",EXTENTS,USEDEXTENTS,SMAXEXTENTS,SBLOCKS,ALLOCATEDBLOCKS,SBLOCKS,USEDBOLCKS,SPCTINCREASE,SNEXTEXTENT,"NEXTEXTENT"(K)"FROMDBASEGMENTSSWHERE,SOWNER,NOT,IN('SYS','SYSTEM')ORDERBYUsedExtentsDESCTheuseofspaceandspacedistribution,objects,inadditiontotheanalysisfromvariousaspects,suchasanalysistable,queryROWIDandothermethods,itprovidesaqueryspacepackagedbmsspaceOracle,ifwelookalittlepackage,willbeagoodthingforCREATE,OR,REPLACE,PROCEDURE,showspace(psegname,in,varchar,Ptype,in,VARCHAR,default,'TABLE',Powner,in,VARCHAR,default,user)ASVsegnameVARCHAR()VtypeVARCHAR()LfreeblksnumberLtotalblocksnumberLtotalbytesnumberLunusedblocksnumberLunusedbytesnumberLLastUsedExtFileIdnumberLLastUsedExtBlockIdnumberLLASTUSEDBLOCKnumberPROCEDUREP(plabel,in,VARCHAR,pnum,in,number)ISBEGINDbmsoutputputline(rpad(plabel,')||pnum)ENDBEGINVsegname:=upper(psegname)Vtype:=ptypeIf(ptype='i',or,ptype='I')thenVtype:='INDEX'EndifIf(ptype='t',or,ptype='T')thenVtype:='TABLE'EndifIf(ptype='c',or,ptype='C')thenVtype:='CLUSTER'EndifthefollowingsectionsarenotavailableforASSMDbmsspacefreeblocks(segmentowner=>powner,Segmentname=>vsegname,Segmenttype=>vtype,Freelistgroupid=>,Freeblks=>lfreeblks)theabovesectioncannotbeusedforASSMDbmsspaceunusedspace(segmentowner=>powner,Segmentname=>vsegname,Segmenttype=>vtype,Totalblocks=>ltotalblocks,Totalbytes=>ltotalbytes,Unusedblocks=>lunusedblocks,Unusedbytes=>lunusedbytes,LASTUSEDEXTENTFILEID=>lLastUsedExtFileId,LASTUSEDEXTENTBLOCKID=>lLastUsedExtBlockId,thechildusedblock=>lchildrenusedblock)显示结果p("freeblocks',lfreeblks)p(totalblocks',ltotalblocks)p(totalbytes',ltotalbytes)p(unusedblocks',lunusedblocks)p(unusedbytes',lunusedbytes)p(fileidchildusedext,llastusedextfileid)p(blockidchildusedext,llastusedextblockid)p("babyusedblock',lchildrenusedblock)feeling执行结果将如下所示sqlserveroutput>setexecsql>showspace("test")freeblockstotalofblocksthetotalbytesblocksunusedbytesunusedthechildusedextfileidthechildusedextblockidthechildusedblockplsqlproceduresuccessfullycompleted、数据库的索引如果有比较频繁的delete操作,将可能导致索引产生很多碎片,所以,在有的时候,需要对所有的索引重新rebuild,以便合并索引块,减少碎片,提高查询速度sqlsetheadingoffsqlsetofffeedback>sqlindexsql>spool(d):select'sql'alterindex>||indexname||'rebuild'||'tablespaceindexesstorage(initialknextkpctincrease)'fromindexesunderwhere(tablespacename!indexes'='ornextextent!=(*))andowner=usersql>spooloff这个时候,我们打开spool出来的文件,就可以直接运行了、表的主键是必要的,没有主键的表可以说是不符合设计规范的,所以我们需要监控表是否有主键selecttablenamefromtablesunderthewhereowner=userinmeselecttablenamefromunderconstraintswhereowner=userandconstrainttype='s'p'二、性能监控、数据缓冲区的命中率已经不是性能调整中的主要问题了,但是,过低的命中率肯定是不可以的,在任何情况下,我们必须保证有一个大的databuffer和一个高的命中率这个语句可以获得整体的数据缓冲命中率,越高越好selectavaluebvaluelogicalreads,cvaluephysreads,round(*(cvalue(avaluebvalue)),()thehitratiofromv$sysstat(a,v,$sysstat(b,v,$sysstatcwhereaname=dbblockgets'andbnameconsistentgets'='andcname=physicalreads'、库缓冲说明了sql语句的重载率,当然,一个sql语句应当被执行的越多越好,如果重载率比较高,就考虑增加共享池大小或者是提高bind变量的使用以下语句查询了sql语句的重载率,越低越好selectsum(totalpinspins),sum(totalreloads,reloads)SUM(reloads)sum(pins)*libcachereloadratioFromV$librarycache、用户锁,数据库的锁有的时候是比较耗费资源的,特别是发生锁等待的时候,我们必须找到发生等待的锁,有可能的话,杀掉该进程这个语句将查找到数据库中所有的dml语句产生的锁,还可以发现,任何dml语句其实产生了两个锁,一个是表锁,一个是行锁可以通过alterSystemKillsession'Sid'来杀掉会话,serial#SELECT**rulesusername,Decode(ltype'TM','tablelock','tx','Rowlock',Locklevel,)Oowner,oobjectoobjecttype,name,Ssid,sserial#,sterminal,smachine,sprogram,sosuserFromV$SESSIONs,V$LockL,objectsordBAWherelsid=ssidAndlidoobjectid=()Andsusernameisnot、锁与等待,如果发生了锁等待,我们可能更想知道是谁锁了表而引起谁的等待以下的语句可以查询到谁锁了表,而谁在等待SelectRule**('',lpaddecode(lxidusn,,,)||loracleusernameusernameOowneroobjectoobject,name,type,ssid,sserial#FromV$LockedDBAobjectsorobjectL,S,V$SESSIONWherelobjectid=oobjectidAndlsessionid=ssidOrderbyIdDESCoobject,xidusn以上查询结果是一个树状结构,如果有子节点,则表示有等待发生如果想知道锁用了哪个回滚段,还可以关联到v$rollname,其中xidusn就是回滚段的usn、如果发生了事务或锁,想知道哪些回滚段正在被使用吗其实通过事务表,我们可以详细的查询到事务与回滚段之间的关系同时,如果关联会话表,我们则可以知道是哪个会话发动了这个事务Selectsusername,ssid,sserial#,tubafil"UBAfilenum"Tubablk"UBABlockNumber","YoutusedublkNumberundoblocksused,"Tstarttime,tstatus,tstartSCNB,txidusnroll,rnamerollnameFromV$SESSIONs,V$transactionT,V$RrollnameWheressaddr=tsesaddrAndtxidusn=rusn、如果利用会话跟踪或者是想查看某个会话的跟踪文件,那么查询到os上的进程或线程号是非常重要的,因为文件的令名中,就包含这个信息,以下的语句可以查询到进程或线程号,由此就可以找到对应的文件Selectpvalue||'||pvalue||'ora'||pspidfilenameFromV$processP,V$SESSIONs,V$parameterPV$parameterPWherepname='userdumpdest'AndpnameDB='name'Andpaddr=spaddrAndsaudsiduserenv(sessionId='')、在oraclei中,可以监控索引的使用,如果没有使用到的索引,完全可以删除掉,减少dml操作时的操作以下就是开始索引监控与停止索引监控的脚本SetheadingoffSetechooffSetofffeedbackSetpagesIndexmonitorsqlspoolStart选择“索引”||业主||’。”||indexname||监控使用”从dbaindexes所有者=用户停止输出设置标题设置回声设置反馈集合前往设置回音设置反馈了集页阀芯stopindexmonitorsql选择“索引”||业主||’。”||indexname||”nomonitoring使用”从dbaindexes所有者=用户停止输出设置标题设置回声设置反馈如果需要监控更多的用户可以将所有者=用户改写成别的监控结果在视图Vobjectusage美元中查询感谢Fenng:他提供了一个更新版的showspace脚本创建或替换程序showspace(psegname在空在Oracle默认用户powner在默认的“表”ptypeVARCHAR在Oracle默认为空ppartition)这个程序使用AUTHIDCURRENTUSER可以查询dba*视图使用从角色权限所以它可以安装每一次数据库而每一次的用户谁想要使用它。currentuserauthID作为lfreeblks数ltotalblocks数ltotalbytes数lunusedblocks数lunusedbytes数llastusedextfileid数llastusedextblockid数llastusedblock数lsegmentspacemgmtVARCHAR()lunformattedblocks数lunformattedbytes数lfsblocks数lfsbytes数lfsblocks数lfsbytes数lfsblocks数lfsbytes数lfsblocks数lfsbytes数lfullblocks数lfullbytes数内联程序打印出数字格式化好的用一个简单的标签。程序P(plabel在VARCHARpnum数量)是开始dbmsoutput。putline(RAPD(plabel'')||tochar(pnum))结束开始这个查询执行动态为了让这个程序是由一个用户访问dbasegments表空间的创建通过角色的习惯。注:在运行时调用程序必须能够访问这两观点~这个查询确定如果对象是一个表对象或不。开始立即执行“选择tssegmentspacemanagement从dbasegments赛格dbatablespacesTS在segsegmentname=:psegname和(:ppartition无效或segpartitionname=:ppartition)和segowner=:powner和segtablespacename=tstablespacename”为lsegmentspacemgmt使用psegnameppartitionppartitionpowner例外当toomanyrows然后dbmsoutputputline(这必须是一个分区表使用ppartition=>”)返回结束如果对象是一个表的表空间我们必须使用这个API打到空间信息否则我们使用freeblocksAPI用户管理部分。如果lsegmentspacemgmt='自动'然后dbmsspacespaceusage(pownerpsegnameptypelunformattedblockslunformattedbyteslfsblockslfsbyteslfsblockslfsbyteslfsblockslfsbyteslfsblockslfsbyteslfullblockslfullbytesppartition)P(“格式化块lunformattedblocks)P(“FS块()lfsblocks)P(“FS块()lfsblocks)P(“FS块()”lfsblocks)P('FS块()”lfsblocks)P(全街区lfullblocks)其他的dbmsspacefreeblocks(。segmentowner=>pownersegmentname=>psegnamesegmenttype=>ptypefreelistgroupid=>freeblks=>lfreeblks)P(“块”lfreeblks)最后如果然后闲置空间的API调用得到的休息信息。dbmsspaceunusedspace(segmentowner=>pownersegmentname=>psegnamesegmenttype=>ptypepartitionname=>ppartitiontotalblocks=>ltotalblockstotalbytes=>ltotalbytesunusedblocks=>lunusedblocksunusedbytes=>lunusedbyteslastusedextentfileid=>llastusedextfileidlastusedextentblockid=>llastusedextblockidlastusedblock=>llastusedblock)P(总块ltotalblocks)P(的总字节数ltotalbytes)P(总容量trunc(ltotalbytes))P(“未使用的块lunusedblocks)P(“未使用的字节lunusedbytes)P(最后一次使用的Extfileid”llastusedextfileid)P(最后一次使用的Extblockid'llastusedextblockid)P(最后使用的块llastusedblock)结束隐含参数:选择“参数”“aksppinmaksppdescdescriptoin”从XXksppi美元美元ksppcvB、Xksppsv美元C在aindx=bindx和aindx=cindx和aksppinm喜欢'逃跑''检查操作系统进程ID从ORACLESID选择从V$过程SPID地址在哪里(选择含量从V$SESSION在SID=$SID)检查ORACLESID从操作系统进程ID从V会话中选择SID其中含量在(选择地址从V$过程SPID=$PID)检查当前的SQL会话中选择Vsqltext美元sqltext在hashvalue=(选择sqlhashvalueV$SESSION其中SID=SID)为了一块检查Vsessionwait美元SELECT*FROMVsessionwait美元如果事件不象“RDBMS”事件不象“SQL”和事件不象“定时器”字典缓存命中选择和(getmisses)总和(获取)的Vrowcache美元*应否则将sharepoolsize*从文件ID和块#检查数据库对象的名称选择的主人segmentnamesegmenttype从dbaextents在fileid=$FNO与DNO之间blockid和blockid块–#寻找热块选择*命令*eowner||’。”||esegmentnamesegmentnameeextentid程度#xdbablkeblockid块#xtchlchild#从系统Vlatchchildrenl美元系统sysdbaextentsE哪里给=“高速缓存缓冲区链”lsleeps>和sleepcount和xhladdr=laddr和efileid=xfile#和eblockid和eblockideblocks之间xdbablk#找出每个文件上的等待事件选择DF。名字从V$DATAFILEDFkfcountX美元kcbfwaitKF那里(KF。指数)=DF文件##找出引起等待事件的SQL语句。选择一个sqltextsqlarea美元从VV$SESSIONB、VCsessionwait美元在aaddress=bsqladdress和bsid=csid和cevent=将美元#监控共享池中哪个对象引起了大的内存分配SELECT*FROMXksmlru美元ksmlrsiz>判断你是从pfile启动还是SPFILE启动的简单方法~~~判断你是从pfile启动还是SPFILE启动的简单方法~~~选择解码(count(*)“令”、“张贴”)从Vspparameter美元在rownum=和差=真实”解码二进制文件Oracle常用技巧和脚本Oracle常用技巧和脚本。如何查看Oracle的隐含参数,Oracle的显式参数除了在init。或文件中定义的外在重建中用“显示参数”可以显示。但Oracle还有一些参数是以””开头的。如我们非常熟悉的”offlinerollbacksegments”等。这些参数可在系统Xksppi表中查出美元。语句:“选择Xksppi美元在ksppinm(ksppinm,)='“”。如何查看安装了哪些Oracle组件,进入${oraclehome}orainstinspdver显示安装组件和版本号运行。。如何查看Oracle所占用共享内存的大小,可用UNIX命令“点”查看共享内存的起始地址、信号量、消息队列。在重建下用”oradebugIPC”可看出Oracle占用共享内存的分段和大小。例子:svrmgr>oradebugIPC共享内存地址大小fe。如何查看当前SQL*Plus用户的SID和串行#,在SQL*Plus下运行:“选择SID串行#V$SESSION状态在audsid=Userenv('sessionid')”。如何查看当前数据库的字符集,在SQL*Plus下运行:“选择Userenv('language”)从双”或:“选择Userenv('lang”)从双”。如何查看数据库中某用户正在运行什么SQL语句,根据机、用户名或SID、串行#连接表V$SESSION和Vsqltext美元可查出。SQL*Plus语句:“选择从VTsqltextsqltext美元V$SESSION在哪里taddress=ssqladdress和thashvalue=ssqlhashvalue和机xxxxx或用户名==“”xxxxx查看某主机名或用户名”。如何删除表中的重复记录,例句:删除从tablename一其中rowid>(选择min(rowid)从tablenameB在bpkcolumn=apkcolumn和bpkcolumn=apkcolumn)。手工临时强制改变服务器字符集以系统或系统登录系统SQL*Plus运行:创建数据库字符集USASCII”。有以下错误提示:*创建数据库字符集USASCII第行错误:ora:权限不足实际上看Vnlsparameters美元字符集已更改成功但重启数据库后数据库字符集又变回原来的了。该命令可用于临时的不同字符集服务器之间数据倒换之用。怎样查询每个分配的PCM锁的数目实例。用以下命令:selectcount(*)“散列PCM锁号“Vlockelement美元在高位(旗、)>selectcount(*)“细晶粒PCM锁号“Vlockelement美元在那里的时候(旗)=。怎么判断当前正在使用何种SQL优化方式,用解释计划产生解释计划检查plantable中ID=的位置列的值。例如选择解码(NVL(位置)'cbo'rbo'')从plantableid是。做出口时能否将转储文件分成多个,Oraclei中口增加了一个参数文件大小可将一个文件分成多个:口史葛虎文件=(order。DMPorder。DMPorder。DMP)文件大小=g表=订单其他版本的Oracle在UNIX下可利用管道和分裂分割:mknod管P分Bm管订单与#将文件分割成每个gb大小的以阶为前缀的文件:#orderaaorderaborderac„并将该进程放在后台。口史葛虎文件=管表=订单户如何有效地利用数据字典用户如何有效地利用数据字典Oracle的数据字典是数据库的重要组成部分之一它随着数据库的产生而产生随着数据库的变化而变化体现为用户下的一些表和视图数据字典名称是大写的英文字符系统。Datadictionarycontainsuserinformation,userpermissionsinformation,alldataobjectinformation,tableconstraints,statisticalanalysisofthedatabaseviewWecan'tmanuallymodifytheinformationinthedatadictionaryAlotoftimes,theaverageORACLEuserdoesn'tknowhowtomakethemostofitDictionarythenameandexplanationoftheentiredatadictionarytableIthasasynonymforDictDictcolumnalldatadictionaryfields,fields,names,andexplanationsIfwewanttoquerythedatadictionaryassociatedwiththeindex,wecanusethefollowingSQLstatement:SQL>select*from,dictionary,where,instr(comments,'index')>Ifwewanttoknowthefullmeaningofeachfieldnameoftheuserindexestable,wecanusethefollowingSQLstatement:SQL>select,columnname,comments,from,dictcolumns,where,tablename='USERINDEXES'Andsoon,youcaneasilyknowthedetailednameandexplanationofthedatadictionarywithoutlookingattheotherdocumentationofORACLEHerearesomeoftheORACLEuser'scommonlyuseddatadictionaryqueriesbycategoryIuserViewthedefaulttablespaceforthecurrentuserSQL>select,username,defaulttablespace,from,userusersViewtheroleofthecurrentuserSQL>select*fromuserroleprivsViewsystemprivilegesandtablelevelpermissionsforthecurrentuserSQL>select*fromusersysprivsSQL>select*fromusertabprivsTwo,tableViewalltablesundertheuserSQL>select*fromusertablesViewthetablecontainingthelogcharactersSQL>select,objectname,objectid,from,userobjectsWhereinstr(objectname,'LOG')>ViewthecreationtimeofatableSQL>select,objectname,created,from,userobjects,where,objectname=upper('tablename')ViewthesizeofatableSQL>select,sum(bytes)(*),as,size(M),from,usersegmentsWheresegmentname=upper('tablename')ViewthetablesplacedinthememoryareaoftheORACLESQL>select,tablename,cache,from,usertables,where,instr(cache,'Y')>Three,indexViewthenumberandcategoryofindexesSQL>select,indexname,indextype,tablename,from,userindexes,order,by,tablenameViewtheindexedfieldSQL>select*from,userindcolumns,where,indexname=upper('indexname')ViewindexsizeSQL>select,sum(bytes)(*),as,size(M),from,usersegmentsWheresegmentname=upper('indexname')Four,serialnumberViewsequencenumber,lastnumberiscurrentvalueSQL>select*fromusersequencesFiveviewsViewthenameoftheviewSQL>selectviewnamefromuserviewsViewtheselectstatementthatcreatestheviewSQL>set,viewname,textlength,from,userviewsSQL>setlongDescription:youcansetthesizeofthesetlongaccordingtothetextlengthvalueoftheviewSQL>select,text,from,userviews,where,viewname=upper('viewname')Six,synonymsSeethenameofthesynonymSQL>select*fromusersynonymsSeven,constraintsViewtheconstraintsofatableSQL>select,constraintname,constrainttype,searchcondition,rconstraintnameFrom,userconstraints,where,tablename=upper('tablename')SQL>选择cconstraintnamecconstrainttypecccolumnname从userconstraintsCuserconscolumnsCC在cowner=上(和tableowner”)和ctablename=上(和tablename”)和cowner=ccowner和cconstraintname=ccconstraintname为了ccposition八、存储函数和过程查看函数和过程的状态SQL>选择objectname从userobjects哪里objecttype='function”状态SQL>选择objectname从userobjects哪里objecttype='procedure”状态查看函数和过程的源代码SQL>选择文本allsource业主=用户名称=上(和plsqlname”)九、触发器查看触发器设置长设置航向设置为选择“创建触发器”||triggername||”的||CHR()||解码(substr(triggertype,)'一''后''乙''前''我''而不是')||CHR()||triggeringevent||CHR()||在“||tableowner||’。”||tablename||”的||CHR()||解码(仪器(triggertype每行”)空“每一行”)||CHR()triggerbody从usertriggers分析数据库性能的SQL用于查看哪些实例的哪些操作使用了大量的临时段选择tonumber(解码(SID希德Sid))operationtype操作trunc(expectedsize)esizetrunc(actualmemused)MEMtrunc(maxmemused)“最大内存”numberpasses通trunc(tempsegsize)tsize从Vsqlworkareaactive美元,顺序查询有热块查询的SQL语句选择hashvalue从Vsqltext一美元(选择不同的aownerasegmentnameasegmenttype从dbaextents一(选择dbarfildbablk从(选择dbarfildbablk从X$BH订单TCHDESC)在rownum<)B在arelativefno=bdbarfil和ablockid<=bdbablk和ablockidablocks>bdbablk)B在asqltext像“”||bsegmentname||“”和bsegmenttype=“桌子”通过ahashvalueaaddress秩序apiece全表扫描选择opname目标bnumrowsbtablespacename计数(目标)从Vsessionlongops美元allalltablesB在atarget=bowner||’。”||btablename具有计数(目标)>组opname目标bnumrowsbtablespacename查看磁盘排序和缓存排序次数选择tochar(SN。snaptime'yyyymmddhh”)timeAVG(newmenvalue老人。值)sortsmemeoryAVG(newdskvalueolddsk。值)disksort从统计的SYSSTAT美元的老人统计SYSSTAT美元新贵统计newdskSYSSTAT美元统计olddskSYSSTAT美元快照在newdsksnapid=snsnapid。和olddsk。snapid=snsnapidandnewmensnapid=snsnapidandnewdsksnapid=snsnapidandoldmenname='sorts(memory)andnewmenname='sorts(memory)andolddskname='sorts(disk)andnewdskname='sorts(disk)groupbytochar(snsnaptime,'yyyymmddhh')执行最慢的前个sqlselect*from(selecttochar(snaptime,'ddmonhh:mi:ss')mydate,executionsexecloadsloadsparsecallsparsediskreadsreads,buffergetsgets,rowsprocessedrowsprocsortssortssqltexthashvaluefromperfstatstats$sqlsummarysqlperfstatstats$snapshotsnwheresqlsnapid>(selectmin(id)snapsnap)fromstats$snapshotwheresnaptime>sysdate$daysback)andsqlsnapid=snsnapidorderby$sortskeydesc)ttwhererownum<sql缓存池的命中率查询(pinhitratio,gethitratio应该大于以上)selectnamespace,gethitratio,pinhitratio,reloads,invalidationsfromv$librarycachewherenamespacein(sqlarea','tableprocedure','body','trigger')数据库的常规参数我就不说了,除了v$parameter中的常规参数外,oracle还有大量的隐含参数,下面的语句就可以查询到数据库的所有隐含参数以及其值与参数的描述selectnamevalue,decode(isdefault,'true','y','n')asthe"default",decode(isem,'true','y','n')assesmod,decode(isym,'immediate','i','delayed','d','false','n')assysmod,decode(imod'modified','u','sysmodified','s','n')asmodified,decode(iadj,'true','y','n')asis,descriptionfrom(gm$systemparametersselectxinstidasinstancexindx,,ksppinmasname,ksppityksppstvlasvalueasisdefault,ksppstdf,decode(bitand(ksppiflg,),,'true','false')asisem,decode(bitand(ksppiflg,),'immediate''was','false')asisym,decode(bitand(ksppstvf,),,'modified','false')asimod,decode(bitand(ksppstvf,),(),'true','false')asiadj,ksppdescasdescriptionfromksppix$xx$ksppsvywherexindx=yindxandsubstr(ksppinm,,)=''andxinstid=userenv(instance))orderbyname想知道现在哪个用户正在利用临时段吗这个语句将告诉你哪个用户正在利用临时段selectbtablespace,bsegfile#,bsegblk#,bblocks,asid,aserial#,ausername,aosuser,astatus,csqltextfromv$sessiona,v$sort(b,v$sqlcwhereasaddr=bsessionaddrandasqladdress=caddress()orderbybtablespace,bsegfile#,bsegblk#,bblocks查看磁盘碎片selecttablespacenamesqrt(max(块)总和(块))*(sqrt(sqrt(计数(块))))患者从dbafreespace集团以tablespacename。查看表空间的名称及大小选择ttablespacename圆(SUM(字节(×)))tssize从dbatablespacesTdbadatafilesD在ttablespacename=dtablespacename集团通过ttablespacename。查看表空间物理文件的名称及大小选择tablespacenamefileidfilename圆(字节(×))totalspace从dbadatafiles为了tablespacename。查看回滚段名称及大小选择segmentnametablespacenamerstatus(initialextent)initialextent(nextextent)nextextentmaxextentsvcurextCurExtent从dbarollbacksegsRV为rollstatV在rsegmentid=vusn()为了segmentname耗资源的进程(前届)。选择sschemanameschemaname解码(标志(命令)tochar(命令)“行为守则”|#|tochar(命令))的动作状态sessionstatussosuserosusernamessidpspidsserial#serialnumNVL(susername“流程”)usernamesterminal终端计划程序stvaluecriteriavalueVsesstat美元$SESSION的STVV$进程P在stsid=ssid和ststatistic#=tonumber(号”)和(“所有”=“所有”或sstatus='所有')和paddr=spaddr顺序stvalue降序pspidsusernameASCASCASCsosuser。查看锁(锁)情况选择**规则lsosuserosusernamelsusernameusername解码(lstype“RW”“排等待队列锁”、“TM”、“DML队列锁''发送'交易队列锁”、“UL”、“用户提供的锁)locktypeoobjectname对象解码(lslmode零‘行'“排他”“分享”“共享行排他”“独家”)lockmodeoownerlssidLS。串行#serialnumlsidlsid从sysdbaobjectsO(选择sosusersusernameltypellmodessidsserial#lidlidV$SESSION的我在ssid=V$锁lsid)LS在oobjectid=lsid和oowner通过oowner秩序>的<<系统”oobjectname查看低效率的SQL语句选择执行diskreadsbuffergets圆((buffergetsdiskreads)buffergets)hitradio圆(diskreads执行)readsperrunsqltext从Vsqlarea美元执行死刑>和buffergets>和(buffergetsdiskreads)buffergets,倒序

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/36

常用sql脚本(Commonly used SQL scripts)

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利