当前位置: 代码迷 >> Sql Server >> 重建目录
  详细解决方案

重建目录

热度:74   发布时间:2016-04-27 11:09:36.0
重建索引
1.sqlserver2005有一个数据库abc,其中有一个表叫tblView,如何用sql语句重建tblView的索引
2.如何用sql压缩abc数据库
3.如何清除abc的数据库日志

------解决方案--------------------
1、打开SSMS→管理→维护计划→新建维护计划,名字随便→在左边的工具栏里面,把重建索引拉进去,双击→设置数据库→点击【查看T-SQL】就自动生成脚本了。
2、只有2008以后才有压缩,你应该是问【收缩】吧:
SQL code
USE [AdventureWorks] GO DBCC SHRINKDATABASE(N'AdventureWorks' ) GO
------解决方案--------------------
SQL code
--1、create index 加上 with(drop_existing=on)选项--例CREATE NONCLUSTERED INDEX IX_WorkOrder_ProductIDON Production.WorkOrder(ProductID)WITH (DROP_EXISTING = ON);--2、dbcc shrinkfile 和 dbcc shrinkdatabase--3--<1>.清空日志 DUMP     TRANSACTION     库名     WITH     NO_LOG         --<2>.截断事务日志: BACKUP   LOG   库名   WITH   NO_LOG
------解决方案--------------------
SQL code
use abcgoALTER INDEX all on tblViewREBUILD;--2,3  DBCC SHRINKDATABASE DBCC SHRINKFILE
------解决方案--------------------
SQL code
--1、(1)DBCC DBREINDEX    (    [ 'database.owner.table_name'                [ , index_name                [ , fillfactor ]            ]         ]     )    [ WITH NO_INFOMSGS ](2)alter index indexname rebuild
------解决方案--------------------
DBCC DBREINDEX 用法
重建指定数据库中表的一个或多个索引。
语法
DBCC DBREINDEX
( [ 'database.owner.table_name'
[ , index_name
[ , fillfactor ]
]
]
)
参数
'database.owner.table_name'
是要重建其指定的索引的表名。数据库、所有者和表名必须符合标识符的规则。有关更多信息,请参见使用标识符。如果提供 database 或 owner 部分,则必须使用单引号 (') 将整个 database.owner.table_name 括起来。如果只指定 table_name,则不需要单引号。
index_name
是要重建的索引名。索引名必须符合标识符的规则。如果未指定 index_name 或指定为 ' ',就要对表的所有索引进行重建。
fillfactor
是创建索引时每个索引页上要用于存储数据的空间百分比。fillfactor 替换起始填充因子以作为索引或任何其它重建的非聚集索引(因为已重建聚集索引)的新默认值。如果 fillfactor 为 0,DBCC DBREINDEX 在创建索引时将使用指定的起始 fillfactor。
同样在Query Analyzer中输入命令:
dbcc dbreindex('database_name.dbo.Employee','',90)
然后再用DBCC SHOWCONTIG查看重构索引后的结果:
DBCC SHOWCONTIG scanning 'Employee' table...
Table: 'Employee' (1195151303); index ID: 1, database ID: 53
TABLE level scan performed.
- Pages Scanned................................: 178
- Extents Scanned..............................: 23
- Extent Switches..............................: 22
- Avg. Pages per Extent........................: 7.7
- Scan Density [Best Count:Actual Count].......: 100.00% [23:23]
- Logical Scan Fragmentation ..................: 0.00%
- Extent Scan Fragmentation ...................: 0.00%
- Avg. Bytes Free per Page.....................: 509.5
- Avg. Page Density (full).....................: 93.70%
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
通过结果我们可以看到Scan Denity为100%。
******
  相关解决方案