我从我的客户端应用程序向数据库(SQL Server2008 R2)发出了一个UPDATE请求,它需要6秒才能完成。
目前,我在该表中有大约500万行。
下面是查询:
UPDATE MyTable
SET subject2 = 'information abx', dateProcessed = '2012-02-27 23:02:44'
WHERE id = 3712028;其中,列是:
[id] [int] IDENTITY(1,1) NOT NULL,
[dateProcessed] [datetime] NULL,
[subject2] [nvarchar](150) NULL,有没有办法对数据库进行碎片整理??:)
我不认为6秒是按索引字段更新1行搜索的正常时间...
任何帮助都是非常感谢的!谢谢,
更新1:对不起,伙计们!我的表中没有索引。我认为身份也有些类似于索引。因此,我可能应该将索引添加到id字段,或者将其设置为主键
发布于 2012-02-28 00:36:08
声明一个列identity并不会自动使其建立索引;声明它为主键会:
[id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY您可以将约束添加到现有数据库,如下所示:
ALTER TABLE MyTable ADD PRIMARY KEY (id)发布于 2012-02-28 00:36:26
如果您在subject2或dateProcessed列上定义了索引,则由于更新了索引,因此更新速度可能会很慢。
如果您这样做了,如果您不经常查询这些字段,那么删除它们可能是值得的。
如果可行,将ID字段作为主键也是值得的,这将为其提供索引并加快查找速度。
https://stackoverflow.com/questions/9468550
复制相似问题