這裡蒐索程式師資訊,查找有用的技術資料
當前位置:首頁 » 編程語言 » 查詢用戶記錄sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

查詢用戶記錄sql

發布時間: 2023-04-17 04:11:41

Ⅰ 如何查看 sql 的操作記錄

SELECT * From ::fn_dblog(Default,Default)

DBCC Log(database,type)

database- 任一資料庫的ID或名字

type - 輸出結果的類型:

0 - 最少信息(operation, context, transaction id)

1 - 更多信息(plus flags, tags, row length)

2 - 非常詳細的信息(plus object name, index name,page id, slot id)

3 - 每種操作的全部信息

4 - 每種操作的全部信息加上該事務的16進制信息

默認 type = 0

Ⅱ 怎麼查看用戶的SQL執行歷史

【方法一】查詢v$sqltext、v$sqlarea、v$sqlstats視圖
select * from v$sqlarea t where t.PARSING_SCHEMA_NAME in ('schema') order by t.LAST_ACTIVE_TIME desc;
#對v$sqltext、v$sqlarea查看的是shared pool中的SQL,其時間索引是其解析歷史,因為共享的問題這個查詢可能並不能完整地反映出執行的歷史。
#v$sqlstats信息保留時間比v$sql、v$sqltext、v$sqlarea長,及時SQL已經換出shared pool仍然可查到
【方法二】
聯合v$active_session_history和v$sqlarea
#v$active_session_history 這個表只是個取樣數據,按秒進行,只有在那一秒采樣點處於on cpu或非idle等待的session統計在內。所以可能會知姿不全,有些執行很短的SQL會忽略。這個視圖無法還原完整的session歷史。
#v$sqlarea中有執行過的SQL語句,但並無到session的關聯信息,v$session中只關聯了當前的sql,所以也不行。
查看視圖爛尺:dba_hist_sqlstats、dba_hist_sqltext(歷史數據)
【方法三:session trace】
SQL> execute dbms_session.session_trace_enable(true,true);
PL/SQL procere successfully completed.
SQL> select count(*) from dba_hist_sqltext;
COUNT(*)
----------
478
SQL> select * from V$sesstat where rownum=1;
SID STATISTIC# VALUE
---------- ---------- ----------
134 0 1
SQL> execute dbms_session.session_trace_disable();
PL/SQL procere successfully completed.
$ cd $ORACLE_HOME/admin/test/ump
$ ls -lrt
$ tkprof test_ora_2195620.trc report.txt sys=no explain=no aggregate=yes
$ more report.txt --這個文件包括了啟停trace之間所有SQL語句的執行信息,執行計劃、統計
【方法四:logminer】
只包含DML與DDL語句,不能查詢select語句。另外需要開啟supplemental logging,默認是沒有開啟的。
conn / as sysdba
--安裝LOGMINER
SQL> @$ORACLE_HOME/rdbms/admin/dbmslmd.sql;
SQL> @$ORACLE_HOME/rdbms/admin/dbmslm.sql;
SQL> @$ORACLE_HOME/rdbms/admin/dbmslms.sql;
SQL>飢猛高 @$ORACLE_HOME/rdbms/admin/prvtlm.plb;
--開啟附加日誌
alter database add supplemental log data;
--模擬DML操作
conn p_chenming/...
SQL> select * from test2;
SQL> insert into test2 values(7,77);
SQL> commit;
conn / as sysdba
--切歸檔
SQL> alter system switch logfile;
SQL> select name,dest_id,thread#,sequence# from v$archived_log; --最後一個即為新的歸檔
--新建LOG MINER
SQL> execute dbms_logmnr.add_logfile(logfilename=>'/oracle/archive_10g/test/test_1_138_786808434.arc',options=>dbms_logmnr.new);
--開始miner
SQL> execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
--查看結果
SQL> col username format a8;
SQL> col sql_redo format a50
SQL> select username,scn,timestamp,sql_redo from v$logmnr_contents where table_name='TEST2';
SQL> select username,scn,timestamp,sql_redo from v$logmnr_contents where username='P_CHENMING';
--關閉MINER
SQL> execute dbms_logmnr.end_logmnr;
--關閉輔助日誌
SQL> alter database drop supplemental log data;
【總結】
查看v$sqlarea只能查看粗略的歷史,因為很多SQL是共享的。
查看ASH也不全,因為這是采樣數據。
查看TRACE應該是最完整的,但需要在執行SQL前開啟。
查看logminer不能查看select語句,而且默認的系統沒有開啟supplementing log,所以能查看的內容有限。

