enq: SS - contention

一、几个查询
  1. 什么是 SS 锁 以及 enq: SS - contention 等待事件
  • 查询告警相关信息
select * from v$lock_type where type='SS';
  • 查询等待事件信息
select * from v$event_name where name='enq: SS - contention';
  1. 查询活动会话
  • 查询活动会话信息,获取堵塞信息
SELECT INST_ID,
       SID
       || ','
       || SERIAL#                SID#,
       MACHINE,
       USERNAME,
       TYPE
       EVENT,
       STATE,
       WAIT_TIME_MICRO,
       BLOCKING_INSTANCE
       || ( CASE
              WHEN BLOCKING_INSTANCE IS NULL THEN NULL
              ELSE ','
            END )
       || BLOCKING_SESSION       BL_SESS,
       FINAL_BLOCKING_INSTANCE
       || ( CASE
              WHEN FINAL_BLOCKING_INSTANCE IS NULL THEN NULL
              ELSE ','
            END )
       || FINAL_BLOCKING_SESSION FI_BL_SESS,
       FINAL_BLOCKING_SESSION_STATUS,
       STATUS,
       COMMAND,
       SQL_ID,
       SQL_CHILD_NUMBER,
       PREV_SQL_ID,
       PREV_CHILD_NUMBER,
       WAIT_CLASS,
       WAIT_TIME,
       SECONDS_IN_WAIT,
       TIME_REMAINING_MICRO,
       TIME_SINCE_LAST_WAIT_MICRO,
       P1,
       P1RAW,
       P2,
       P2RAW,
       P3,
       P3RAW,
       PADDR,
       TADDR,
       SADDR,
       OSUSER,
       PROCESS,
       CREATOR_ADDR,
       AUDSID,
       ROW_WAIT_OBJ#,
       ROW_WAIT_FILE#,
       ROW_WAIT_BLOCK#,
       ROW_WAIT_ROW#,
       PROGRAM,
       COMMAND,
       PLSQL_ENTRY_OBJECT_ID,
       PLSQL_ENTRY_SUBPROGRAM_ID,
       PLSQL_OBJECT_ID,
       PLSQL_SUBPROGRAM_ID,
       SQL_EXEC_START,
       LOGON_TIME,
       CLIENT_IDENTIFIER,
       SERVICE_NAME,
       RESOURCE_CONSUMER_GROUP
FROM   GV$SESSION
WHERE  WAIT_CLASS# <> 6
ORDER  BY BLOCKING_INSTANCE NULLS FIRST,
          BLOCKING_SESSION,
          EVENT,
          INST_ID,
          SID;
  • 查询sql temp信息
SELECT instance_number,
       sample_time,
       session_id
       || ( CASE
              WHEN session_id IS NULL THEN NULL
              ELSE ','
            END )
       || session_serial#
       || ( CASE
              WHEN session_serial# IS NULL THEN NULL
              ELSE ','
            END )
       || instance_number                 sid#,
       du.username,
       sql_id,
       sql_opname,
       sql_exec_start,
       plsql_entry_object_id,
       event,
       blocking_session
       || ( CASE
              WHEN blocking_session IS NULL THEN NULL
              ELSE ','
            END )
       || blocking_session_serial#
       || ( CASE
              WHEN blocking_session_serial# IS NULL THEN NULL
              ELSE ','
            END )
       || blocking_inst_id                blk_sid,
       program,
       machine
       || ':'
       || port,
       delta_read_io_bytes,
       delta_write_io_bytes,
       pga_allocated / 1024 / 1024        pga_mb,
       temp_space_allocated / 1024 / 1024 temp_MB
FROM   dba_hist_active_sess_history ash,
       dba_users du
WHERE  sample_time >= To_timestamp ('20190909 1720', 'yyyymmdd hh24mi')
       AND sample_time <= To_timestamp ('20190909 1730', 'yyyymmdd hh24mi')
       AND temp_space_allocated IS NOT NULL
       AND ash.user_id = du.user_id
ORDER  BY temp_space_allocated DESC;
  • 查询占用temp 较大的sql
SELECT sql_id,
       Avg (temp_space_allocated / 1024 / 1024 / 1024) temp_gb
FROM   dba_hist_active_sess_history ash,
       dba_users du
WHERE  sample_time >= To_timestamp ('20190909 1720', 'yyyymmdd hh24mi')
       AND sample_time <= To_timestamp ('20190909 1730', 'yyyymmdd hh24mi')
       AND temp_space_allocated IS NOT NULL
       AND ash.user_id = du.user_id
GROUP  BY sql_id
ORDER  BY temp_gb DESC;
  1. 查询sql的具体的信息
  • 查询包、存储、函数等的具体信息
