vue做直播网站,上海最繁华的五个区,新乡中企网站建设,网站建设制作开发Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间#xff0c;如果不能重启实例#xff0c;而一直保持问题sql语句的执行#xff0c;temp表空间会一直增长。直到耗尽硬盘空间。网… Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间如果不能重启实例而一直保持问题sql语句的执行temp表空间会一直增长。直到耗尽硬盘空间。网上有人猜测在磁盘空间的分配上oracle使用的是贪心算法如果上次磁盘空间消耗达到1GB那么临时表空间就是1GB。也就是说当前临时表空间文件的大小是历史上使用临时表空间最大的大小。临时表空间的主要作用索引create或rebuildOrderby或groupbyDistinct操作Union或intersect或minusSort-mergejoinsanalyze1.select*fromv$tablespace;查询空间selecttablespace_name,file_name,bytes/1024/1024file_size,autoextensiblefromdba_temp_files;2.创建临时表空间CREATETEMPORARYTABLESPACEtemp02TEMPFILEE:\app\Administrator\oradata\orcl\temp02.dbfSIZE200mAUTOEXTENDONNEXT32mMAXSIZE2048mEXTENTMANAGEMENTLOCAL;3.DROPTABLESPACEtemp02INCLUDINGCONTENTSANDDATAFILES;删除临时表空间4.表空间收缩alterdatabasetempfileE:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP02.DBFresize200M;5.查询临时表空间的大小selecttablespace_name,file_name,bytes/1024/1024file_size,autoextensiblefromdba_temp_files;6.向临时表空间中添加数据文件altertablespacetempaddtempfileE:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP03.DBFsize100m;selecttablespace_name,file_name,bytes/1024/1024file_size,autoextensiblefromdba_temp_files;7.更改系统默认表空间--查询默认临时表空间select*fromdatabase_propertieswhereproperty_nameDEFAULT_TEMP_TABLESPACE;--修改默认临时表空间alterdatabasedefaulttemporarytablespacetemp1;所有用户的默认临时表空间都将切换为新的临时表空间selectusername,temporary_tablespace,default_fromdba_users;--更改某一用户的临时表空间alteruserscotttemporarytablespacetemp;8.查看临时表空间的使用情况GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小dba_temp_files视图的bytes字段记录的是临时表空间的总大小SELECTtemp_used.tablespace_name,total-usedasFree,totalasTotal,round(nvl(total-used,0)*100/total,3)FreepercentFROM(SELECTtablespace_name,SUM(bytes_used)/1024/1024usedFROMGV_$TEMP_SPACE_HEADERGROUPBYtablespace_name)temp_used,(SELECTtablespace_name,SUM(bytes)/1024/1024totalFROMdba_temp_filesGROUPBYtablespace_name)temp_totalWHEREtemp_used.tablespace_nametemp_total.tablespace_name9.查找消耗资源比较的sql语句Selectse.username,se.sid,su.extents,su.blocks*to_number(rtrim(p.value))asSpace,tablespace,segtype,sql_textfromv$sort_usagesu,v$parameterp,v$sessionse,v$sqlswherep.namedb_block_sizeandsu.session_addrse.saddrands.hash_valuesu.sqlhashands.addresssu.sqladdrorderbyse.username,se.sid10.查看当前临时表空间使用大小与正在占用临时表空间的sql语句selectsess.SID,segtype,blocks*8/1000MB,sql_textfromv$sort_usagesort,v$sessionsess,v$sqlsqlwheresort.SESSION_ADDRsess.SADDRandsql.ADDRESSsess.SQL_ADDRESSorderbyblocksdesc;11.临时表空间组1创建临时表空间组createtemporarytablespacetempts1tempfileE:\APP\ADMINISTRATOR\ORADATA\ORCL\temp1_02.dbfsize100Mtablespacegroupgroup1;createtemporarytablespacetempts2tempfileE:\APP\ADMINISTRATOR\ORADATA\ORCL\temp2_02.dbfsize100Mtablespacegroupgroup2;2查询临时表空间组dba_tablespace_groups视图select*fromdba_tablespace_groups;GROUP_NAMETABLESPACE_NAME------------------------------------------------------------GROUP1TEMPTS1GROUP2TEMPTS23将表空间从一个临时表空间组移动到另外一个临时表空间组altertablespacetempts1tablespacegroupGROUP2;select*fromdba_tablespace_groups;GROUP_NAMETABLESPACE_NAME------------------------------------------------------------GROUP2TEMPTS1GROUP2TEMPTS24把临时表空间组指定给用户alteruserscotttemporarytablespaceGROUP2;5在数据库级设置临时表空间alterdatabasedb_namedefaulttemporarytablespaceGROUP2;6删除临时表空间组(删除组成临时表空间组的所有临时表空间)droptablespacetempts1includingcontentsanddatafiles;select*fromdba_tablespace_groups;GROUP_NAMETABLESPACE_NAME------------------------------------------------------------GROUP2TEMPTS2droptablespacetempts2includingcontentsanddatafiles;select*fromdba_tablespace_groups;GROUP_NAMETABLESPACE_NAME12、对临时表空间进行shrink11g新增的功能--将temp表空间收缩为20Maltertablespacetempshrinkspacekeep20M;--自动将表空间的临时文件缩小到最小可能的大小ALTERTABLESPACEtempSHRINKTEMPFILEE:\APP\ADMINISTRATOR\ORADATA\ORCL\temp2_02.dbf;不推荐使用一个非常大的临时表空间而应该考虑使用一些较小的临时表空间并且创建一个临时表空间组来保存它们。 转载于:https://blog.51cto.com/welove/1295647