SQL code
--备份declare @sql varchar(8000) set @sql='backup database mis to disk=''d:\databack\mis\mis'+rtrim(convert(varchar,getdate(),112))+'.bak''' exec(@sql) --删除15天前备份文件 set @sql='del d:\databack\mis\mis' +rtrim(convert(varchar,getdate()-15,112))+'.bak''' exec master..xp_cmdshell@sql --清除日志dump transaction databasename with no_log backup log databasename with no_log --查看数据库里用户和进程的信息sp_who --查看SQL Server数据库里的活动用户和进程的信息sp_who 'active' --查看SQL Server数据库里的锁的情况sp_lock --进程号--50是SQL Server系统内部用的,进程号大于的才是用户的连接进程. --spid是进程编号,dbid是数据库编号,objid是数据对象编号--收缩数据库日志文件的方法--收缩简单恢复模式数据库日志,收缩后@database_name_log的大小单位为M backup log @database_name withno_log dbcc shrinkfile (@database_name_log, 5) --分析SQL Server SQL 语句的方法: set statisticstime {on | off} set statistics io {on | off} --图形方式显示查询执行计划--在查询分析器->查询->显示估计的评估计划(D)-Ctrl-L 或者点击工具栏里的图形--文本方式显示查询执行计划set showplan_all {on |off} set showplan_text { on | off } set statistics profile { on | off }

--完整备份,每周一次
USE Master
GO
declare @str varchar(100)
set @str='D:\DBtext\jgj\DBABak\FullBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.bak'
BACKUP DATABASE [demo] TO DISK=@str
WITH RETAINDAYS=15,NOFORMAT,NOINIT,
NAME=N'Demo完整备份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
GO

--截断日志
USE Master
GO
BACKUP LOG Demo  WITH NO_LOG
GO
--收缩日志文件
USE Demo
GO
DBCC SHRINKFILE (N'Demo_log',0,TRUNCATEONLY)
GO
--差异备份,每天一次
USE Master
GO
declare @str varchar(100)
set @str='D:\DBtext\jgj\DBABak\DiffBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.diff'
BACKUP DATABASE [Demo] TO DISK=@str
WITH DIFFERENTIAL,RETAINDAYS=8,NOFORMAT,NOINIT,
NAME=N'Demo差异备份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
GO

--日志备份,每小时一次
USE Demo
GO
declare @str varchar(100)
set @str='D:\DBtext\jgj\DBABak\logbak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.trn'
BACKUP LOG [Demo] TO DISK=@str
WITH RETAINDAYS=3,NOFORMAT,NOINIT,
NAME=N'Demo日志备份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
GO

--删除过期的备份文件,每天两次
declare @str varchar(100),@dir varchar(100),@fileName varchar(30)
set @dir='del D:\DBtext\jgj\DBABak\'
set @filename=left(replace(replace(replace(convert(varchar,getdate()-15,20),'-',''),'',''),':',''),8)
set @str=@dir+'fullbak'+@filename+'*.bak'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),'',''),':',''),8)
set @str=@dir+'diffbak'+@filename+'*.diff'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),'',''),':',''),8)
set @str=@dir+'logbak'+@filename+'*.trn'
exec xp_cmdshell @str

SQL code
-- 如何删除 SQL2005 过期的数据库备份文件呢? 在 SQL2005 数据库中,不可以自动删除过期的备份文件,所以借用第三方插件完成此功能。 -- 方式一:通过 Forfiles 删除指定目录下过期的备份文件 目的:删除目录 i: \sqldataup 中天前的 . bak 文件: 步骤: 1 、定义 FORFILES 批处理脚本如下: C: \> FORFILES / P i: \sqldataup / M *. bak / C "cmd /C del /Q @path" / d - 5 如果执行成功则返回当前盘符 C: \> 。 --如果没有需要删除的文件则返回信息错误 : 用指定的搜索标准没有找到文件。比如: --C:\>FORFILES /P i:\sqldataup /M *.bak /C "cmd /C del /Q @path" /d -5 -- 错误 : 用指定的搜索标准没有找到文件。 2 、通过计划任务调用批处理脚本如图所示,图太长请看这里 3 、当然也可以用 SQLAgent 调用 CMDEXEC 完成批处理作业。 方式二:如果在 SQL2008 中因为默认安装 Powershell 1.0 程序,故可以用 Powershell 编写脚本来完成定时删除过期文件。 太多内容,请看文章http://blog.csdn.net/claro/archive/2009/08/18/4458417.aspx。