Ⅲ 查詢用戶sql語句

select*
fromtest
whereu='a'
union
selectt2.*
fromtestt1leftjointestt2ont1.id=t2.pid
leftjoin(select*
fromtest
whereu='a')t3ont2.pid>=t3.id
whereisnull(t2.u,'')<>''
andisnull(t3.u,'')<>''

用戶:u;ParentId:pid

Ⅳ SQL 登錄訪問記錄怎麼查詢

你可以在控制面板里的性能和維護里的管理工具——計算機管理——本地用戶——組——打開 Remote Desktop Users 看裡面有沒有
用戶(不應該有半個)
管理工具——本地安全設置——審核策略——自己調試一下
還可以在控制面板---管理工具——事件查看器--查看電腦開機後運行程序的信息
隔幾天到事件察看器里看吧!!!

Ⅳ 如何用SQL查詢記錄

首先需要登錄
打開 Sql
Server
先展開需要查詢的表,了解其中的欄位名後點擊新建查詢
查詢中輸入如下命令:
select
top
20
UserID,UserName
from
ReportServer$SQLSERVER.dbo.Users
即可查看所有符合條件的記錄。
註:其中 top
20
為最先的20條。可以去掉後顯示所有。
UserID,UserName
為指定欄位名,如替換為
*
則顯示所有欄位。
ReportServer$SQLSERVER.dbo.Users,分別為庫名,表名。

Ⅵ 怎麼查看用戶的SQL執行歷史

查看粗此用戶的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語句情況

Ⅶ 如何使用SQL語句在一個表中查詢: 同一個人購買兩個以上相同產品的記錄要求顯示所有符合條件的人.

select SaleID,GoodsID from Table

group by SaleID,GoodsID

例如:

select f1,f2,...,fn

from table

group by f1,f2,...,fn

having count(1)>1 查出存在相同的f1,f2,..,fn

想查找出記錄則

select t1.* from table t1

(7)查詢用戶記錄sql擴展閱讀:

更新:update table1 set field1=value1 where 范圍

查找:select * from table1 where field1 like 』%value1%』 (所有包含『value1』這個模式的字元串)

排序:select * from table1 order by field1,field2 [desc]

求和:select sum(field1) as sumvalue from table1

平均:select avg(field1) as avgvalue from table1

Ⅷ 用SQL資料庫如何查看資料庫的用戶

select * from tableName;

tableName是租羨資料庫中注冊用鍵型槐戶表。

查詢具體的欄位:

SELECT column_name,column_name FROM tableName;

例子:

獲取名為 "LastName" 和 "FirstName" 的列的內容(從名為 "Persons" 的資料庫表):

SELECT LastName,FirstName FROM Persons;

(8)查詢用戶記錄sql擴展閱讀:

獲取資料庫所有表的欄位及其欄位

select table_name,column_name,column_comment,column_type,column_key from information_schema.Columns

where table_schema='數稿友據庫'

獲取資料庫某個表的欄位及其欄位

select table_name,column_name,column_comment,column_type,column_key from information_schema.Columns

where table_name='表名' and table_schema='資料庫'

Ⅸ sql 取每個用戶的最新記錄

你把表指定一下不就得了!~

暈倒 我外面套的sql就是要用來取最新時間的 你怎麼給我去了

select *
from table,
(select userid as id,max(imagedate) as maxtime
from table
group by userid) aa
where table.userid=aa.id
and table.imagedate=aa.maxtime

Ⅹ SQL 查詢統計每個用戶組發文章數量並按數量排序

createtablet1--文章表
(
titlevarchar2(10),
contentvarchar2(100),
useridvarchar2(10),
dtdate--假如格式為2013-10-1810:23:00
);
create毀槐tablet2--用戶表
(
groupidvarchar2(10),
useridvarchar2(10),
pwdvarchar2(10)
);
createtablet3--用戶組表
(
contentidvarchar2(10),
groupidvarchar2(10),
groupnmvarchar2(10)
);
1.selectgroupid,groupnm,count(1)countfromt3groupbygroupid,groupnmorderbycount(1)desc;--降序
2.selectgroupid,count(1)from纖嘩友t1,t2wheret1.userid=t2.useridgroupbygroupid,substring(dt,0,6);
有問題再蘆衡追問,望採納。