UPDATE操作需要6秒

时间:2012-02-27 16:32:10

标签: sql-server-2008 sql-update

我从客户端应用程序向数据库(SQL Server 2008 R2)发出UPDATE请求,需要6秒才能完成。

目前我在该表中有大约5百万行。

以下是查询:

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:我很抱歉!我表中没有索引。我认为IDENTITY也像INDEX一样。所以我可能应该将INDEX添加到id字段或使其成为PRIMARY KEY

2 个答案:

答案 0 :(得分:3)

声明列identity不会自动将其编入索引;声明主键

[id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY

您可以将约束添加到现有数据库,如下所示:

ALTER TABLE MyTable ADD PRIMARY KEY (id)

答案 1 :(得分:1)

如果在subject2或dateProcessed列上定义了索引,则由于索引更新,您的更新可能会很慢。

如果您这样做,如果您不经常查询这些字段,则可能值得删除它们。

如果可行的话,将ID字段作为主键也是值得的,这将为其提供索引并加快查找速度。