,关于消除临时ts暴涨的方法
,,经常有人问临时表空间暴涨的问题,以及如何回收临时表空间,由于版本的不同,方法显然也多种多样,但这些方法显示是治标不治本的办法,只有深刻理解临时表空间快速增加的原因,才能从根本上解决临时ts的问题。
是什么操作在使用临时ts吗?
——索引创建或重创建又是;
——订单或组BY
——不同的操作又是;
——工会,相交,MINUS
——分类合并连接只;
——分析操作
——有些异常将会引起临时暴涨
,
,,所以,在处理以上操作时,dba需要加倍关注临时的使用情况,v $ sort_segment字典可以记载临时的比较详细的使用情况,而v sort_usage美元将会告诉我们是谁在做什么。
完成选择tablespace_name current_user、total_blocks used_blocks, free_blocks从v $ sort_segment;
TABLESPACE_NAME current_user TOTAL_BLOCKS USED_BLOCKS FREE_BLOCKS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
临时1 63872 30464 33408
完成选择用户名、session_addr sqladdr, sqlhash v sort_usage美元
用户名SESSION_ADDR SQLADDR SQLHASH
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
网吧C0000000D7EF99E8 C0000000E1BFE970 4053158416
然后通过多表联接,我们可以找出更详细的操作:
完成选择se.username se.sid、su.extents su.blocks * to_number(空白(p.value))空间,表空间,segtype, sql_text从v $ sort_usage苏,v $参数p, v $会话,v $ sql年代p.name=& # 39; db_block_size& # 39;和su.session_addr=addr和苏s.hash_value=https://www.yisu.com/zixun/su.sqlhash和s.address=qladdr order by se.username se.sid;
用户表空间SEGTYPE SID扩展空间
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SQL_TEXT
-------------------------------------------------------------------------
网吧42 238 249561088临时排序
从系统选择1。流美元_prepare_ddl p (p。global_flag=1,: 1是null)或(p。global_flag=0和p.usrid=: 2))和rownum=1
本例应该是由一些异常引起的,其实大多数情况下排序都会在几乎内结束,如果在某种操作的若干秒内刚好就捕获了该SQL,应该走狗屎运的事情,即你知道某个SQL将会发生排序操作,当你想捕抓它们时,发现它们已排序完经了,排序完毕后排序段会被smon清除。但很多时间,我们则会遇到临时段没有被释放,临时表空间几乎满的状况,这时该如何处理呢?
metalink上推荐的方法收集整理如下
——重启实例
重启实例重启时,smon进程会完成临时段释放,不过很多的时侯我们的库是不允许的,
所以这种方法缺应用机会不多,不过这种方法还是很好用的,如果你的实例在重启后段
没有被释放,这种情况就需要慎重对待。
——修改参数(仅适用于8日及8我以下版本)
完成修改表空间临时增加1;
完成修改表空间临时增加0;
——合并碎片
完成修改表空间临时合并;
——诊断事件
完成改变会话设置事件& # 39;即时跟踪名称DROP_SEGMENTS四级& # 39;,
说明:temp表空间的TS #为3,所以TS # + 1=4
——重建临时
完成修改数据库tempfile & # 39;……& # 39;下降;
完成修改表空间临时添加tempfile & # 39;……& # 39;;
可以说,以上的方法都是治标不治本的,因为临时增长过快显然是由于磁盘排序过的多,造成磁盘排序的原因也很多,比如排序面积较小等原因,当然,排序区设置多大才合理?这个当然需要满足内存排序大于99%以上哦。
目标实例效率百分比(100%)
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
缓冲Nowait %: 100.00重做Nowait %: 99.99