日期时间索引sql server 2005
我知道这是一个常见的话题,但我仍然觉得我的场景需要一些定制的建议。前几天,我从一个表中进行了选择,在一个尚未编制索引的datetime列上进行选择花了我一段时间。我想索引这个,唯一的问题是ebing的“生产”2005框,我不熟悉,它将如何处理索引创建。考虑到这一点,我想知道对我来说在表上创建索引最安全的方法是什么。我认为人们需要的所有细节如下(我希望): 要在字段5(也可能是字段4)上创建的索引 表1定义:日期时间索引sql server 2005,sql,sql-server-2005,indexing,Sql,Sql Server 2005,Indexing,我知道这是一个常见的话题,但我仍然觉得我的场景需要一些定制的建议。前几天,我从一个表中进行了选择,在一个尚未编制索引的datetime列上进行选择花了我一段时间。我想索引这个,唯一的问题是ebing的“生产”2005框,我不熟悉,它将如何处理索引创建。考虑到这一点,我想知道对我来说在表上创建索引最安全的方法是什么。我认为人们需要的所有细节如下(我希望): 要在字段5(也可能是字段4)上创建的索引 表1定义: CREATE TABLE [dbo].[TABLE 1]( [ID] [uniq
CREATE TABLE [dbo].[TABLE 1](
[ID] [uniqueidentifier] NOT NULL CONSTRAINT [DF_BLA] DEFAULT (newid()),
[field1] [nvarchar](7) NULL,
[field2] [nvarchar](10) NULL,
[field3] [nvarchar](2) NULL,
[field4] [datetime] NULL,
[field5] [datetime] NULL,
[field6] [smallint] NULL,
[field7] [nvarchar](1) NULL,
[field8] [nvarchar](7) NULL,
[field9] [nvarchar](60) NULL,
[field10] [smallint] NULL,
[field11] [nvarchar](15) NULL,
[field12] [datetime] NULL,
CONSTRAINT [PK_ID] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
表1中的行总数:2926836当您询问在表上创建索引的最安全方法是什么时,您担心什么?实际上,3m行并不是很多,因此索引创建不应超过几分钟,因此,如果您可以在一天中找到一个表几分钟内不使用的时段,那么您可以创建索引,而不用担心很多问题,或者,如果您使用的是sql server企业版,则可以在线创建索引,这意味着在创建索引时仍然可以使用该表。对于具有的不相关注释,至少应使用默认值
NEWSEQUENTIALID()
。感谢您的回复。很抱歉反应太晚。我应该能够在线创建索引。只希望有足够的空间!!!在GUID注释中,设计决策是在我到达之前做出的,我想可能是5年前。不确定开始更改集群键对我来说是否是个好主意。就像一切一样,停机不是一种选择。没那么糟吧?我读过你链接的那篇文章,但我的理解是,它在当前状态下不会造成任何伤害。