SQL code
--最好备份日志,以后可通过日志恢复数据。。。以下为日志处理方法 一般不建议做第4,6两步 第4步不安全,有可能损坏数据库或丢失数据 第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复. --*/--下面的所有库名都指你要处理的数据库的库名1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志: BACKUP LOG 库名 WITH NO_LOG 3.收缩数据库文件(如果不压缩,数据库的文件不会减小 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成 --收缩数据库DBCC SHRINKDATABASE(库名) --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfilesDBCC SHRINKFILE(1) 4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行) a.分离数据库: 企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K 或用代码: 下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。 a.分离 EXEC sp_detach_db @dbname = '库名'b.删除日志文件 c.再附加 EXEC sp_attach_single_file_db @dbname = '库名', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf' 5.为了以后能自动收缩,做如下设置: 企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式:EXEC sp_dboption '库名', 'autoshrink','TRUE' 6.如果想以后不让它日志增长得太大 企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 库名 modify file(name=逻辑文件名,maxsize=20)

--查看表的索引信息
exec sp_helpindex tb

--结合sys.indexes和sys.index_columns,sys.objects,sys.columns查询索引所属的表或视图的信息
select
  o.name as 表名,
  i.name as 索引名,
  c.name as 列名,
  i.type_desc as 类型描述,
  is_primary_key as 主键约束,
  is_unique_constraint as 唯一约束,
  is_disabled as 禁用
from
  sys.objects o
inner join
  sys.indexes i
on
  i.object_id=o.object_id
inner join 
  sys.index_columns ic
on
  ic.index_id=i.index_id and ic.object_id=i.object_id
inner join
  sys.columns c
on
  ic.column_id=c.column_id and ic.object_id=c.object_id
go

--查询索引的键和列信息
select 
  o.name as 表名,
  i.name as 索引名,
  c.name as 字段编号,
from
  sysindexes i inner join sysobjects o
on
  i.id=o.id
inner join
  sysindexkeys k
on
  o.id=k.id and i.indid=k.indid
inner join
  syscolumns c
on
  c.id=i.id and k.colid=c.colid
where
  o.name='表名'
---查询索引操作的信息
select * from sys.dm_db_index_usage_stats

--查询指定表的统计信息(sys.stats和sysobjects联合查询)
select
  o.name,--表名
  s.name,--统计信息的名称
  auto_created,--统计信息是否由查询处理器自动创建
  user_created--统计信息是否由用户显示创建
from
  sys.stats
inner join
  sysobjects o
on
  s.object_id=o.id
where 
  o.name='表名'
go

--查看统计信息中列的信息
select
  o.name,--表名
  s.name,--统计信息的名称
  sc.stats_column_id,
  c.name---列名
from
  sys.stats_columns sc
inner join
  sysobjects o
on
  sc.object_id=o.id
inner join
  sys.stats s
on
  sc.stats_id=s.stats_id and sc.object_id=s.object_id
inner join
  sys.columns c
on
  sc.column_id=c.column_id and sc.object_id=c.object_id
where 
  o.name='表名'

--查看统计信息的明细信息
dbcc show_statistics

--查看索引自动创建的统计信息
exec sp_autostats '对象名'

--关闭自动生成统计信息的数据库选项
alter datebase 数据库名 set auto_create_statistics off

