zoukankan      html  css  js  c++  java
  • Oracle日常性能查看

    判断回滚段竞争的SQL语句:(当Ratio大于2时存在回滚段竞争,需要增加更多的回滚段)
    select rn.name, rs.GETS, rs.WAITS, (rs.WAITS / rs.GETS) * 100 ratio
    from v$rollstat rs, v$rollname rn
    where rs.USN = rn.usn
     
    判断恢复日志竞争的SQL语句:(immediate_contention或wait_contention的值大于1时存在竞争)
    select name,
    (t.IMMEDIATE_MISSES /
    decode((t.IMMEDIATE_GETS t.IMMEDIATE_MISSES),
    0,
    -1,
    (t.IMMEDIATE_GETS t.IMMEDIATE_MISSES))) * 100 immediate_contention,
    (t.MISSES / decode((t.GETS t.MISSES), 0, -1, (t.GETS t.MISSES))) * 100 wait_contention
    from v$latch t
    where name in ('redo copy', 'redo allocation')
    判断表空间碎片:(如果最大空闲空间占总空间很大比例则可能不存在碎片,如果比例较小,且有许多空闲空间,则可能碎片很多)
    select t.tablespace_name,
    sum(t.bytes),
    max(t.bytes),
    count(*),
    max(t.bytes) / sum(t.bytes) radio
    from dba_free_space t
    group by t.tablespace_name
    order by t.tablespace_name
    确定命中排序域的次数:
    select t.NAME, t.VALUE from v$sysstat t where t.NAME like 'sort%'
    查看当前SGA值:
    select * from v$sga
    确定高速缓冲区命中率:(如果命中率低于70%,则应该加大init.ora参数中的DB_BLOCK_BUFFER的值)
    select 1 - sum(decode(name, 'physical reads', value, 0)) /
    (sum(decode(name, 'db block gets', value, 0))
    sum(decode(name, 'consistent gets', value, 0))) hit_ratio
    from v$sysstat t
    where name in ('physical reads', 'db block gets', 'consistent gets')
    确定共享池中的命中率:(如果ratio1大于1时,需要加大共享池,如果ratio2大于10%时,需要加大共享池SHARED_POOL_SIZE)
    select sum(pins) pins,
    sum(reloads) reloads,
    (sum(reloads) / sum(pins)) * 100 ratio1
    from v$librarycache
    select sum(gets) gets,
    sum(getmisses) getmisses,
    (sum(getmisses) / sum(gets)) * 100 ratio2
    from v$rowcache
    查询INIT.ORA参数:
    select * from v$parameter
    /////
    Oracle性能参数查看(转)
    0、数据库参数属性
    col PROPERTY_NAME format a25
    col PROPERTY_VALUE format a30
    col DESCRIPTION format a100
    select * from database_properties;
    select * from v$version;
    1、求当前会话的SID,SERIAL#
    SELECT Sid, Serial# FROM V$session
    WHERE Audsid = Sys_Context('USERENV', 'SESSIONID');
    2、查询session的OS进程ID
    SELECT p.Spid "OS Thread", b.NAME "Name-User", s.Program, s.Sid, s.Serial#,s.Osuser, s.Machine
    FROM V$process p, V$session s, V$bgprocess b
    WHERE p.Addr = s.Paddr
    AND p.Addr = b.Paddr And (s.sid=&1 or p.spid=&1)
    UNION ALL
    SELECT p.Spid "OS Thread", s.Username "Name-User", s.Program, s.Sid,s.Serial#, s.Osuser, s.Machine
    FROM V$process p, V$session s
    WHERE p.Addr = s.Paddr
    And (s.sid=&1 or p.spid=&1)
    AND s.Username IS NOT NULL;
    3、根据sid查看对应连接正在运行的sql
    SELECT /* PUSH_SUBQ */ Command_Type, Sql_Text, Sharable_Mem, Persistent_Mem, Runtime_Mem, Sorts,
    Version_Count, Loaded_Versions, Open_Versions, Users_Opening, Executions,
    Users_Executing, Loads, First_Load_Time, Invalidations, Parse_Calls,
    Disk_Reads, Buffer_Gets, Rows_Processed, SYSDATE Start_Time,
    SYSDATE Finish_Time, '>' || Address Sql_Address, 'N' Status
    FROM V$sqlarea WHERE Address = (SELECT Sql_Address
    FROM V$session WHERE Sid = &sid );
    4、查找object为哪些进程所用
    SELECT p.Spid, s.Sid, s.Serial# Serial_Num, s.Username User_Name,
    a.TYPE Object_Type, s.Osuser Os_User_Name, a.Owner,
    a.OBJECT Object_Name,
    Decode(Sign(48 - Command), 1, To_Char(Command), 'Action Code #' || To_Char(Command)) Action,
    p.Program Oracle_Process, s.Terminal Terminal, s.Program Program,
    s.Status Session_Status
    FROM V$session s, V$access a, V$process p
    WHERE s.Paddr = p.Addr
    AND s.TYPE = 'USER'
    AND a.Sid = s.Sid
    AND a.OBJECT = '&obj'
    ORDER BY s.Username, s.Osuser
    5、查看有哪些用户连接
    SELECT s.Osuser Os_User_Name,Decode(Sign(48 - Command),1,To_Char(Command),
    'Action Code #' || To_Char(Command)) Action,
    p.Program Oracle_Process, Status Session_Status, s.Terminal Terminal,
    s.Program Program, s.Username User_Name,
    s.Fixed_Table_Sequence Activity_Meter, '' Query, 0 Memory,
    0 Max_Memory, 0 Cpu_Usage, s.Sid, s.Serial# Serial_Num
    FROM V$session s, V$process p
    WHERE s.Paddr = p.Addr
    AND s.TYPE = 'USER'
    ORDER BY s.Username, s.Osuser
    6、根据v.sid查看对应连接的资源占用等情况
    SELECT n.NAME, v.VALUE, n.CLASS, n.Statistic# FROM V$statname n, V$sesstat v
    WHERE v.Sid = &sid
    AND v.Statistic# = n.Statistic#
    ORDER BY n.CLASS, n.Statistic#
    7、查询耗资源的进程(top session)
    SELECT s.Schemaname Schema_Name,Decode(Sign(48 - Command),
    1, To_Char(Command), 'Action Code #' || To_Char(Command)) Action,Status Session_Status, s.Osuser Os_User_Name, s.Sid, p.Spid,s.Serial# Serial_Num, Nvl(s.Username, '[Oracle process]') User_Name,
    s.Terminal Terminal, s.Program Program, St.VALUE Criteria_Value
    FROM V$sesstat St, V$session s, V$process p
    WHERE St.Sid = s.Sid
    AND St.Statistic# = To_Number('38')
    AND ('ALL' = 'ALL' OR s.Status = 'ALL')
    AND p.Addr = s.Paddr
    ORDER BY St.VALUE DESC, p.Spid ASC, s.Username ASC, s.Osuser ASC
    8、查看锁(lock)情况
    SELECT /* RULE */ Ls.Osuser Os_User_Name, Ls.Username User_Name,Decode(Ls.TYPE,
    'RW', 'Row wait enqueue lock', 'TM', 'DML enqueue lock','TX', 'Transaction enqueue lock', 'UL', 'User supplied lock') Lock_Type,o.Object_Name OBJECT,Decode(Ls.Lmode,1, NULL, 2, 'Row Share', 3, 'Row Exclusive',
    4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive',NULL) Lock_Mode,o.Owner, Ls.Sid, Ls.Serial# Serial_Num, Ls.Id1, Ls.Id2 FROM Sys.Dba_Objects o,
    (SELECT s.Osuser, s.Username, l.TYPE, l.Lmode, s.Sid, s.Serial#, l.Id1,l.Id2 FROM V$session s, V$lock l
    WHERE s.Sid = l.Sid) Ls
    WHERE o.Object_Id = Ls.Id1
    AND o.Owner <> 'SYS'
    ORDER BY o.Owner, o.Object_Name;
    9、查看等待(wait)情况
    SELECT Ws.CLASS, Ws.COUNT COUNT, SUM(Ss.VALUE) Sum_Value
    FROM V$waitstat Ws, V$sysstat Ss
    WHERE Ss.NAME IN ('db block gets', 'consistent gets')
    GROUP BY Ws.CLASS, Ws.COUNT;
    10、求process/session的状态
    SELECT p.Pid, p.Spid, s.Program, s.Sid, s.Serial#
    FROM V$process p, V$session s
    WHERE s.Paddr = p.Addr;
    11、求谁阻塞了某个session(10g)
    SELECT Sid, Username, Event, Blocking_Session, Seconds_In_Wait, Wait_Time
    FROM V$session
    WHERE State IN ('WAITING')
    AND Wait_Class != 'Idle';
    12、查会话的阻塞
    col user_name format a32
    SELECT /* rule */ Lpad(' ', Decode(l.Xidusn, 0, 3, 0)) || l.Oracle_Username User_Name,
    o.Owner, o.Object_Name, s.Sid, s.Serial#
    FROM V$locked_Object l, Dba_Objects o, V$session s
    WHERE l.Object_Id = o.Object_Id
    AND l.Session_Id = s.Sid
    ORDER BY o.Object_Id, Xidusn DESC;
    col username format a15
    col lock_level format a8
    col owner format a18
    col object_name format a32
    SELECT /* rule */ s.Username,Decode(l.TYPE, 'tm', 'table lock', 'tx', 'row lock', NULL) Lock_Level,
    o.Owner, o.Object_Name, s.Sid, s.Serial#
    FROM V$session s, V$lock l, Dba_Objects o
    WHERE l.Sid = s.Sid
    AND l.Id1 = o.Object_Id( )
    AND s.Username IS NOT NULL;
    13、求等待的事件及会话信息/求会话的等待及会话信息
    SELECT Se.Sid, s.Username, Se.Event, Se.Total_Waits, Se.Time_Waited,Se.Average_Wait
    FROM V$session s, V$session_Event Se
    WHERE s.Username IS NOT NULL
    AND Se.Sid = s.Sid
    AND s.Status = 'ACTIVE'
    AND Se.Event NOT LIKE '%SQL*Net%'
    ORDER BY s.Username;
    SELECT s.Sid, s.Username, Sw.Event, Sw.Wait_Time, Sw.State,Sw.Seconds_In_Wait
    FROM V$session s, V$session_Wait Sw
    WHERE s.Username IS NOT NULL
    AND Sw.Sid = s.Sid
    AND Sw.Event NOT LIKE '%SQL*Net%'
    ORDER BY s.Username;
    14、求会话等待的file_id/block_id
    col event format a24
    col p1text format a12
    col p2text format a12
    col p3text format a12
    SELECT Sid, Event, P1text, P1, P2text, P2, P3text, P3
    FROM V$session_Wait
    WHERE Event NOT LIKE '%SQL%'
    AND Event NOT LIKE '%rdbms%'
    AND Event NOT LIKE '%mon%'
    ORDER BY Event;
    SELECT NAME, Wait_Time
    FROM V$latch l
    WHERE EXISTS (SELECT 1
    FROM (SELECT Sid, Event, P1text, P1, P2text, P2, P3text, P3
    FROM V$session_Wait
    WHERE Event NOT LIKE '%SQL%'
    AND Event NOT LIKE '%rdbms%'
    AND Event NOT LIKE '%mon%') x
    WHERE x.P1 = l.Latch#);
    15、求会话等待的对象
    col owner format a18
    col segment_name format a32
    col segment_type format a32
    SELECT Owner, Segment_Name, Segment_Type
    FROM Dba_Extents
    WHERE File_Id = &File_Id
    AND &Block_Id BETWEEN Block_Id AND Block_Id Blocks - 1;
    16、求出某个进程,并对它进行跟踪
    SELECT s.Sid, s.Serial#
    FROM V$session s, V$process p
    WHERE s.Paddr = p.Addr
    AND p.Spid = &1;
    Exec Dbms_System.Set_Sql_Trace_In_Session(&1, &2, TRUE);
    Exec Dbms_System.Set_Sql_Trace_In_Session(&1, &2, FALSE);
    17、求当前session的跟踪文件
    SELECT P1.VALUE || '/' || P2.VALUE || '_ora_' || p.Spid || '.ora' Filename
    FROM V$process p, V$session s, V$parameter P1, V$parameter P2
    WHERE P1.NAME = 'user_dump_dest'
    AND P2.NAME = 'instance_name'
    AND p.Addr = s.Paddr
    AND s.Audsid = Userenv('SESSIONID')
    AND p.Background IS NULL
    AND Instr(p.Program, 'CJQ') = 0;
    18、求出锁定的对象
    SELECT Do.Object_Name, Session_Id, Process, Locked_Mode
    FROM V$locked_Object Lo, Dba_Objects Do
    WHERE Lo.Object_Id = Do.Object_Id;
    19、DB_Cache建议
    SELECT size_for_estimate, buffers_for_estimate, estd_physical_read_factor, estd_physical_reads
    FROM V$DB_CACHE_ADVICE
    WHERE name = 'DEFAULT'
    AND block_size = (SELECT value FROM V$PARAMETER WHERE name = 'db_block_size')
    AND advice_status = 'ON';
    20、查看各项SGA相关参数:SGA,SGASTAT
    select substr(name,1,10) name,substr(value,1,10) value
    from v$parameter where name = 'log_buffer';
    select * from v$sgastat ;
    select * from v$sga;
    show parameters area_size   #查看 各项区域内存参数, 其中sort_area为排序参数用;
     
    各项视图建议参数值:V$DB_CACHE_ADVICE、V$SHARED_POOL_ADVICE),关于PGA
    也有相关视图V$PGA_TARGET_ADVICE 等。
    21、内存使用锁定在物理内存:
    AIX 5L(AIX 4.3.3 以上)
    logon aix as root
    cd /usr/samples/kernel
    ./vmtune (信息如下) v_pingshm已经是1
    ./vmtune -S 1
    然后oracle用户修改initSID.ora 中 lock_sga = true
    重新启动数据库
    HP UNIX
    Root身份登陆
    Create the file "/etc/privgroup": vi /etc/privgroup
    Add line "dba MLOCK" to file
    As root, run the command "/etc/setprivgrp -f /etc/privgroup":
    $/etc/setprivgrp -f /etc/privgroup
    oracle用户修改initSID.ora中lock_sga=true
    重新启动数据库
    SOLARIS (solaris2.6以上)
    8i版本以上数据库默认使用隐藏参数 use_ism = true ,自动锁定SGA于内存中,不用设置
    lock_sga, 如果设置 lock_sga =true 使用非 root 用户启动数据库将返回错误。
    WINDOWS (作用不大)
    不能设置lock_sga=true,可以通过设置pre_page_sga=true,使得数据库启动的时候就把所有内
    存页装载,这样可能起到一定的作用。
    22、内存参数调整
    数据缓冲区命中率
    select value from v$sysstat where name ='physical reads';
    select value from v$sysstat where name ='physical reads direct';
    select value from v$sysstat where name ='physical reads direct (lob)';
    select value from v$sysstat where name ='consistent gets';
    select value from v$sysstat where name = 'db block gets';
    这里命中率的计算应该是
    令 x = physical reads direct physical reads direct (lob)
    命中率 =100 - ( physical reads - x) / (consistent gets db block gets - x)*100
    通常如果发现命中率低于90%,则应该调整应用可可以考虑是否增大数据缓冲区;
    共享池的命中率
    select sum(pinhits)/sum(pins)*100 "hit radio" from v$librarycache;
    假如共享池的命中率低于95%,就要考虑调整应用(通常是没使用bind var )或者增加内存;
    关于排序部分
    select name,value from v$sysstat where name like '%sort%';
    假如我们发现sorts (disk)/ (sorts (memory) sorts (disk))的比例过高,则通常意味着
    sort_area_size 部分内存较小,可考虑调整相应的参数。
    关于log_buffer
    select name,value from v$sysstat
    where name in('redo entries','redo buffer allocation retries');
    假如 redo buffer allocation retries/ redo entries 的比例超过1%我们就可以考虑增大log_buffer
     
    /////
    July 28
    oracle 常用SQL查询,望对大家有所启示
    1、查看表空间的名称及大小
    select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
    from dba_tablespaces t, dba_data_files d
    where t.tablespace_name = d.tablespace_name
    group by t.tablespace_name;
    2、查看表空间物理文件的名称及大小
    select tablespace_name, file_id, file_name,
    round(bytes/(1024*1024),0) total_space
    from dba_data_files
    order by tablespace_name;
    3、查看回滚段名称及大小
    select segment_name, tablespace_name, r.status,
    (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,
    max_extents, v.curext CurExtent
    From dba_rollback_segs r, v$rollstat v
    Where r.segment_id = v.usn( )
    order by segment_name ;
    4、查看控制文件
    select name from v$controlfile;
    5、查看日志文件
    select member from v$logfile;
    6、查看表空间的使用情况
    select sum(bytes)/(1024*1024) as free_space,tablespace_name
    from dba_free_space
    group by tablespace_name;
    SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
    (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
    FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
    WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;
    7、查看数据库库对象
    select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;
    8、查看数据库的版本 
    Select version FROM Product_component_version
    Where SUBSTR(PRODUCT,1,6)='Oracle';
    9、查看数据库的创建日期和归档方式
    Select Created, Log_Mode, Log_Mode From V$Database;
    10、捕捉运行很久的SQL
    column username format a12
    column opname format a16
    column progress format a8
    select username,sid,opname,
    round(sofar*100 / totalwork,0) || '%' as progress,
    time_remaining,sql_text
    from v$session_longops , v$sql
    where time_remaining <> 0
    and sql_address = address
    and sql_hash_value = hash_value
    /
    11。查看数据表的参数信息
    SELECT partition_name, high_value, high_value_length, tablespace_name,
    pct_free, pct_used, ini_trans, max_trans, initial_extent,
    next_extent, min_extent, max_extent, pct_increase, FREELISTS,
    freelist_groups, LOGGING, BUFFER_POOL, num_rows, blocks,
    empty_blocks, avg_space, chain_cnt, avg_row_len, sample_size,
    last_analyzed
    FROM dba_tab_partitions
    --WHERE table_name = :tname AND table_owner = :towner
    ORDER BY partition_position
    12.查看还没提交的事务
    select * from v$locked_object;
    select * from v$transaction;
    13。查找object为哪些进程所用
    select
    p.spid,
    s.sid,
    s.serial# serial_num,
    s.username user_name,
    a.type object_type,
    s.osuser os_user_name,
    a.owner,
    a.object object_name,
    decode(sign(48 - command),
    1,
    to_char(command), 'Action Code #' || to_char(command) ) action,
    p.program oracle_process,
    s.terminal terminal,
    s.program program,
    s.status session_status
    from v$session s, v$access a, v$process p
    where s.paddr = p.addr and
    s.type = 'USER' and
    a.sid = s.sid and
    a.object='SUBSCRIBER_ATTR'
    order by s.username, s.osuser
    14。回滚段查看
    select rownum, sys.dba_rollback_segs.segment_name Name, v$rollstat.extents
    Extents, v$rollstat.rssize Size_in_Bytes, v$rollstat.xacts XActs,
    v$rollstat.gets Gets, v$rollstat.waits Waits, v$rollstat.writes Writes,
    sys.dba_rollback_segs.status status from v$rollstat, sys.dba_rollback_segs,
    v$rollname where v$rollname.name( ) = sys.dba_rollback_segs.segment_name and
    v$rollstat.usn ( ) = v$rollname.usn order by rownum
    15。耗资源的进程(top session)
    select s.schemaname schema_name, decode(sign(48 - command), 1,
    to_char(command), 'Action Code #' || to_char(command) ) action, status
    session_status, s.osuser os_user_name, s.sid, p.spid , s.serial# serial_num,
    nvl(s.username, '[Oracle process]') user_name, s.terminal terminal,
    s.program program, st.value criteria_value from v$sesstat st, v$session s , v$process p
    where st.sid = s.sid and st.statistic# = to_number('38') and ('ALL' = 'ALL'
    or s.status = 'ALL') and p.addr = s.paddr order by st.value desc, p.spid asc, s.username asc, s.osuser asc
    16。查看锁(lock)情况
    select /* RULE */ ls.osuser os_user_name, ls.username user_name,
    decode(ls.type, 'RW', 'Row wait enqueue lock', 'TM', 'DML enqueue lock', 'TX',
    'Transaction enqueue lock', 'UL', 'User supplied lock') lock_type,
    o.object_name object, decode(ls.lmode, 1, null, 2, 'Row Share', 3,
    'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', null)
    lock_mode, o.owner, ls.sid, ls.serial# serial_num, ls.id1, ls.id2
    from sys.dba_objects o, ( select s.osuser, s.username, l.type,
    l.lmode, s.sid, s.serial#, l.id1, l.id2 from v$session s,
    v$lock l where s.sid = l.sid ) ls where o.object_id = ls.id1 and o.owner
    <> 'SYS' order by o.owner, o.object_name
    17。查看等待(wait)情况
    SELECT v$waitstat.class, v$waitstat.count count, SUM(v$sysstat.value) sum_value
    FROM v$waitstat, v$sysstat WHERE v$sysstat.name IN ('db block gets',
    'consistent gets') group by v$waitstat.class, v$waitstat.count
    18。查看sga情况
    SELECT NAME, BYTES FROM SYS.V_$SGASTAT ORDER BY NAME ASC
    19。查看catched object
    SELECT owner, name, db_link, namespace,
    type, sharable_mem, loads, executions,
    locks, pins, kept FROM v$db_object_cache
    20。查看V$SQLAREA
    SELECT SQL_TEXT, SHARABLE_MEM, PERSISTENT_MEM, RUNTIME_MEM, SORTS,
    VERSION_COUNT, LOADED_VERSIONS, OPEN_VERSIONS, USERS_OPENING, EXECUTIONS,
    USERS_EXECUTING, LOADS, FIRST_LOAD_TIME, INVALIDATIONS, PARSE_CALLS, DISK_READS,
    BUFFER_GETS, ROWS_PROCESSED FROM V$SQLAREA
    21。查看object分类数量
    select decode (o.type#,1,'INDEX' , 2,'TABLE' , 3 , 'CLUSTER' , 4, 'VIEW' , 5 ,
    'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) object_type , count(*) quantity from
    sys.obj$ o where o.type# > 1 group by decode (o.type#,1,'INDEX' , 2,'TABLE' , 3
    , 'CLUSTER' , 4, 'VIEW' , 5 , 'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) union select
    'COLUMN' , count(*) from sys.col$ union select 'DB LINK' , count(*) from
    22。按用户查看object种类
    select u.name schema, sum(decode(o.type#, 1, 1, NULL)) indexes,
    sum(decode(o.type#, 2, 1, NULL)) tables, sum(decode(o.type#, 3, 1, NULL))
    clusters, sum(decode(o.type#, 4, 1, NULL)) views, sum(decode(o.type#, 5, 1,
    NULL)) synonyms, sum(decode(o.type#, 6, 1, NULL)) sequences,
    sum(decode(o.type#, 1, NULL, 2, NULL, 3, NULL, 4, NULL, 5, NULL, 6, NULL, 1))
    others from sys.obj$ o, sys.user$ u where o.type# >= 1 and u.user# =
    o.owner# and u.name <> 'PUBLIC' group by u.name order by
    sys.link$ union select 'CONSTRAINT' , count(*) from sys.con$
    23。有关connection的相关信息
    1)查看有哪些用户连接
    select s.osuser os_user_name, decode(sign(48 - command), 1, to_char(command),
    'Action Code #' || to_char(command) ) action, p.program oracle_process,
    status session_status, s.terminal terminal, s.program program,
    s.username user_name, s.fixed_table_sequence activity_meter, '' query,
    0 memory, 0 max_memory, 0 cpu_usage, s.sid, s.serial# serial_num
    from v$session s, v$process p where s.paddr=p.addr and s.type = 'USER'
    order by s.username, s.osuser
    2)根据v.sid查看对应连接的资源占用等情况
    select n.name,
    v.value,
    n.class,
    n.statistic#
    from v$statname n,
    v$sesstat v
    where v.sid = 71 and
    v.statistic# = n.statistic#
    order by n.class, n.statistic#
    3)根据sid查看对应连接正在运行的sql
    select /* PUSH_SUBQ */
    command_type,
    sql_text,
    sharable_mem,
    persistent_mem,
    runtime_mem,
    sorts,
    version_count,
    loaded_versions,
    open_versions,
    users_opening,
    executions,
    users_executing,
    loads,
    first_load_time,
    invalidations,
    parse_calls,
    disk_reads,
    buffer_gets,
    rows_processed,
    sysdate start_time,
    sysdate finish_time,
    '>' || address sql_address,
    'N' status
    from v$sqlarea
    where address = (select sql_address from v$session where sid = 71)
    24.查询表空间使用情况select a.tablespace_name "表空间名称",
    100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "占用率(%)",
    round(a.bytes_alloc/1024/1024,2) "容量(M)",
    round(nvl(b.bytes_free,0)/1024/1024,2) "空闲(M)",
    round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "使用(M)",
    Largest "最大扩展段(M)",
    to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "采样时间"
    from (select f.tablespace_name,
    sum(f.bytes) bytes_alloc,
    sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes
    from dba_data_files f
    group by tablespace_name) a,
    (select f.tablespace_name,
    sum(f.bytes) bytes_free
    from dba_free_space f
    group by tablespace_name) b,
    (select round(max(ff.length)*16/1024,2) Largest,
    ts.name tablespace_name
    from sys.fet$ ff, sys.file$ tf,sys.ts$ ts
    where ts.ts#=ff.ts# and ff.file#=tf.relfile# and ts.ts#=tf.ts#
    group by ts.name, tf.blocks) c
    where a.tablespace_name = b.tablespace_name and a.tablespace_name = c.tablespace_name
    25. 查询表空间的碎片程度
    select tablespace_name,count(tablespace_name) from dba_free_space group by tablespace_name
    having count(tablespace_name)>10;
    alter tablespace name coalesce;
    alter table name deallocate unused;
    create or replace view ts_blocks_v as
    select tablespace_name,block_id,bytes,blocks,'free space' segment_name from dba_free_space
    union all
    select tablespace_name,block_id,bytes,blocks,segment_name from dba_extents;
    select * from ts_blocks_v;
    select tablespace_name,sum(bytes),max(bytes),count(block_id) from dba_free_space
    group by tablespace_name;
    26.查看有哪些实例在运行:
    select * from v$active_instances;
    12:15 PM | Add a comment | Permalink | Blog it | Oracle
    ORACLE性能调优原则
    数据库的硬件配置:CPU、内存、网络条件
    1.         CPU:在任何机器中CPU的数据处理能力往往是衡量计算机性能的一个标志,并且ORACLE是一个提供并行能力的数据库系统,在CPU方面的要求就更高 了,如果运行队列数目超过了CPU处理的数目,性能就会下降,我们要解决的问题就是要适当增加CPU的数量了,当然我们还可以将需要许多资源的进程 KILL掉;
    2.         内存:衡量机器性能的另外一个指标就是内存的多少了,在ORACLE中内存和我们在建数据库中的交换区进行数据的交换,读数据时,磁盘I/O必须等待物
  • 相关阅读:
    韩式英语
    Daily dictation 听课笔记
    words with same pronunciation
    you will need to restart eclipse for the changes to take effect. would you like to restart now?
    glottal stop(britain fountain mountain)
    education 的发音
    第一次用Matlab 的lamada语句
    SVN的switch命令
    String的split
    SVN模型仓库中的资源从一个地方移动到另一个地方的办法(很久才解决)
  • 原文地址:https://www.cnblogs.com/uniqueness/p/3035470.html
Copyright © 2011-2022 走看看