《SQLSERVER 2005管理员指南》读书笔记2
三 维护与自动化
还原类型:完全还原、差异还原、事务日志还原、时间点还原
在数据库对象名称或文本前加上N使后面的文本显示成Unicode
另外两种类型的维护:
处理数据库物理状态:检查数据库文件一致性和收缩数据库DBCC CHECKDB('database name')检查库
DBCC CHECKTABLE('table or index name')检查表或索引
CHECKALLOC('database name')检查空间分配
DBCC CHECKIDENT('Table1',reseed,0)重置主键标示为0
聚集索引,改变表本身,使按照选择列的顺序进行物理数据储存,即表就是索引,每个表只有一个,对于这种类型索引最好使用顺序的、很少改变的值,插入中间值性能消耗昂贵,主键总是聚集索引
非聚集索引,更像书的索引,有一个单独的结构,保存能找到目标记录的指针
随着索引写入及改变,将导致索引产生许多碎片
检查碎片中几个动态管理视图
1.sys.dm_db_index_operational_stats,显示索引当前I/O性能统计
SELECT *
FROM sys.dm_db_index_operational_stats(DB_ID(N'InventionToolEffect')
,OBJECT_ID(N'InventionToolEffect.dbo.Effect.实例')
,null,null)
GO
FROM sys.dm_db_index_operational_stats(DB_ID(N'InventionToolEffect')
,OBJECT_ID(N'InventionToolEffect.dbo.Effect.实例')
,null,null)
GO
2.sys.dm_db_index_usage_stats,显示索引的活动
SELECT * FROM sys.dm_db_index_usage_stats
3.sys.dm_db_index_physical_stats,显示特定表所包含数据和索引的大小及碎片
SELECT *
FROM sys.dm_db_index_physical_stats(DB_ID(N'InventionTool')
,OBJECT_ID(N'InventionTool.dbo.Effect.实例')
,NULL,null,'LIMITED')
GO
FROM sys.dm_db_index_physical_stats(DB_ID(N'InventionTool')
,OBJECT_ID(N'InventionTool.dbo.Effect.实例')
,NULL,null,'LIMITED')
GO
4.dbcc showcontig('Table1'),动态视图
纠正索引:重新组织或者重建
重建索引将使用非常多的锁,消耗时间更多,但可把索引完全重写一遍
碎片程度低于30%,用ALTER INDEX REORGANIZE;可在用户联机情况下使用,执行很快
ALTER INDEX [PK_Effect.实例]
ON [Effect.实例]
REORGANIZE
ON [Effect.实例]
REORGANIZE
高于30%则用ALTER INDEX REBUILD;需要更多时间,将阻塞用户操作
大型数据库中通常都是一系列REORGANIZE后再进行REBUILD
相当于DBCC INDEXDEFRAG和DBCC DBREINDEX