我执行以下sql:
select * from sys.dm_db_index_physical_stats(db_id(),object_id('Tec_Article'),null,null,null)为什么会返回两条结果:
9 629577281 1 1 CLUSTERED INDEX IN_ROW_DATA 2 0 34.375 59 2.71186440677966 160 NULL NULL NULL NULL NULL NULL NULL NULL
9 629577281 1 1 CLUSTERED INDEX LOB_DATA 1 0 0 NULL NULL 62 NULL NULL NULL NULL NULL NULL NULL NULL而且第一条的碎片比(即avg_fragmentation_in_percent字段)是34.375,而第二条是0

解决方案 »

  1.   

    没有啊,就是普普通通的create table创建的表。
      

  2.   

    我用
    select object_name(object_id),* from sys.dm_db_index_physical_stats(db_id(),null,null,null,null)
    order by object_id desc查了一下,发现只要是读取的比较频繁的表,都有两条记录,一些很少读的表,才是一条记录。
      

  3.   

    注意看类型INDEX LOB_DATAINDEX IN_ROW_DATA
      

  4.   

    LOB_DATA 分配单元包含类型为 text、ntext、image、varchar(max)、nvarchar(max)、varbinary(max) 和 xml 的列中所存储的数据。列的类型有以上类型?
      

  5.   

    嗯。CREATE TABLE [dbo].[Tec_Article](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [Title] [varchar](200) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [Catalog] [int] NOT NULL,
    [Content] [varchar](max) COLLATE Chinese_PRC_CI_AS NULL,
    [Author] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [ReadCount] [int] NOT NULL CONSTRAINT [DF__Tec_Artic__ReadC__7F60ED59]  DEFAULT ((0)),
    [SourceUrl] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [Creator] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [CreateDate] [datetime] NOT NULL CONSTRAINT [DF__Tec_Artic__Creat__00551192]  DEFAULT (getdate()),
     CONSTRAINT [PK__Tec_Article__7E6CC920] PRIMARY KEY CLUSTERED 
    (
    [Title] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
      

  6.   

    每个聚集索引的每个分区中至少有一个 IN_ROW_DATA 分配单元。如果聚集索引包含大型对象 (LOB) 列,则它的每个分区中还会有一个 LOB_DATA 分配单元。
      

  7.   

    给你举个例子Create table T(Col nchar(200) ,Col2 nvarchar(max) )
    Create clustered index IX_T on T(Col)--INCLUDE(Col)insert into T select REPLICATE('Roy',50),REPLICATE('Roy_88',2000)
    --drop table Tselect * from sys.dm_db_index_physical_stats(db_id(),object_id('T'),null,null,null)