请教大家,如何检查并整理SQL 2000数据库碎片?
谢谢
1

解决方案 »

  1.   

    DBCC INDEXDEFRAG
    整理指定的表或视图的聚集索引和辅助索引碎片。
      

  2.   

    另外,也请收缩数据库.DBCC INDEXDEFRAG
    整理指定的表或视图的聚集索引和辅助索引碎片。
      

  3.   

    --查询数据库db中表tb的所有索引的碎片情况
    use db
    go
    select 
      a.index_id,---索引编号
      b.name,---索引名称
      avg_fragmentation_in_percent---索引的逻辑碎片
    from
      sys.dm_db_indx_physical_stats(db_id(),object_id(N'create.consume'),null,null,null) as a
    join
      sys.indexes as b
    on
      a.object_id=b.object_id 
    and
      a.index_id=b.index_id
    go---解释下sys.dm_db_indx_physical_stats的参数
    datebase_id: 数据库编号,可以使用db_id()函数获取指定数据库名对应的编号。
    object_id: 该索引所属表或试图的编号
    index_id: 该索引的编号
    partition_number:对象中分区的编号
    mode:模式名称,用于指定获取统计信息的扫描级别。
    有关sys.dm_db_indx_physical_stats的结果集中的字段名去查下联机丛书。
      

  4.   

    --查询数据库db中表tb的所有索引的碎片情况
    use db
    go
    select 
      a.index_id,---索引编号
      b.name,---索引名称
      avg_fragmentation_in_percent---索引的逻辑碎片
    from
      sys.dm_db_indx_physical_stats(db_id(),object_id(N'create.consume'),null,null,null) as a
    join
      sys.indexes as b
    on
      a.object_id=b.object_id 
    and
      a.index_id=b.index_id
    go---解释下sys.dm_db_indx_physical_stats的参数
    datebase_id: 数据库编号,可以使用db_id()函数获取指定数据库名对应的编号。
    object_id: 该索引所属表或试图的编号
    index_id: 该索引的编号
    partition_number:对象中分区的编号
    mode:模式名称,用于指定获取统计信息的扫描级别。
    有关sys.dm_db_indx_physical_stats的结果集中的字段名去查下联机丛书。