当前位置:首页 » 编程语言 » sql查询历史

sql查询历史

发布时间: 2022-08-17 20:19:09

‘壹’ sql如何查询历史同期记录

历年来所有日期相同的记录...
就是说每年的同一个月同一天就是相同的记录吧?
思路是在日期中截取月份,天数。对这两项进行比较。
1 怎样截取:DATE类型或VARCHAR类型的截取方式不同,具体你可以查;
2 查询天数和月份都相同的ID,再根据ID查询完整的记录

以上只是思路.....

‘贰’ 怎么查询SQL数据库的历史数据,并调用出来做报表

  1. SQL关键字 where,类型转换Convert

  2. 历史数据,多久后的数据,假如有表A,有2个字段a,b

  3. a 为int 类型,b 为日期类型

  4. 转换日期以及日期范围SQL 如下:

  5. select * from A where b between convert(datetime,'2015-08-01 08:08:08' ) and convert(datetime,'2015-08-01 08:12:08')

  6. 以上SQL 就是查询历史记录,日期为'2015-08-01 08:08:08'与 '2015-08-01 08:12:08'

    之间的数据

  7. 创建报表可以通过MicrosoftSQLServer2008R2中的创建,也可以在Microsoftvisualstudio中通过使用ReportView控件来创建报表。本实例采用MicrosoftSQLServer2008R2中的创建报表。

  8. 创建报表服务器项目

  9. 在制作报表之前,要先创建一个报表服务器项目,在其中可以存放若干报表供用户调用。在中创建报表服务器项目的操作步骤如下。

  10. 选择【开始】|【所有程序】|【MicrosoftSQLServer2008R2】|【】,启动商业智能开发环境。在菜单栏中选择【文件】|【新建】|【项目】命令,弹出【新建项目】对话框。在【项目类型】列表中选择【商业智能项目】选项,在【模板】列表中选择【报表服务器项目向导】选项,在【名称】文本框中输入【报表项目4】,单击【确定】按钮以创建项目。

‘叁’ sql如何查询第三列历史数量 前两列也是动态获得的数据

SQL如何查询第三列历史数据前两列也是动态获得的数据某人简写框架前两列当然也是动态获得的数据

‘肆’ sql 查询历史数据

java">selectcode,min(data_data)fromtablegroupbycode

‘伍’ 如何查看PL/SQL执行的历史

除了PL/SQL的ctrl+e的查看方法外还有如下方法:

【方法一】查询v$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反应的是实例启动起来的sql执行统计,sql语句本身比v$sqltext/area完整,因为后者有可能失效换出缓存

【方法二】
联合v$active_session_history和v$sqlarea
#v$active_session_history 这个表只是个取样数据,按秒进行,只有在那一秒采样点处于on cpu或非idle等待的session统计在内。所以可能会不全,有些执行很短的SQL会忽略。这个视图无法还原完整的session历史。
#v$sqlarea中有执行过的SQL语句,但并无到session的关联信息,v$session中只关联了当前的sql,所以也不行。

从v$sqlstat可以查看到数据库启动起来的所有SQL信息,但是没有时间顺序关系、没有执行用户信息,只有执行次数与资源统计。
从dba_hist_sqlstat可以看到AWR snapshot之间的SQL统计信息,与v$sqlstats比不受实例重启的影响,因为实例重启之后v$sqlstats中的信息就清除了。

【方法三: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也不全,因为这是采样数据,测试的时候基本没有把SQL查询出来。
查看V$SQLSTATS能看到所有执行过的sql,以及其执行统计,但是没有时序、没有用户信息。
查看TRACE应该是最完整的,但需要在执行SQL前开启。
查看logminer不能查看select语句,而且默认的系统没有开启supplementing log,所以能查看的内容有限。
或许还有审计的方法可用,我没测试。每种方法都有各自的缺陷,看来很难有一种完备的查看SQL执行历史的方法

‘陆’ 怎么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语句情况
-------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; 查看当前用户的角色

‘柒’ 如何查看mysql执行的所有以往 sql 语句历史命令

如果你想知道mysql执行的所有以往 sql 语句历史命令,需要配置log
my.ini文件中
log=log路径 比如D:/MySQL/datalog.log
配置后重启mysql服务,然后就可以查看mysql执行的sql语句了,
如果你没开启日志的话,那就没办法

‘捌’ 如何查看SQL SERVER的操作历史记录

打开log explorer file=>attach log file->选择服务器和登陆方式->connect-> 选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了 想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分.

‘玖’ 如何查看PL/SQL 执行过的历史语句

SQL Server有Default Trace默认跟踪,数据库记录信息到log.trc文件,可以查看trace_event_id,46表示Create对象(Object:Created),47表示Drop对象(Object:Deleted),93表示日志文件自动增长(Log File Auto Grow),164表示Alter对象(Object:Altered),20表示错误日志(Audit Login Failed)。
虽然可以通过上面的方式找到相关的操作,但是它有两个缺点:
1) log.trc文件是滚动更新文件,所有有可能会被系统删除,找不了太久的数据;
2) 有些操作可能是后知后觉,出了问题才会去找问题,应该主动去监控这些DDL;
可以使用DDL触发器主动监控DDL语句的执行,当有对数据库执行DDL就会触发,把这些信息保存到表中,并且把操作用户的HostName和修改的T-SQL以邮件的形式发送到指定的邮件。

‘拾’ sql 如何查询历史操作语句

打开Log Explorer -> Attach Log File -> 选择SQL Server服务器和登陆方式 -> Connect -> 在Database Name中选择数据库 -> Attach-> 左面对话框中Browse-> View Log-> 就可以看到log记录了
想恢复的话: 右键Log记录 Undo Transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行 T-sql代码就可以了
例如 如果Log是delete table where ...的话,生成的文件代码就是insert table .... 然后将此insert table的代码放到查询分析器里执行.就可以恢复数据.
Log Explorer使用的一个问题
1)对数据库做了完全 差异 和日志备份 备份时选用了删除事务日志中不活动的条目 再用Log Explorer打试图看日志时 提示No log recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才的记录了
如果不选用了删除事务日志中不活动的条目 再用Log Explorer打试图看日志时,就能看到原来的日志
2)修改了其中一个表中的部分数据,此时用Log Explorer看日志,可以作日志恢复
3)然后恢复备份,(注意:恢复是断开Log Explorer与数据库的连接,或连接到其他数据上, 否则会出现数据库正在使用无法恢复) 恢复完后,再打开Log Explorer 提示No log recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.

热点内容
android背单词源码 发布:2025-01-19 23:57:21 浏览:727
领动配置怎么样 发布:2025-01-19 23:56:35 浏览:83
python造数据 发布:2025-01-19 23:51:31 浏览:903
linux下卸载mysql 发布:2025-01-19 23:40:34 浏览:339
linuxweb路径 发布:2025-01-19 23:25:08 浏览:941
福建电信服务器ip地址 发布:2025-01-19 23:07:24 浏览:648
服务器怎么制作公告栏 发布:2025-01-19 23:06:23 浏览:874
英雄联盟皮肤源码 发布:2025-01-19 22:56:14 浏览:95
三星手机忘记解锁密码怎么办 发布:2025-01-19 22:45:43 浏览:292
Java为什么没有预编译命令 发布:2025-01-19 22:44:14 浏览:304