select * from dba_source where name='&name';
  • 查看对象信息
select * from dba_objects where object_id='&obj_id';
  • 查看sql信息
select * from v$sql where sql_id='&sql_id';
  • 查询用户及其temp信息
select * from dba_users where temporary_tablespace='&tsp';
  • 查询块大小
select value from v$parameter where name='db_block_size';
select block_size from dba_tablespaces where tablespace_name='&tbs_name';
  1. 查询 temp 表空间大小
  • 查询 temp 表空间总大小
SELECT tablespace_name,
       Sum (BYTES) / 1024 / 1024 / 1024 gb
FROM   dba_temp_files
GROUP  BY tablespace_name;
SELECT tablespace_name,
       Sum (bytes_used) / 1024 / 1024 / 1024 used_gb,
       Sum (blocks_used)                     used_blocks,
       Sum (bytes_free) / 1024 / 1024 / 1024 free_gb,
       Sum (blocks_free)                     free_blocks
FROM   v$temp_space_header
GROUP  BY tablespace_name;
  • 查看 temp 在各节点分布使用情况
    不带百分数版
SELECT inst_id,
       tablespace_name,
       Sum (extents_cached)                    total_extents,
       Sum (extents_used)                      used_extents,
       Sum(blocks_cached)                      total_blocks,
       Sum(blocks_used)                        used_blocks,
       Sum (bytes_cached) / 1024 / 1024 / 1024 cached_gb,
       Sum (bytes_used) / 1024 / 1024 / 1024   used_gb
FROM   gv$temp_extent_pool
GROUP  BY inst_id,
          tablespace_name
ORDER  BY inst_id,
          tablespace_name;

SELECT inst_id,
       tablespace_name,
       total_extents,
       used_extents,
       total_blocks,
       used_blocks
FROM   gv$sort_segment

带百分数版(总利用率)

SELECT c.tablespace_name,
       c.bytes / 1024 / 1024 / 1024                    total_size_gb,
       d.bytes_used / 1024 / 1024 / 1024               used_size_gb,
       ( c.bytes - d.bytes_used ) / 1024 / 1024 / 1024 free_size_gb,
       d.bytes_used * 100 / c.bytes                    percent_usage
FROM   (SELECT tablespace_name,
               Sum(bytes) bytes
        FROM   dba_temp_files
        GROUP  BY tablespace_name) c,
       (SELECT tablespace_name,
               Sum(bytes_used) bytes_used
        FROM   gv$temp_extent_pool
        GROUP  BY tablespace_name) d
WHERE  c.tablespace_name = d.tablespace_name;
SELECT a.tablespace_name,
       a.total_size_gb,
       b.used_size_gb,
       a.total_size_gb - b.used_size_gb       free_size_gb,
       b.used_size_gb / a.total_size_gb * 100 AS percent_usage
FROM   (SELECT tablespace_name,
               Sum(bytes) / 1024 / 1024 / 1024 total_size_gb
        FROM   dba_temp_files
        GROUP  BY tablespace_name) a,
       (SELECT s_s.tablespace_name,
               Sum(used_blocks * block_size) / 1024 / 1024 / 1024 used_size_gb
        FROM   gv$sort_segment s_s,
               dba_tablespaces tbs
        WHERE  tbs.tablespace_name = s_s.tablespace_name
               AND tbs.contents = 'TEMPORARY'
        GROUP  BY s_s.tablespace_name) b
WHERE  a.tablespace_name = b.tablespace_name;
  • 带百分数版(各节点利用率)
SELECT inst_id,
       tablespace_name,
       Sum (bytes_cached) / 1024 / 1024 / 1024              total_size_gb,
       Sum (bytes_used) / 1024 / 1024 / 1024                used_size_gb,
       Sum (bytes_cached - bytes_used) / 1024 / 1024 / 1024 free_size_gb,
       Sum(bytes_used) * 100 / Sum(bytes_cached)            percent_usage
FROM   gv$temp_extent_pool
GROUP  BY inst_id,
          tablespace_name
ORDER  BY tablespace_name,
          inst_id;
SELECT inst_id,
       gs.tablespace_name,
       total_blocks * block_size / 1024 / 1024 / 1024                   total_size_gb,
       used_blocks * block_size / 1024 / 1024 / 1024                    used_size_gb,
       ( total_blocks - used_blocks ) * block_size / 1024 / 1024 / 1024 free_size_gb,
       used_blocks * 100 / total_blocks                                 percent_usage
FROM   gv$sort_segment gs,
       dba_tablespaces dt
WHERE  gs.tablespace_name = dt.tablespace_name
ORDER  BY tablespace_name,
          inst_id;
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容