sql 存储过程的日志怎么写

sql 存储过程的日志怎么写,第1张

方法1:

第一步:

backup

log

database_name

with

no_log

或者

backup

log

database_name

with

truncate_only

--no_log和truncate_only是在这里是同义的,随便执行哪一句都可以

第二步:

1收缩特定数据库的所有数据和日志文件,执行

dbcc

shrinkdatabase

(database_name,[,target_percent])--database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比

2收缩一次一个特定数据库中的数据或日志文件,执行

dbcc

shrinkfile(file_id,[,target_size])

--file_id是要收缩的文件的标识

(id)

号,若要获得文件

id,请使用

file_id

函数或在当前数据库中搜索

sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbcc

shrinkfile

将文件大小减少到默认文件大小

两个dbcc都可以带上参数notruncate或truncateonly,具体意思看帮助。

方法2(这个方法在sqlserver2000的环境下做一般能成功,在sqlserver7及以下版本就不一定了):

第一步:

先备份整个数据库以备不测

第二步:

备份结束后,在query

analyzer中执行如下的语句:

exec

sp_detach_db

yourdbname,true

--卸除这个db在mssql中的注册信息

第三步:

到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录

第四步:

在query

analyzer中执行如下的语句:

exec

sp_attach_single_file_db

yourdbname,'d:\mssql7\data\yourdbname_datamdf'

--以单文件的方式注册该db,如果成功则mssql将自动为这个db生成一个500k的日志文件。

以上方法在清除log日志中均有效。

但,能否让sql

server

不产生log日志呢?以上方法好像均无效。

我这儿正好有个case:

我客户的sql

server每天都会产生4,500m的log日志,每天都清除一下,非常不便。有没有办法实现不产生log日志呢?

我分析了一下客户产生log日志的原因,并且做了相应测试。

客户是每天将数据库清空,从总系统中将数据导入到sql

server里。我感决sqlserver在插入时产生log不大,在delete整个库时产生log极大。

比如:

select

into

test_2

from

b_bgxx

共45000条记录,产生十几m

log,如果

delete

from

test_2

产生80多m

log

,这明显存在问题。

虽然可以换成:

truncate

table

test_2

但我还是希望能找到不产生log的方法。就如oracle不产生归档一样。

1、登录Oracle服务器,切换到oracle用户下

#su - oracle

注:需要进入到命令行模式下

2、进入到sqlplus接口

$sqlplus '/as sysdba'

注意:使用角色sysdba

3、查询alter日志目录

show parameter dump

4、找到alert日志

以上就是关于sql 存储过程的日志怎么写全部的内容,包括:sql 存储过程的日志怎么写、java怎么把数据库查出来的数据怎么写进日志文件log中、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9413711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存