Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SQL Server 2008:索引中的页数_Sql Server 2008_Indexing_B Tree Index - Fatal编程技术网

Sql server 2008 SQL Server 2008:索引中的页数

Sql server 2008 SQL Server 2008:索引中的页数,sql-server-2008,indexing,b-tree-index,Sql Server 2008,Indexing,B Tree Index,我试图调查每个索引的页数,并制定了以下查询: SELECT pyi.index_type_desc as [index type], i.name as [index name], sum(pyi.page_count) as [number of pages] FROM sys.dm_db_index_physical_stats(DB_ID('testdb'),OBJECT_ID('surrogatekey

我试图调查每个索引的页数,并制定了以下查询:

SELECT              
        pyi.index_type_desc as [index type],
        i.name as [index name],
        sum(pyi.page_count) as [number of pages]
FROM 
    sys.dm_db_index_physical_stats(DB_ID('testdb'),OBJECT_ID('surrogatekeys'),NULL,NULL,'DETAILED') as pyi
INNER JOIN 
    sys.indexes as i ON pyi.object_id = i.object_id     
GROUP BY 
    i.name, pyi.index_type_desc
运行此查询时,我得到以下结果:

CLUSTERED INDEX PK_TableWithSurrogateKeyAndUniqueContraints 14342
CLUSTERED INDEX UNIQUE_TableWithSurrogateKeyAndUniqueContraints 14342
NONCLUSTERED INDEX  PK_TableWithSurrogateKeyAndUniqueContraints 707
NONCLUSTERED INDEX  UNIQUE_TableWithSurrogateKeyAndUniqueContraints 707
此表的创建方式如下:

CREATE TABLE [dbo].[SurrogateKeys]
(
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [TimeStamp] [datetime2](7) NOT NULL,
    [Username] [nvarchar](20) NOT NULL, 
    [Message] [nvarchar](500) NULL,

    CONSTRAINT [PK_TableWithSurrogateKeyAndUniqueContraints] 
       PRIMARY KEY CLUSTERED ([Id]),
    CONSTRAINT [UNIQUE_TableWithSurrogateKeyAndUniqueContraints] 
       UNIQUE ([Username], [TimeStamp]),
) ON [PRIMARY]
GO
并填充了100000行随机数据

我希望看到两个条目:用于唯一约束的非聚集索引和用于主键列的聚集索引


这些双重输入意味着什么

这意味着您的
加入
条件错误-您还需要在
加入
条件中包含
索引id
-如下所示:

INNER JOIN 
    sys.indexes as i ON pyi.object_id = i.object_id 
                      AND pyi.index_id = i.index_id   

一个简单的问题,也许是一个愚蠢的问题:如果sys.dm_db_index_physical_stats的第一个查询返回6行,为什么连接只返回4行?我本以为它会返回未完成联接中的所有6行。