2012-05-03 32 views
1

我在SQL Server中2個表表規模在SQL Server奇怪

TbUrl

  • 索引空間12531 MB
  • 行數247505
  • 數據空間1.965,891 MB

表結構:

CREATE TABLE [TbUrl](
    [IdUrl] [Int] IDENTITY(1,1) NOT NULL, 
    [IdSupply] [Int] NOT NULL, 
    [Uri] [varchar](512) NOT NULL, 
    [UrlCod] [varchar](256) NOT NULL, 
    [Status] [Int] NOT NULL, 
    [InsertionDate] [datetime] NOT NULL, 
    [UpdatedDate] [datetime] NULL, 
    [UpdatedIp] [varchar](15) NULL 

TbUrlDetail

  • 索引空間29406 MB
  • 行數234209
  • 數據空間386047 MB​​

結構:

CREATE TABLE .[TbUrlDetail](
    [IdUrlDetail] [Int] IDENTITY(1,1) NOT NULL, 
    [IdUri] [Int] NOT NULL, 
    [Title] [varchar](512) NOT NULL, 
    [Sku] [varchar](32) NOT NULL, 
    [MetaKeywords] [varchar](512) NOT NULL, 
    [MetaDescription] [varchar](512) NOT NULL, 
    [Price] [money] NOT NULL, 
    [Description] [text] NOT NULL, 
    [Stock] [Bit] NOT NULL, 
    [StarNumber] [Int] NOT NULL, 
    [ReviewNumber] [Int] NOT NULL, 
    [Category] [varchar](256) NOT NULL, 
    [UrlShort] [varchar](32) NULL, 
    [ReleaseDate] [datetime] NOT NULL, 
    [InsertionDate] [datetime] NOT NULL 

TbUrl大小與TbUrlDetail

TbUrl的佈局(設計)與TbUrlDetail比較少,但它的其他數據相比,空間是非常大的。

我已完成SHRINK ON DATABASETbUrl的空間不減少。

可能發生了什麼?我如何減少這張桌子的空間?

+2

收縮數據庫很少是一個好主意 –

+1

被定義哪些列的聚集索引? –

回答

3

表上是否有聚簇索引? (如果不是,你可能會遭受很多轉發指針 - ref。)你是否對數據或數據類型或添加/刪除的列進行了重大更改? (如果你有那麼以前佔用的空間很多可能無法被重新使用。One ref其中將固定長度的列改爲變量不會回收空間。)

在這兩種情況下,您都應該能夠通過重建表回收浪費的空間(這也將重建所有的聚集索引):

ALTER TABLE dbo.TblUrl REBUILD; 

如果你是企業版,你可以這樣做在線:

ALTER TABLE dbo.TblUrl REBUILD WITH (ONLINE = ON); 

收縮整個數據庫這裏不是神奇的答案。如果這張桌子上沒有聚集索引,我強烈建議你在之前考慮一個執行重建。

+0

謝謝!我執行了命令ALTER TABLE dbo.TblUrl REBUILD; 和ALTER INDEX ALL ON dbo.TbUrl REBUILD;該表現在有數據空間38,773 MB –

0

使用VARCHAR()字段時,實際佔用的空間量會根據放置在這些字段中的文本量而變化。

你可能有(平均)在一張桌子比其他更短的條目?

嘗試

SELECT 
    SUM(CAST(LENGTH(uri) + LENGTH(urlcod) AS BIGINT)) AS character_count 
FROM 
    TbUrl 

SELECT 
    SUM(CAST(LENGTH(title) + LENGTH(metakeywords) + LENGTH(metadescription) + LENGTH(Category) AS BIGINT)) AS character_count 
FROM 
    TbUrlDetail 
+0

嗨。結果是:25452193第一個查詢和103720201第二個查詢。 –