--创建统计信息
create statistics 统计信息名称 on 表名(列名)
[with
[[fullscan
   sample number{percent|rows}]
[norecompute]
]
go
解释一下上面的参数:
fullscan:指定对表或视图中所有的行收集统计信息
sample number{percent|rows}:指定随机抽样应读取的数据行数或者百分比 sample选项不能与fullscan选项同时使用
norecompute:指定数据库引擎不自动重新计算统计信息

--计算随机抽样统计信息
create statistics 统计信息名称 on 表名(列名)
with sample 5 percent---创建统计信息,按5%计算随机抽样统计信息
go

--创建统计信息
exec sp_createstats--参数自己去查下帮助,在这里不一一列举

--修改统计信息
update statistics 表名|视图名
    索引名|统计信息名,索引名|统计信息名,.....
[with
[[fullscan
   sample number{percent|rows}]
[norecompute]
]
---参数与create statistics 语句相似,下面介绍几种常用应用
1.更新指定表的所有统计信息
update statistics 表名

2.更新指定表的单个索引的统计信息
update statistics 表名 索引名

3.对表进行全面扫描,更新统计信息
update statistics 表名(列名) with fullscan
--获取磁盘读写情况
select
  @@total_read as '读取磁盘的次数',
  @@total_write as '写入磁盘的次数',
  @@total_error as '磁盘写入错误数',
  getdate() as '当前时间'

--获取数据库文件的I/O统计信息
select * from fn_virtualfilestats(null,null)
--两个参数
database_id--指定数据库编号,如果为null,则为所有数据库实例返回I/O统计信息
file_id --文件的编号,如果为null,则为所有文件返回信息

--获取I/O工作情况
select 
  @@id_busy,--SQL自上次启动以来的用于执行输入和输出操作的时间
  @@timeticks, --每个时钟周期对应的微秒数
  @@id_busy*@@timeticks as 'I/O 操作毫秒数',
  getdate() as '当前时间'

--查看SQL SEVER CPU活动,工作情况
select
  @@cpu_busy,--自上次启动以来的工作时间
  @@timeticks, --每个时钟周期对应的微秒数 
  @@cpu_busy*cast(@@timeticks as float)/1000 as 'cpu工作时间(秒)',
  @@idie*cast(@@timeticks as float)/1000 as 'CPU空闲时间(秒)'
  getdate() as '当前时间'

--获取网络数据包统计信息
select
  getdate() as '当前时间',
  @@pack_received as'输入数据包数量',
  @@pack_sent as '输出数据包数量',
  @@packet_error as '错误包数量'
服务器配置选项
--启动AWE
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'awe enable',1--启动AWE选项,用于支持超过4G内存 具体用法见笔记三
go 
sp_configure 'show advanced options',0
reconfigure
go

--指定游标集中的行数
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'cursor threshold'--指定游标集中的行数,超过此行数,将异步生成游标键集
go 
sp_configure 'show advanced options',0
reconfigure
go

--指定全文索引列的默认语言值
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'default full-text language'--2052代表简体中文,具体的查询联机丛书
go 
sp_configure 'show advanced options',0
reconfigure
go

--控制是否让触发器返回结果集
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'disallow results from triggers',1--1代表on
go 
sp_configure 'disallow results from triggers',0--0代表off
go 
sp_configure 'show advanced options',0
reconfigure
go

--控制最初为创建索引分配的最大内存量
sp_configure 'index create memory', 4096
GO

--设置可用的锁的最大个数
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'locks'---要设置的话在后面加',数字'
go 
sp_configure 'show advanced options',0
reconfigure
go

--设置SQL进程可使用的工作线程数
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'max worker threads'--要设置的话在后面加',数字'
go 
sp_configure 'show advanced options',0
reconfigure
go

--指定一个查询在超时前等待所需资源的时间
sp_configure 'query wait',数字
go

--指定在SQL SERVER超时之前远程操作可以持续的时间
sp_configure 'remote query  timeout',数字
go

--是否允许运行系统存储过程xp_cmdshell
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'xp_cmdshell',1
reconfigure
go
sp_configure 'show advanced options',0
reconfigure
go

--从运行SQL SERVER实例的本地或远程服务器上控制存储过程的执行
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'remote access',1 --1表示允许
reconfigure
go
sp_configure 'remote access',0 --0表示禁止
reconfigure
go
sp_configure 'show advanced options',0
reconfigure
go

---更多的查看联机丛书

--启动,暂停和停止本地的SQL SERVER 服务
net start MSSQLSERVER  --启动
net pause MSSQLSERVER  --暂停
net continue MSSQLSERVER  ---继续被停止的服务
net stop MSSQLSERVER --停止

--查询服务器配置选项信息
select * from sys.configurations
go
--得到的结果中
configuration_id --配置选项的唯一ID
name             --配置选项的名称
value            --配置选项的值
minimum          --配置选项的最小值
maximum          --配置选项的最大值
value_in_use     --配置选项当前使用的运行值
description      --配置选项的说明
is_dynamic       --等于1时表示需要执行reconfiguration语句才能生效的变量
is_anvanced      --等于1时表示需要执行show advanced语句才能生效的变量

--也可以使用sp_configure查询服务器配置选项信息,只是参数有所不同,具体查看联机丛书

最新文章

  1. Greenplum安装
  2. Memcache及telnent命令详解
  3. php面试题及答案
  4. Vim 常见操作
  5. 清理Oracle安装目录里的一些日志信息
  6. MYSQL集群的搭建
  7. WordPress 后台禁用Google Open Sans字体,加速网站
  8. CentOS7安装和配置FTP
  9. Change Fragment layout on orientation change
  10. MySQL忘记root密码的解决方案
  11. double类型如何保留2为小数
  12. 将Excel数据表到数据库表
  13. laravel 请求request 接收参数
  14. Data Center(5): 实例
  15. Oracle中rownum的基本用法
  16. 牛客练习赛13F m皇后
  17. python模块-----pymysql
  18. 微信小程序细节
  19. ubuntu14.04 Keras框架搭建
  20. 三层和MVC

热门文章

  1. 一种 Visual Studio 不能单步调试(函数调用)问题
  2. NOIP2012 借教室
  3. Excel导入导出,生成和下载Excel报表、附件等操作--ASP.NET
  4. codeforces 258div2 A Game With Sticks(DP)
  5. Stanford机器学习---第四讲. 神经网络的表示 Neural Networks representation
  6. HDU 1069&&HDU 1087 (DP 最长序列之和)
  7. python - PyQuery
  8. Java正则表达式的最简单应用
  9. shell脚本步骤调试
  10. Balanced Binary Tree