2010-02-19 67 views
0

只是为了找出我的数据库大小的生产环境,我刚刚填写我的表与150万行几乎相同的数据(主键除外)。它目前显示261 MB ...Sql Server压缩数据库大小类似的数据

现在,我是否可以依靠这个,或者因为在所有其他列上的数据几乎相似,SQL服务器已经压缩了大小。即。如果每行中的值不同,大小会不同...

此外......偶数列是否会导致数据库大小的空值?

感谢您的时间...

编辑:这是我的架构......我已经取得了一些指标太...

CREATE TABLE [dbo].[Trn_Tickets](
     [ObjectID] [bigint] IDENTITY(1,1) NOT NULL, 
     [TicketSeqNo] [bigint] NULL, 
     [BookSeqNo] [bigint] NULL, 
     [MatchID] [int] NULL, 
     [TicketNumber] [varchar](20) NULL, 
     [BarCodeNumber] [varchar](20) NULL, 
     [GateNo] [varchar](5) NULL, 
     [EntryFrom] [varchar](10) NULL, 
     [MRP] [decimal](9, 2) NULL, 
     [Commission] [decimal](9, 2) NULL, 
     [Discount] [decimal](9, 2) NULL, 
     [CashPrice] [decimal](9, 2) NULL, 
     [CashReceived] [decimal](9, 2) NULL, 
     [BalanceDue] [decimal](9, 2) NULL, 
     [CollectibleFrom] [char](1) NULL, 
     [PlaceOfIssue] [varchar](20) NULL, 
     [DateOfIssue] [datetime] NULL, 
     [PlaceOfSale] [varchar](20) NULL, 
     [AgentID] [int] NULL, 
     [BuyerID] [int] NULL, 
     [SaleTypeID] [tinyint] NULL, 
     [SaleDate] [smalldatetime] NULL, 
     [ApprovedBy] [varchar](15) NULL, 
     [ApprovedDate] [smalldatetime] NULL, 
     [InvoiceStatus] [char](1) NULL, 
     [InvoiceRefNo] [varchar](15) NULL, 
     [InvoiceDate] [smalldatetime] NULL, 
     [BookPosition] [char](2) NULL, 
     [TicketStatus] [char](2) NULL, 
     [RecordStatus] [char](1) NULL, 
     [ClosingStatus] [char](2) NULL, 
     [ClosingDate] [datetime] NULL, 
     [UpdatedDate] [datetime] NULL, 
     [UpdatedUser] [varchar](10) NULL, 
    CONSTRAINT [PK_Trn_Tickets] PRIMARY KEY CLUSTERED 
    (
     [ObjectID] ASC 
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
    ) ON [PRIMARY] 

希望这有助于

+0

这可能看起来像一个推理问题。如果您有很多og ** NULL **列,您可以尝试重构表格吗? – 2010-02-19 20:20:51

回答

3

SQL服务器2005和2008 Express将不会压缩您的数据。 SQL Server 2008可以使用page compression,但只能在企业版上使用。 NULL列在该行中占据一位。

从您的数据描述,听起来更像是一个普通的标准化问题。将重复值分成查找表,只存储不同的组合,加入查找表。这将通过模式设计保存数据,并可用于所有数据库平台,所有版本以及所有SKU。

1

替换查找都批准了等等(VARCHAR)其他表

你需要日期时间?

你预计会有超过40亿行吗?为什么是1st 3 cols bigint?

保存几个字节在这里和那里=一个很大的区别。较高的页面密度(例如,每8k页面有更多的行)=较少的空间+较小的索引。

当你有15亿行时压缩。