会话~跟网站上 ASP,JSP 上会话差不多~   网站是跟机子(如IE)的会话~而 Oracle 是跟 它的访问者进行会话

解决方案 »

  1.   

    ORACLE DBA常用SQL脚本工具->管理篇(1)    hrb_qiuyb(原作) 
      
    关键字     oracle dba sql 脚本工具 
      
    在较长时间的与oracle的交往中,每个DBA特别是一些大侠都有各种各样的完成各种用途的脚本工具,这样很方便的很快捷的完成了日常的工作,下面把我常用的一部分展现给大家,此篇主要侧重于数据库管理,这些脚本都经过严格测试。 1、 表空间统计 A、    脚本说明:这是我最常用的一个脚本,用它可以显示出数据库中所有表空间的状态,如表空间的大小、已使用空间、使用的百分比、空闲空间数及现在表空间的最大块是多大。B、脚本原文:SELECT upper(f.tablespace_name) "表空间名",       d.Tot_grootte_Mb "表空间大小(M)",       d.Tot_grootte_Mb - f.total_bytes "已使用空间(M)",       to_char(round((d.Tot_grootte_Mb - f.total_bytes) / d.Tot_grootte_Mb * 100,2),'990.99') "使用比",       f.total_bytes "空闲空间(M)",       f.max_bytes "最大块(M)" FROM          (SELECT tablespace_name,            round(SUM(bytes)/(1024*1024),2) total_bytes,            round(MAX(bytes)/(1024*1024),2) max_bytes      FROM sys.dba_free_space     GROUP BY tablespace_name) f,    (SELECT dd.tablespace_name, round(SUM(dd.bytes)/(1024*1024),2) Tot_grootte_Mb      FROM   sys.dba_data_files dd      GROUP BY dd.tablespace_name) dWHERE d.tablespace_name = f.tablespace_name    ORDER BY 4 DESC; 2、  查看无法扩展的段A、  脚本说明:ORACLE对一个段比如表段或索引无法扩展时,取决的并不是表空间中剩余的空间是多少,而是取于这些剩余空间中最大的块是否够表比索引的“NEXT”值大,所以有时一个表空间剩余几个G的空闲空间,在你使用时ORACLE还是提示某个表或索引无法扩展,就是由于这一点,这时说明空间的碎片太多了。这个脚本是找出无法扩展的段的一些信息。B、脚本原文:SELECT segment_name,             segment_type,             owner,             a.tablespace_name "tablespacename",             initial_extent/1024 "inital_extent(K)",             next_extent/1024 "next_extent(K)",             pct_increase,             b.bytes/1024 "tablespace max free space(K)",             b.sum_bytes/1024 "tablespace total free space(K)"  FROM dba_segments a,       (SELECT tablespace_name,MAX(bytes) bytes,SUM(bytes) sum_bytes FROM dba_free_space GROUP BY tablespace_name) b WHERE a.tablespace_name=b.tablespace_name    AND next_extent>b.bytes ORDER BY 4,3,1; 3、  查看段(表段、索引段)所使用空间的大小A、  脚本说明:有时你可能想知道一个表或一个索引占用多少M的空间,这个脚本就是满足你的要求的,把<>中的内容替换一下就可以了。B、脚本原文:SELECT owner,              segment_name,              SUM(bytes)/1024/1024    FROM dba_segments   WHERE owner=<segment owner>        And segment_name=<your table or index name>  GROUP BY owner,segment_name   ORDER BY 3 DESC; 4、  查看数据库中的表锁A、  脚本说明: 这方面的语句的样式是很多的,各式一样,不过我认为这个是最实用的,不信你就用一下,无需多说,锁是每个DBA一定都涉及过的内容,当你相知道某个表被哪个session锁定了,你就用到了这个脚本。B、脚本原文:  SELECT A.OWNER,                  A.OBJECT_NAME,                  B.XIDUSN,                 B.XIDSLOT,                 B.XIDSQN,                 B.SESSION_ID,                 B.ORACLE_USERNAME,                 B.OS_USER_NAME,                 B.PROCESS,                 B.LOCKED_MODE,                 C.MACHINE,                 C.STATUS,                 C.SERVER,                 C.SID,                 C.SERIAL#,                 C.PROGRAM      FROM ALL_OBJECTS A,            V$LOCKED_OBJECT B,            SYS.GV_$SESSION C    WHERE ( A.OBJECT_ID = B.OBJECT_ID )      AND (B.PROCESS = C.PROCESS )   --  AND     ORDER BY 1,2   ;    5、  处理存储过程被锁A、  脚本说明:   实际过程中可能你要重新编译某个存储过程理总是处于等待状态,最后会报无法锁定对象,这时你就可以用这个脚本找到锁定过程的那个sid,需要注意的是查v$access这个视图本来就很慢,需要一些布耐心。B、脚本原文:SELECT * FROM V$ACCESS  WHERE owner=<object owner>And object<procedure name> 6、  查看回滚段状态A、  脚本说明这也是DBA经常使用的脚本,因为回滚段是online还是full是他们的关怀之列嘛    B、SELECT a.segment_name,b.status   FROM Dba_Rollback_Segs a,        v$rollstat b         WHERE a.segment_id=b.usn          ORDER BY 2         7、  看哪些session正在使用哪些回滚段      A、 脚本说明: 当你发现一个回滚段处理full状态,你想使它变回online状态,这时你便会用alter rollback segment rbs_seg_name shrink,可很多时侯确shrink不回来,主要是由于某个session在用,这时你就用到了这个脚本,找到了sid的serial#余下的事就不用我说了吧。B、脚本原文 SELECT  r.name 回滚段名,  s.sid,  s.serial#,  s.username 用户名,  s.status,  t.cr_get,  t.phy_io,  t.used_ublk,  t.noundo,  substr(s.program, 1, 78) 操作程序FROM   sys.v_$session s,sys.v_$transaction t,sys.v_$rollname rWHERE  t.addr = s.taddr and t.xidusn = r.usn -- AND r.NAME IN ('ZHYZ_RBS')ORDER  BY t.cr_get,t.phy_io 8、  查看正在使用临时段的session           A、 脚本说明:许多的时侯你在查看哪些段无法扩展时,回显的结果是临时段,或你做表空间统计时发现临段表空间的可用空间几乎为0,这时按oracle的说法是你只有重新启动数据库才能回收这部分空间。实际过程中没那么复杂,使用以下这段脚本把占用临时段的session杀掉,然后用alter tablespace temp coalesce;这个语句就把temp表空间的空间回收回来了。B、 脚本原文 SELECT username,       sid,       serial#,       sql_address,       machine,       program,       tablespace,       segtype,       contents   FROM v$session se,       v$sort_usage su WHERE se.saddr=su.session_addr   (待续) 
      

  2.   

    包含哪些信息  select * from v$SESSION;  信息在动态视图中
    一个session 一个会话 
      

  3.   

    SESSION,就是会话的意思
    包含访问数据库的用户的信息就好比你用SYSTEM用户登陆ORACLE,会有一个SESSION保存你所访问数据库的一些信息
    保持你的连接访问状态。
      

  4.   

    有了session用戶才能訪問數據庫。
    一個用戶聯接到數據庫就會為他創建一個session。這個概念是很多地方都存在的。
    比如,一台機器聯接到另一台機器,這時候在被聯接的機器上就會創建一個session。
    會話就是建立一種信任。
      

  5.   

    一个session就是一个联接.不过这个连接是经过oracle信任的,即你输入用户名与口令才能得到.v$session可能得到用户的一些基础信息。oracle TNS侦听这个会话,并且保存到一个文件中.如果管理员查某年某日一些用户的登录成功与失败的信息。只要从这个文件查询.
    会话是即是成功的登录者才会取得。同时oracle会分配一些内存区域给你,总之会话很很多窍门.
      

  6.   

    SESSION就是会话
    就是一个联接的信息