小编wes*_*eve的帖子

表间隙分析的性能调优

我有一个表,用于存储从现场设备接收到的数据序列(计数器)。无论如何,这些序列需要在可配置的时间跨度内有序,但可以无序进入系统。如果设备被重置,那么它的序列号将被设置回 0。

CREATE TABLE [dbo].[TapGapDetail]
(
[Id] [bigint] NOT NULL, --FK to another table
[DeviceESN] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[TapDateUTC] [datetime] NOT NULL, --date event occurred on device
[CreatedDateUTC] [datetime] NOT NULL,
[Counter] [int] NOT NULL,
)

CREATE CLUSTERED INDEX [CX_TapGapDetail] ON [dbo].[TapGapDetail] ([DeviceESN], [CreatedDateUTC], [Counter]) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)

我尝试通过 DeviceESN 和 CreatedDateUTC 切换 CX 的顺序,但在我的系统上,它似乎对 IO 没有太大影响。该表中有数百万行。

示例插入将是:

INSERT INTO TapGapDetail (1, 'A', '1/1/2012 01:00AM', '1/1/2012 01:10AM', 5)
INSERT INTO TapGapDetail (2, 'A', '1/1/2012 12:05AM', '1/1/2012 01:15AM', …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server gaps-and-islands

6
推荐指数
1
解决办法
1044
查看次数