数据库模式,用于在大多数“非活动”数据的大表中存储和查询少量“活动”行

时间:2014-08-14 16:57:50

标签: sql sql-server sql-server-2008 database-design sql-server-2008-r2

我有一个包含数百万行的SQL Server 2008R2表。每一行都有一个" Active"列(位)。在任何给定的时间,可能会有数十个" Active"记录,它们将是最近添加到表中的记录(通常在最后几秒内添加)。

在应用程序端(C#),我对表格的表进行相当高频率的轮询"选择* where active = 1"。然后,这些行在经过多个处理阶段处理时会经常更新。 (例如,行上的状态字段从1到10)。

我担心的是在" Active"上有一个索引。字段不是很有用,因为字段是99.99%" 0"并且统计数据可能永远不会得到更新,我关心的数据都在" end"无论如何,该表(有一个自动增量主键)。同样地,基于PK更新行可能比它需要更慢,因为我知道更新都发生在表末尾的行中。

现在我确定可以改进。 将活动数据的副本保存在自己的较小表中以提高可查询性是否谨慎?

索引视图或其他构造会完成同样的事情吗?

我是否应该使用某种常规查询来跟踪这些行,而不是轮询表格?

0 个答案:

没有答案