SQL更新如何使用主键提高性能

SQL更新如何使用主键提高性能,sql,Sql,我正在尝试根据主键更新表的一列 我的问题基本上是 update table set COL = 'this' where PrimKey = 1234; 但是,当我的数据库中有超过200万行时,这个查询需要将近一分钟的时间来运行,因为我只有一个主键 为什么这需要这么长时间,或者我如何才能提高我的表现 表的描述 PrimKey varchar(150) PrimaryKey COL varchar(150) 我随机猜测(没有表定义)主键数据类型和常量值不匹配,需要进行转换:这意味

我正在尝试根据主键更新表的一列

我的问题基本上是

 update table 
 set COL = 'this' 
 where PrimKey = 1234;
但是,当我的数据库中有超过200万行时,这个查询需要将近一分钟的时间来运行,因为我只有一个主键

为什么这需要这么长时间,或者我如何才能提高我的表现

表的描述

 PrimKey varchar(150) PrimaryKey
 COL varchar(150)
我随机猜测(没有表定义)主键数据类型和常量值不匹配,需要进行转换:这意味着不会使用索引

因此它扫描表中的每一行。我的随机猜测(没有表定义)是主键数据类型和常量值不匹配,需要进行转换:这意味着不会使用索引


所以它会扫描表中的每一行

请添加表定义好吗?以及什么RDBMS您正在更新的“列”的数据类型是什么?除了gbn的请求,您可以发布您正在运行的完整查询吗。哦,还有查询计划(请使用XML)您可以添加表定义吗?以及什么RDBMS您正在更新的“列”的数据类型是什么?除了gbn的请求外,您是否可以发布您正在运行的完整查询。哦,还有查询计划(请使用XML),您的猜测似乎是正确的。PK似乎是一个varchar(非常大),而对应的文字是一个int。看来您的猜测是正确的。PK似乎是一个varchar(非常大),而与之比较的文本是一个int。