台灣最大程式設計社群網站
線上人數
1030
 
會員總數:245900
討論主題:189495
歡迎您免費加入會員
討論區列表 >> Oracle >> O11g 查詢語法
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
O11g 查詢語法
價值 : 500 QP  點閱數:2137 回應數:8
樓主

泡泡龍
初學者
20 20
6366 63
發送站內信

捐贈 VP 給 泡泡龍
O11g 因為是簡單版本, 想透過 SQL 查下列資訊:
1. 忙碌中的 session 哪幾個?
2. 指定的 session 正在執行甚麼 SQL
3. 指定的 session 正在執行 SQL , 是哪一種 scan ?

搜尋相關Tags的文章: [ session ] , [ sql ] , [ oracle ] , [ o11g ] , [ sqlplus ] ,
本篇文章發表於2014-02-21 13:16
1樓
最有價值解答

花旗蔘
檢舉此回應

本篇文章回覆於2014-03-04 21:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

泡泡龍
捐贈 VP 給 泡泡龍 檢舉此回應
可以再請教一下, 第三點 看不太懂, 是否可以再詳細一點點嗎?
本篇文章回覆於2014-03-13 07:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

花旗蔘
檢舉此回應
哪裡不懂?
本篇文章回覆於2014-03-18 12:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

泡泡龍
捐贈 VP 給 泡泡龍 檢舉此回應
感謝您的回覆~

不好意思~
其實我專職是程式設計, 不是DBA, 比較少跟別人討論 DATABASE, 我是針對回覆的說法看不太懂

例如:
from TABLE(dbms_xplan.display_awr('&SQL_ID'))

from 應該是 TABLE 名稱, 怎麼會接 (dbms_xplan.display_awr('&SQL_ID')) 這一串, 我的意思是, 我不清楚我要怎麼去解讀的意思啦~


補充說明, 其實我最終是想從 PB 正在執行的程式所下的 SQL 中, 去掃找出使用 Full Scan, 但是可以改進的 SQL Where 語法, 或是重寫程式, 因為掃出 SID 就可以知道哪一台電腦, 那台電腦執行些甚麼程式, 這些程式中哪一隻會執行 Full SCAN 的語法, 然後改程式.

程式有幾百隻(一隻程式執行中就下一大堆亂七八糟SQL), 幾十人經手十幾年歷史的程式了, 很難一隻一隻去看及檢查~ 想先處理比較耗資源並且常用的重點程式調整啦



本篇文章回覆於2014-03-18 16:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

花旗蔘
檢舉此回應
google "oracle table function" 你就了解了!
本篇文章回覆於2014-03-19 13:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

泡泡龍
捐贈 VP 給 泡泡龍 檢舉此回應
用程式執行中, 用下面 SQL 查詢, 有資料, 並且知道 SID = 141
SELECT nvl(ses.username,'ORACLE PROC')||' ('||ses.sid||')' USERNAME,
SID,
MACHINE,
REPLACE(SQL.SQL_TEXT,CHR(10),'') STMT,
ltrim(to_char(floor(SES.LAST_CALL_ET/3600), '09')) || ':'
|| ltrim(to_char(floor(mod(SES.LAST_CALL_ET, 3600)/60), '09')) || ':'
|| ltrim(to_char(mod(SES.LAST_CALL_ET, 60), '09')) RUNT
FROM V$SESSION SES,
V$SQLtext_with_newlines SQL
where SES.STATUS = 'ACTIVE'
and SES.USERNAME is not null
and SES.SQL_ADDRESS = SQL.ADDRESS
and SES.SQL_HASH_VALUE = SQL.HASH_VALUE
and Ses.AUDSID <> userenv('SESSIONID')
order by runt desc, 1,sql.piece;


但是接著用以下的查詢( Ctrl+v 不放 ), 就一直都沒有資料, 是應該要注意甚麼? 還是我漏了甚麼?? 還是我弄錯甚麼?

SQL> select * from table( dbms_xplan.display_cursor( 141));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------
HASH_VALUE: 141, child number: 0 cannot be found

SQL> select * from table( dbms_xplan.display_awr(141));
沒有任何資料列被選取

SQL> select * from table( dbms_xplan.display_cursor('141'));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------
HASH_VALUE: 141, child number: 0 cannot be found


SQL> select * from table( dbms_xplan.display_awr('141'));

沒有任何資料列被選取

本篇文章回覆於2014-03-19 16:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

花旗蔘
檢舉此回應
你要輸入的是 sql_id 而非sid(session identifier)
本篇文章回覆於2014-03-19 17:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

泡泡龍
捐贈 VP 給 泡泡龍 檢舉此回應
之前太忙了, 最近有空, 終於串出我要的SQL...
本篇文章回覆於2014-06-25 17:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.