SqlServer 数据库服务器运用
1.压缩数据库日志文件
当数据库服务器满了之后,可用以下sql进行空间释放。
USE [master] GO ALTER DATABASE AFMS SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE AFMS SET RECOVERY SIMPLE GO USE AFMS GO DBCC SHRINKFILE (NAFMS_Log , 11, TRUNCATEONLY) GO USE [master] GO ALTER DATABASE AFMS SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE AFMS SET RECOVERY FULL GO
如果对日志文件的逻辑名称不清楚的话,用下面这句sql可以直接查出来:
SELECT file_id, name FROM sys.database_files
2.查询数据库死锁sql
SELECT der.[session_id],der.[blocking_session_id], sp.lastwaittype,sp.hostname,sp.program_name,sp.loginame, der.[start_time] AS 开始时间, der.[status] AS 状态, dest.[text] AS sql语句, DB_NAME(der.[database_id]) AS 数据库名, der.[wait_type] AS 等待资源类型, der.[wait_time] AS 等待时间, der.[wait_resource] AS 等待的资源, der.[logical_reads] AS 逻辑读次数 FROM sys.[dm_exec_requests] AS der INNER JOIN master.dbo.sysprocesses AS sp ON der.session_id=sp.spid CROSS APPLY sys.[dm_exec_sql_text](der.[sql_handle]) AS dest WHERE [session_id]>50 AND session_id<>@@SPID ORDER BY der.[session_id] GO
3.备份数据库
declare @filename varchar(255) declare @date datetime select @date=getdate() select @filename=E:每天晚上备份数据库NDHG_BusinessData-+CAST(DATEPART(yyyy,@date) as varchar)+-+CAST(DATEPART(mm,@date) as varchar)+-+CAST(DATEPART(dd,@date) as varchar)+.bak backup database NDHG_BusinessData to disk=@filename with init select @filename=E:每天晚上备份数据库NDHG_SystemDataBase-+CAST(DATEPART(yyyy,@date) as varchar)+-+CAST(DATEPART(mm,@date) as varchar)+-+CAST(DATEPART(dd,@date) as varchar)+.bak backup database NDHG_SystemDataBase to disk=@filename with init go
4.删除备份文件
<# :
cls
@echo off
rem 删除指定目录文件夹下指定天数之前创建的文件
mode con lines=5000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText(%~f0,[Text.Encoding]::Default)))"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$path="D:xxxyourfolder";
if(-not (test-path -liter $path)){
          
   Write-host ("+$path+" not found);exit;};
$ago=-180;
$agoday=get-date ((get-date).adddays($ago).toSTring(yyyy-MM-dd)+ 00:00:00);
$files=@(dir -liter $path -recurse|?{
          
   $_ -is [System.IO.FileInfo]});
for($i=0;$i -lt $files.length;$i++){
          
   
if($files[$i].CreationTime -le $agoday){
          
   
write-host ([+$files[$i].CreationTime.toSTring(yyyy-MM-dd)+]+$files[$i].FullName);
Remove-Item -liter $files[$i].FullName -force -whatif;
};
}
				       
			          上一篇:
			            通过多线程提高代码的执行效率例子 
			          
			          
			        
