‘壹’ 如何查看sqlserver日志的方法
定期分析sqlserver日志是DBA很重要的任务,那如何才能查看sqlserver日志呢?
在SQL Server 7.0和SQL Server2000中,可以用下面的命令查看:
DBCC log ( {dbid|dbname}, [, type={0|1|2|3|4}] )
参数:
Dbid or dbname - 任一数据库的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
要查看MSATER数据库的事务日志可以用以下命令:
DBCC log (master)
释放日志空间
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(客户资料)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离
E X E C sp_detach_db @dbname = 'pubs'
b.删除日志文件
c.再附加
E X E C sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
E X E C sp_dboption '数据库名', 'autoshrink', 'TRUE'
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
特别注意:
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
另外提供一种更简单的方法,建议大家使用。
更简单的方法:
1。右建数据库属性窗口--故障还原模型--设为简单
2。右建数据库所有任务--收缩数据库
3。右建数据库属性窗口--故障还原模型--设为大容量日志记录
‘贰’ oracle里怎么对sql查询的日志进行查看
oracle里对sql查询的日志进行查看步骤如下:
1、Oracle日志的路径的查看。
‘叁’ 如何查看mysql数据库操作记录日志
有时候我们会不小心对一个大表进行了 update,比如说写错了 where 条件......
此时,如果 kill 掉 update 线程,那回滚 undo log 需要不少时间。如果放置不管,也不知道 update 会持续多久。
那我们能知道 update 的进度么?
实验
我们先创建一个测试数据库:
那我们怎么准确的这个倍数呢?
一种方法是靠经验:update 语句的 where 中会扫描多少行,是否修改主键,是否修改唯一键,以这些条件来估算系数。
另一种方法就是在同样结构的较小的表上试验一下,获取倍数。
这样,我们就能准确估算一个大型 update 的进度了。
‘肆’ 如何通过sql日志,查看以前执行过的sql语句
--关键字:cross apply & outer apply
SELECT TOP 1000
--创建时间
QS.creation_time,
--查询语句
SUBSTRING(ST.text,(QS.statement_start_offset/2)+1,
((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text)
ELSE QS.statement_end_offset END - QS.statement_start_offset)/2) + 1
) AS statement_text,
--执行文本
ST.text,
--执行计划
QS.total_worker_time,
QS.last_worker_time,
QS.max_worker_time,
QS.min_worker_time
FROM
sys.dm_exec_query_stats QS
--关键字
CROSS APPLY
sys.dm_exec_sql_text(QS.sql_handle) ST
WHERE
--根据时间搜索
QS.creation_time BETWEEN '2011-10-20 16:00:00' AND '2011-10-20 17:00:00'
--根据语句内容搜索
AND ST.text LIKE '%%'
ORDER BY
QS.creation_time DESC
‘伍’ sql server日志查看操作的是哪列
查看sql数据库操作日志的方法步骤:1、用windows身份验证登陆数据库,点击【连接】2、展开数据库服务器下面的【管理】【SQL Server日志】3、双击【当前】可以打开【日志文件查看器】里面有所有的运行日志
SQL是高级的非过程化编辑语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的sql语言作为数据输入与管理的接口。
‘陆’ 怎样使用SQL语句查询SQLSERVER系统日志
您好,很高兴为您解答。
1)用系统函数
SELECT allocunitname,operation,[RowLog Contents 0] as r0,[RowLog Contents 1] as r1FROM::Fn_dblog(null,null)where allocunitname like'dbo.TArea%'and operation in('LOP_INSERT_ROWS','LOP_DELETE_ROWS')
2)用DBCC
DBCC log('hrdb', TYPE=2)
dbcc log(dbname,4) --(n=0,1,2,3,4)
1 - 更多信息plus flags, tags, row length
2 - 非常详细的信息plus object name, index name,page id, slot id
3 - 每种操作的全部信息
4 - 每种操作的全部信息加上该事务的16进制信息
默认 type = 0
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~
‘柒’ 如何查看sql数据库操作日志
请参照以下步骤查看sql数据库操作日志。
1、首先在电脑上打开sql server软件,进入软件加载界面。
‘捌’ 怎么利用sql server日志查看执行的语句
怎么利用sql server日志查看执行的语句
--1.第一种测试方法
declare @begin datetime,@end datetime
set @begin =getdate()
{你所要测试的sql语句}
set @end=getdate()
PRINT DATEDIFF(millisecond, @begin, @end)/1000.0 --单位:s
--2.另一种测试方法(将执行每个语句时采取的步骤作为行集返回,通过层次结构树的形式展示出来)
SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。
SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。
SET STATISTICS TIME ON:显示每个查询执行后的结果集,代表查询执行的配置文件。
SET STATISTICS profile on
SET STATISTICS io ON
SET STATISTICS time ON
go
---你要测试的sql语句
{你要测试的sql语句}
SET STATISTICS profile OFF
SET STATISTICS io OFF
SET STATISTICS time OFF
go
3.对SQL SERVER进行设置!!!!
{查询-查询选项-高级里,有个SET STATISTICS TIME勾上,然后执行SQL,看消息,就有执行时间了}
‘玖’ 怎样使用sql语句查询sqlserver系统日志
您好,很高兴为您解答。
1)用系统函数
SELECT allocunitname,operation,[RowLog Contents 0] as r0,[RowLog Contents 1] as r1FROM::Fn_dblog(null,null)where allocunitname like'dbo.TArea%'and operation in('LOP_INSERT_ROWS','LOP_DELETE_ROWS')
2)用DBCC
DBCC log('hrdb', TYPE=2)
dbcc log(dbname,4) --(n=0,1,2,3,4)
1 - 更多信息plus flags, tags, row length
2 - 非常详细的信息plus object name, index name,page id, slot id
3 - 每种操作的全部信息
4 - 每种操作的全部信息加上该事务的16进制信息
默认 type = 0
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!