當前位置:首頁 » 編程語言 » oracle歷史sql語句
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle歷史sql語句

發布時間: 2022-02-25 09:48:31

㈠ 如何查詢oracle操作記錄的sql

select * from v$sqlarea t where t.PARSING_SCHEMA_NAME in ('用戶名') order by t.LAST_ACTIVE_TIME desc
用戶名需要大寫
select * from v$sqlarea t order by t.LAST_ACTIVE_TIME desc
注意 :執行此語句等等一些相關的語句 必須具有DBA 的許可權 雖然這條語句很普通 但是需要的時候很管用 能夠及時查出一個人執行sql語句情況
-------oracle 查看已經執行過的sql 這些是存在共享池中的 --------->
select * from v$sqlarea t order by t.LAST_ACTIVE_TIME desc
-----------查看oracle會話----------------------------》
select * from v$session t order by t.LAST_ACTIVE_TIME desc
-------------查看oracle的許可權角色------------------------------>
select * from dba_role_privs; 授予用戶和其他角色的角色
select * from dba_sys_privs; 授予用戶和其他角色的系統許可權
select * from dba_tab_privs; 資料庫中對象的所有授權
select * from user_role_privs; 查看當前用戶的角色

㈡ 怎樣查看ORACLE執行過的SQL 語句

oracle 查詢最近執行過的 SQL語句
select sql_text,last_load_time from v$sql order by last_load_time desc;

SELECT sql_text, last_load_time FROM v$sql WHERE last_load_time IS NOT NULL and sql_text like 'select%' ORDER BY last_load_time DESC;

SELECT sql_text, last_load_time FROM v$sql WHERE last_load_time IS NOT NULL and sql_text like 'update%' ORDER BY last_load_time DESC;

SELECT sql_text, last_load_time FROM v$sql WHERE last_load_time IS NOT NULL and last_load_time like' 14-06-09%' ORDER BY last_load_time DESC;

---正在執行的

select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT
from v$session a, v$sqlarea b
where a.sql_address = b.address
---執行過的
select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT
from v$sqlarea b
where b.FIRST_LOAD_TIME between '2009-10-15/09:24:47' and
'2009-10-15/09:24:47' order by b.FIRST_LOAD_TIME
(此方法好處可以查看某一時間段執行過的sql,並且 SQL_FULLTEXT 包含了完整的 sql 語句)

其他
select OSUSER,PROGRAM,USERNAME,SCHEMANAME,B.Cpu_Time,STATUS,B.SQL_TEXT
from V$SESSION A LEFT JOIN V$SQL B ON A.SQL_ADDRESS=B.ADDRESS AND A.SQL_HASH_VALUE=B.HASH_VALUE order by b.cpu_time desc

select address, sql_text, piece
from v$session, v$sqltext
where address = sql_address
-- and machine = < you machine name >
order by address, piece

查找前十條性能差的sql.

SELECT * FROM (select PARSING_USER_ID,EXECUTIONS,SORTS,
COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea
order BY disk_reads DESC )where ROWNUM<10 ;

查看佔io較大的正在運行的session

SELECT se.sid,se.serial#,pr.SPID,se.username,se.status,
se.terminal,se.program,se.MODULE,、se.sql_address,st.event,st.
p1text,si.physical_reads,
si.block_changes FROM v$session se,v$session_wait st,
v$sess_io si,v$process pr WHERE st.sid=se.sid AND st.
sid=si.sid AND se.PADDR=pr.ADDR AND se.sid>6 AND st.
wait_time=0 AND st.event NOT LIKE '%SQL%' ORDER BY physical_reads DESC

㈢ 如何查詢oracle資料庫的操作記錄

用sys用戶以dba身份登錄。

然後,查看視圖:V_$SQL,如下參考:


select*
fromV_$SQLt
WHEREt.SERVICE='orcl'
andt.PARSING_SCHEMA_NAME='BHOA'
ANDT.SQL_TEXTLIKE'update%'
orderbyt.LAST_ACTIVE_TIME


可直接查出當前update的那條sql語句。從語句中可看出對什麼表進行了什麼操作。

㈣ oracle如何查出歷史記錄中執行效率低的SQL語句

如果你用的是oracle 10g的話,這個有種很簡單的方法就是查看awr報告。

很簡單,你登陸到伺服器的操作系統,進入到$ORACLE_HOME/rdbms/admin目錄下。然後sqlplus "/as sysdba"登陸到資料庫,執行
@awrrpt.sql;
然後按照提示一步一步做,注意格式選html(這樣方便你閱讀)。最後會讓你命名這個文件。

完了之後,你把那個文件拷貝到本地用IE打開就看到了。裡面有很詳細的,包括這段時間佔CPU,IO,等等最嚴重的SQL排行。很好很強大。
-------------------------

至於你說查看當前的sql,你在v$session里查看長期blocking別人的session ID,然後根據這個session id從v$text里就能查到這個sql了。

-------------------------

很明確了吧

㈤ Oracle_Sql語句

你的Where條件裡面的Or用得太多了,用In試試吧,Oracle在10G以後對In優化後效果還是挺好的,實在不行就改用exists來改寫條件

㈥ oracle 中怎樣查看以前執行過的SQL語句是否有鎖

用如下語句查詢:


select'blocker('||lb.sid||':'||sb.username||')-sql:'||qb.sql_textblockers,'waiter('||lw.sid||':'||sw.username||')-sql:'||qw.sql_textwaitersfromv$locklb,v$locklw,v$sessionsb,v$sessionsw,v$sqlqb,v$sqlqwwherelb.sid=sb.sidandlw.sid=sw.sidandsb.prev_sql_addr=qb.addressandsw.sql_address=qw.addressandlb.id1=lw.id1andsw.lockwaitisnotnullandsb.lockwaitisnullandlb.block=1;

如果有被鎖的sql,查詢中有結果:

㈦ oracle 中怎樣查看以前執行過的SQL語句

您好,我來為您解答:
可以通過logminer分析日誌文件
查詢某時間段執行過的語句。
如果我的回答沒能幫助您,請繼續追問。

㈧ 查看oracle資料庫最近執行了哪些sql語句

在oracle上看的話,只能啟用sql trace了,盡量在資料庫用戶、操作比較少的時候做,否則會混入很多別的用戶或程序執行的語句。
簡單一點是在應用程序中寫sql語句的日誌。

㈨ oracle的日誌能找到之前執行過的sql語句嗎

最直接的辦法就是打開SQL_TRACE: alter session set SQL_TRACE=true;(要DBA許可權) 然後到伺服器上追蹤文件裡面查看這個session執行了哪些SQL,不過這是session級的. 也可以使用系統級的. 對系統性能有影響

㈩ oracle中SQL語句

insert into task(startdate) values(to_date('2003-5-4','YYYY-MM-DD'))

date數據類型進入庫的時候,要to_date一下