简答题 7.  如何查看过去某一段时间数据库系统的会话是否有问题?
【正确答案】可以通过DBA_HIST_ACTIVE_SESS_HISTORY视图来进行查询,首先查询指定时间段的等待事件,下例中的SQL语句查询的是2016年5月10号下午17点30分到19点30分这段时间内数据库的等待事件和SQL的执行情况,其中,COUNTS列的值比较大的就是SQL执行时间较长的,需要特别关注:
   
   
   下面的SQL语句可以查询到具体SQL的扫描操作,初步预估SQL问题:
   
   根据以上的SQL语句可以知道,对表做的是否是全表扫描以及当时会话的等待事件是什么,然后就可以根据等待事件进行SQL分析了。
   如下的SQL语句可以查询某一段时间内,会话所持有的锁信息:
   
   如下的SQL语句可以查询系统问题时间段内的会话详情:
   
【答案解析】