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

查询优化
EN

Stack Overflow用户
提问于 2010-03-14 14:33:08
回答 3查看 579关注 0票数 2

我正在尝试学习使用SQL Server2005进行SQL查询优化。但是,我没有找到任何可以通过调整查询来提高性能的实际示例。您能列出一些示例查询-优化之前和之后吗?

它必须是查询调优-不添加索引,不创建覆盖索引,不对表进行任何更改。不应该对表和索引进行任何更改。我知道索引很重要。这只是学习的目的。

如果你能用临时表来解释,而不是引用任何示例数据库,比如adventureworks,那就太好了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-14 15:17:17

1)在SELECT、UPDATE和DELETE中尽可能多地使用JOIN。有时,人们循环遍历记录(或使用游标)来更新、删除表中的记录,但您几乎总是可以通过连接表来实现相同的功能,这将极大地提高性能。一个here示例。

2)您不需要使用临时表,除非您在临时表中获取了一些记录,并对其执行了一些中间操作并返回结果。为此,您无论如何都应该使用Table variables

3)如果你出于上述原因不想使用临时表,因为你不需要中间更新等,但你仍然想使用结果集进行进一步的连接,请尝试使用CTE (Common table expressions)。我知道它可能与性能无关,但在派生表上非常有用。

4)就像上面有人建议的那样,尝试使用IF EXISTS而不是COUNT也不错。

5)尽可能在SELECT查询中使用列名而不是*。

票数 1
EN

Stack Overflow用户

发布于 2010-03-14 15:23:07

我建议你读一本好书,比如SQL Tuning

票数 0
EN

Stack Overflow用户

发布于 2010-03-14 14:38:29

作为学习的第一步,在查询上使用explain

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

https://stackoverflow.com/questions/2441394

复制
相关文章

相似问题

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