首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化t-sql查询

优化t-sql查询
EN

Stack Overflow用户
提问于 2010-05-10 21:25:16
回答 2查看 149关注 0票数 0

我是t-sql的新手,我想知道为什么这个查询执行这么长时间?有没有办法优化这一点?

代码语言:javascript
复制
update aggregateflags set value=@value where objecttype=@objecttype and objectcode=@objectcode and storagetype=@storagetype and value != 2 and type=@type 
IF @@ROWCOUNT=0 
Select * from aggregateflags where objecttype=@objecttype and objectcode=@objectcode and storagetype=@storagetype and value = 2 and type=@type  
IF @@ROWCOUNT=0  
insert into aggregateflags (objectcode,objecttype,value,type,storagetype) 
select @objectcode,@objecttype,@value,@type,@storagetype

@value int
@storagetype int
@type int
@objectcode nvarchar(100)
@objecttype int

没有外键。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-10 21:36:47

更容易了解aggregateflags表的结构--列类型和索引

我会尝试:

如果表aggregateflags上存在与索引匹配的,则返回

  1. Check。如果找不到其他匹配项或创建一个--查询的匹配索引是最重要的(检查可以帮助您)。
  2. UPDATE添加 (如果可以) WITH (ROWLOCK),为SELECT语句添加WITH (NOLOCK) --这有助于避免锁定、编辑或读取数据。将<代码>D20更改为SELECT TOP 1 1 FROM aggregateflags WITH (NOLOCK)... --您不需要数据--您只需检查是否存在行exists.
票数 1
EN

Stack Overflow用户

发布于 2010-05-10 21:36:33

确保在列上定义了索引。如果不能解决问题,可以使用SQL studio中的“显示执行计划”按钮,检查出了什么问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2802922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档