当前位置:首页 > 系统运维 > 正文内容

SQL Server查询优化的实际操作建议描述

a8116255316年前 (2010-07-06)系统运维6

此文章主要向大家讲述的是SQL Server查询优化的实际操作建议,在实际操作中有些查询本身就对资源的消耗很大。这与基本的数据库与索引的相关问题有关。这些查询的效率并不低,因为SQL Server查询优化器会以最有效的可能方式实现这些查询。

然而,它们确实消耗大量资源,而且 Transact-SQL 面向 *** 的性质使这些查询看起来效率很低。SQL Server查询优化器的智能水平无法消除这些构造的固有资源成本。与不复杂的查询相比,这些查询的固有成本十分昂贵。虽然 Microsoft® SQL Server™ 2000 使用更佳的访问计划,但受到基础构造可能性的限制。例如,下列类型的查询可能占用大量资源:

返回大结果集的查询

高度不唯一的 WHERE 子句

不过有一些针对优化查询和提高查询性能的建议,其中包括:

添加更多的内存(尤其是假如服务器运行许多复杂查询而且其中几个查询执行很慢)。

在有多个处理器的计算机上运行 SQL Server。多个处理器使 SQL Server 得以利用并行查询。

考虑重新编写查询

假如查询使用游标,则确定假如使用效率更高的游标类型(如快速只进游标)或单纯查询能否更有效地编写游标查询。单纯查询的性能一般优于游标操作。一组游标语句通常是一个外循环操作,在此操作中,一旦使用内部语句便开始处理外循环内的每行,因此可考虑使用 GROUP BY 或 CASE 语句或改为使用子查询。

假如应用程序使用循环,可考虑在查询内放入循环。应用程序常包含带参数化查询的循环,该循环执行许多次并要求运行应用程序的计算机与 SQL Server 之间有 *** 往返。可改为使用临时表创建一个更复杂的查询。只需提供一个 *** 往返,SQL Server查询优化器即会更好地优化这个查询。

不要对同一查询内的单个表使用多个别名以模拟索引交叉。模拟索引交叉已没有必要,因为 SQL Server 会自动考虑索引交叉并且可以在同一查询内的相同表上使用多个索引。例如,给出下列示例查询:

SELECT * FROM lineitem WHERE partkey BETWEEN 17000  AND 17100 AND shipdate BETWEEN '1/1/1994' AND '1/31/1994"  

SQL Server 可以在 partkey 和 shipdate 列上都使用索引,然后在两个子集之间执行哈希匹配以获得索引交叉。

只在必要时才使用查询提示。若查询使用在 SQL Server 早期版本上执行的提示,则应在不指定提示的情况下对该查询进行测试。提示会防碍SQL Server查询优化器选择更好的执行计划。

利用 query governor 配置选项和设置。可以使用 query governor 配置选项阻止执行长时间运行的查询,从而防止消耗系统资源。默认情况下,query governor 配置选项允许执行所有查询,而不考虑查询所需的时间。

然而,可以将查询调控器设置到更大秒数,以允许执行所有连接的所有查询或只允许执行特定连接的查询。查询调控器基于估计的查询成本而不是实际的已用时间,因此没有任何运行时开销。它还在长时间运行的查询开始前便将其停止,而不是先运行这些查询直到达到某些预定义的限制为止。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/21511.html

分享给朋友:

“SQL Server查询优化的实际操作建议描述” 的相关文章

如何删除自带的不常用应用为windows 7减负

如何删除自带的不常用应用为windows 7减负

对于Windows 7系统来说,其默认安装的许多工具是我们很少使用或从来不用的,比如系统自带的扫雷、纸牌游戏等。删除此类长期不用的系统组件,不但可以让系统更清爽,更重要的是还可以提高系统的运行速度,特别是对于硬件配置相对较低的上网本来说,尤其如此。接下来,笔者就给大家介绍一下如何删除Windows...

如何设置Win 7通知栏重新显示电源按钮

如何设置Win 7通知栏重新显示电源按钮

有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...

上帝不止一个 更多Windows7 快捷模式.

上帝不止一个 更多Windows7 快捷模式.

国外媒体CNET NEWS就这个“上帝模式”和微软Windows部门主管Steven Sinofsky进行邮件交流后得知,这其实只是众多快捷方式中的一个,Sinofsky在邮件里给出了十多个这类快捷方式的关键字符串。 它们的建立方法和之前的“上帝模式”一样,在任意位置新建的一个文件夹,然后改名即可...

windows 7查看电脑近期使用情况确定有没有被他人使用

windows 7查看电脑近期使用情况确定有没有被他人使用

我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...

微软今天正式停止对windows 7的主流支持

微软今天正式停止对windows 7的主流支持

北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...

windows 7系统开机后出现黑屏提示Windows无法启动

windows 7系统开机后出现黑屏提示Windows无法启动

一些用户的Windows 7系统开机后出现黑屏,代码为 Windows无法启动: WindowsSystem32ConfigSystem”。这个问题该如何修复呢?现在小编就给大家分析一下吧。 其实这个代码的意思是引导文件丢失了,引导文件(NTLDR)一般存放于C盘根目录下,是一个具有隐藏和只读属性...