1、数据库压缩日志
GO
ALTER DATABASE website
SET RECOVERY SIMPLE;--设置简单恢复模式
GO
DBCC SHRINKFILE (website_Log, 1);
GO
ALTER DATABASE website
SET RECOVERY FULL;--恢复为原模式
GO
2、重建所有索引
exec
sp_msforeachtable
'
DBCC DBREINDEX(
''
?
''
)
'
重建索引
DECLARE
@name
varchar
(
100
)
DECLARE
authors_cursor
CURSOR
FOR
Select
[
name
]
from
sysobjects
where
xtype
=
'
u
'
order
by
id
OPEN
authors_cursor
FETCH
NEXT
FROM
authors_cursor
INTO
@name
WHILE
@@FETCH_STATUS
=
0
BEGIN
DBCC
DBREINDEX (
@name
,
''
,
90
)
PRINT
'
当前重建索引表:
'
+
@name
FETCH
NEXT
FROM
authors_cursor
INTO
@name
END
deallocate
authors_cursor
3、定时作业
--
每月执行的作业
exec
p_createjob
@jobname
=
'
mm
'
,
@sql
=
'
select * from syscolumns
'
,
@freqtype
=
'
month
'
--
每周执行的作业
exec
p_createjob
@jobname
=
'
ww
'
,
@sql
=
'
select * from syscolumns
'
,
@freqtype
=
'
week
'
--
每日执行的作业
exec
p_createjob
@jobname
=
'
a
'
,
@sql
=
'
select * from syscolumns
'
--
每日执行的作业,每天隔4小时重复的作业
exec
p_createjob
@jobname
=
'
b
'
,
@sql
=
'
select * from syscolumns
'
,
@fsinterval
=
4
--
*/
if
exists
(
select
*
from
dbo.sysobjects
where
id
=
object_id
(N
'
[dbo].[p_createjob]
'
)
and
OBJECTPROPERTY
(id, N
'
IsProcedure
'
)
=
1
)
drop
procedure
[
dbo
]
.
[
p_createjob
]
GO
create
proc
p_createjob
@jobname
varchar
(
100
),
--
作业名称
@sql
varchar
(
8000
),
--
要执行的命令
@dbname
sysname
=
''
,
--
默认为当前的数据库名
@freqtype
varchar
(
6
)
=
'
day
'
,
--
时间周期,month 月,week 周,day 日
@fsinterval
int
=
1
,
--
相对于每日的重复次数
@time
int
=
170000
--
开始执行时间,对于重复执行的作业,将从0点到23:59分
as
if
isnull
(
@dbname
,
''
)
=
''
set
@dbname
=
db_name
()
--
创建作业
exec
msdb..sp_add_job
@job_name
=
@jobname
--
创建作业步骤
exec
msdb..sp_add_jobstep
@job_name
=
@jobname
,
@step_name
=
'
数据处理
'
,
@subsystem
=
'
TSQL
'
,
@database_name
=
@dbname
,
@command
=
@sql
,
@retry_attempts
=
5
,
--
重试次数
@retry_interval
=
5
--
重试间隔
--
创建调度
declare
@ftype
int
,
@fstype
int
,
@ffactor
int
select
@ftype
=
case
@freqtype
when
'
day
'
then
4
when
'
week
'
then
8
when
'
month
'
then
16
end
,
@fstype
=
case
@fsinterval
when
1
then
0
else
8
end
if
@fsinterval
<>
1
set
@time
=
0
set
@ffactor
=
case
@freqtype
when
'
day
'
then
0
else
1
end
EXEC
msdb..sp_add_jobschedule
@job_name
=
@jobname
,
@name
=
'
时间安排
'
,
@freq_type
=
@ftype
,
--
每天,8 每周,16 每月
@freq_interval
=
1
,
--
重复执行次数
@freq_subday_type
=
@fstype
,
--
是否重复执行
@freq_subday_interval
=
@fsinterval
,
--
重复周期
@freq_recurrence_factor
=
@ffactor
,
@active_start_time
=
@time
--
下午17:00:00分执行
--
添加目标服务器
EXEC
msdb.dbo.sp_add_jobserver
@job_name
=
@jobname
,
@server_name
=
N
'
(local)
'
go

