2016-04-03 9 views
1

行構造を分析する際に、次のような理由で複数のエントリが表示される理由を理解するのが苦労しています。SQLサーバーでのデータ構造の分析

まず、2つのテーブルを設定します。

私は、以下のクエリを使用して行/ページ構造を掘り下げています。その後

CREATE TABLE [Table1] 
(
    [Column1] INT IDENTITY PRIMARY KEY, 
    [Column2] VARCHAR (100), 
    [Column3] VARCHAR (20) 
) 

CREATE TABLE [Table2] 
(
    [Column1] INT IDENTITY 
     FOREIGN KEY REFERENCES [Table1]([Column1]), 
    [Column4] VARCHAR (1000) 
) 

、私はその後、次の

BEGIN TRANSACTION 

INSERT INTO [Table1] ([Column2], [Column3]) 
VALUES (REPLICATE ('2', 50), REPLICATE('3', 20)) 

INSERT INTO [Table2] ([Column4]) 
VALUES (REPLICATE ('4', 1000)) 
GO 1000000 

COMMIT TRANSACTION 

を用いて、1万行を挿入し、次のクエリを使用して、私はテーブルを構成するどのように多くのページを参照してみてください。

SELECT 
    [alloc_unit_type_desc] AS [Data Structure], 
    [page_count] AS [pages], 
    [record_count] AS [Rows] 
FROM 
    SYS.dm_db_index_physical_stats (DB_id(), OBJECT_ID (N'Table1'), NULL, NULL, N'detailed') 

ここに私の質問があります:これらの他の41ページはどこから来ますか?彼らは明らかに同じデータを含んでいませんか?私もselectテーブルでそれらを見ることはありません。

+1

クエリの結果? –

答えて

4

あなたのクエリにindex_levelを追加する場合は、テーブルは主キーを使用して作成され

SELECT [alloc_unit_type_desc] AS [Data Structure], 
     [page_count]   AS [pages], 
     [record_count]   AS [Rows], 
     index_level 
FROM sys.dm_db_index_physical_stats (DB_id(), 
       OBJECT_ID (N'Table1'), NULL, NULL, N'detailed') 

enter image description here

が表示されます。これは、デフォルトではクラスタード・インデックスになります。これをサポートするB-tree指標は何ですか、単一のルート・ページを持っており、レベルの根と11112リーフレベル・ページ間40本の中間ページ0

(クラスタ化インデックスfrom hereの構成)

enter link description here

関連する問題