`
greenmoon
  • 浏览: 46930 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sql server2005查询优化建议

 
阅读更多

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!-- [if gte mso 10]> <mce:style><!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --> <!-- [endif]-->

查询优化的目的是提高数据检索速度,提高数据检索意味着减少磁盘 IO 读取或者逻辑内存读取次数,这需要从两个方面入手:数据要尽可能的缓存到内存、尽可能的使用索引。内存的问题可以参见 <!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!-- [if gte mso 10]> <mce:style><!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --> <!-- [endif]-->: http://msdn.microsoft.com/zh-cn/library/ms188284.aspx ,本文主要是体现如何使用索引来提高速度。具体方法:

<!-- [if !supportLists]-->1) <!-- [endif]-->养成良好的编程习惯,比如SARG 优化(这个好像来自于sybase

<!-- [if !supportLists]-->2) <!-- [endif]-->使用查询计划,看某一个查询是否是使用了索引,是否是使用了临时表,尽量使用索引,避免临时表

<!-- [if !supportLists]-->3) <!-- [endif]-->使用查询优化顾问,它可以帮助你判断查询是否优化,并提示你建立索引

<!-- [if !supportLists]-->4) <!-- [endif]-->使用SET STATISTICS IO 命令,查看磁盘读取次数,尽量物理磁盘和逻辑读取次数少

<!-- [if !supportLists]-->5) <!-- [endif]-->建立主键,主键是聚簇索引,数据行基于聚集索引键按顺序存储

<!-- [if !supportLists]-->6) <!-- [endif]-->使用组合索引,避免OR 操作符使用临时表,select * from table where a=1 or b=2, 可以考虑创建a and b 的组合索引

<!-- [if !supportLists]-->7) <!-- [endif]-->大数据量表使用已分区表,具体参见:

http://msdn.microsoft.com/zh-cn/library/ms345146 SQL.90 .aspx

<!-- [if !supportLists]-->8) <!-- [endif]-->使用存储过程代替复杂sql 语句

<!-- [if !supportLists]-->9) <!-- [endif]-->存储过程中使用表变量而不使用临时表,通常,表变量可提供更有效的查询 处理: table 变量的行为类似于局部变量,有明确定义的作用域;在存储过程中使用 table 变量与使用临时表相比,减少了存储过程的重新编译量;涉及 table 变量的事务只在 table 变量更新期间存在。因此减少了 table 变量对锁定和记录资源的需求。但不能显式创建 table 变量的索引,也不保留 table 变量的任何统计信息。在某些情况下,可以通过改用支持索引和统计信息的临时表来改善性能。具体参见:

http://msdn.microsoft.com/zh-cn/library/ms175010.aspx

<!-- [if !supportLists]-->10) <!-- [endif]-->当必须对临时表显式地创建索引时,或多个存储过程或函数必须使用表值时,临时表很有用。使用大容量日志模式可以提高临时表大量插入数据的效率。

分享到:
评论

相关推荐

    Microsoft SQL Server 2005技术内幕 查询、调整和优化

    中文 高清 全 Microsoft SQL Server 2005技术内幕 系列之一 ...《Microsoft SQL Server 2005技术内幕:查询、调整和优化》 例子和脚本 未被涵盖的主题 免责条款 如何获得支持 关联网站 微软学习站点

    Microsoft_SQL_Server_2005技术内幕:T-SQL查询.pdf

    本书及其续篇——《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》介绍了SQL Server 2005中高级T-SQL查询、查询优化及编程相关的知识。这两本书侧重于解决实践中的常见问题,并讨论了解决这些问题的方法。它们...

    SQLServer2008查询性能优化 2/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    sqlserver经典 2005技术内幕 中文pdf版 4本全

    sqlserver2005技术内幕中文,pdf版,文字清晰,4本全。 建议观看顺序:1、T-SQL查询;2、T-SQL程序设计;3、存储引擎;4、查询、调整和优化

    SQLServer2008查询性能优化 1/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    SQLServer安全及性能优化

    如果不熟悉sqlserver可以使用数据库引擎优化顾问来对数据库提出优化建议,然后通过系统管理的修改达到目的。 数据库引擎优化顾问  数据库引擎优化顾问介绍  分析一个或多个数据库的工作负荷和物理实现,工作负荷...

    sql语句优化建议

    sql语句优化建议,sql语句优化建议,sql语句优化建议

    如何做SQL SERVER性能优化的建议

    如何做SQL SERVER性能优化的建议

    sqlserver2005-SQL查询-SQL程序设计-存储设计-查询调整优化

    sqlserver2005技术内幕中文,pdf版,文字清晰,4本全。 建议观看顺序:1、T-SQL查询;2、T-SQL程序设计;3、存储引擎;4、查询、调整和优化

    SQLServer 高级应用特性学习大纲(完整版)

    SQL Server 2005 核心技术 SQL Server 2005 服务简介 SSAS(Analysis Service)与 商业智能(BI) 数据挖掘算法简介(Data Mining) 联机数据分析技术(OLAP) SSIS (Integration Service)与商业智能(BI) SSRS...

    SQL SERVER 的SQL语句优化方式小结

    2、查询SQL语句时打开“显示估计的执行计划”,分析每个步骤的情况 3、初级做法,在CPU占用率高的时候,打开SQL Server Profiler运行,将跑下来的数据存到文件中,然后打开数据库引擎优化顾问调用那个文件进行分析,...

    SQL Server 海量数据查询代码优化以及建议

    SQL Server 海量数据查询代码优化以及建议: 海量数据是大家容易碰到的一个难题,本文档给出了中肯的建议

    高级SQL Server监控、性能图、分析与优化、版本控制源码

    这是一个相当高级的SQL Server监控工具,全面监控SQL Server的活动与性能,分析性能瓶颈,给出优化建议。 监控SQL Server的活动:进程、任务,详细查看当前执行的语句与实际变量值,终止进程 IO/CPU/网络等性能...

    SQL Server数据库性能优化

    设计1个应用系统似乎并不难,但是要想使系统达到最优化的性能并不是一件容易的事。在开发工具、数据库设计、应用...本文以SQL Server为例,从后台数据库的角度讨论应用程序性能优化技巧,并且给出了一些有益的建议。

    sql sever 2008

     在 DTA(数据库调节顾问)引用经过索引的“空间数据类型”列时,查询结果经过了优化。  用户在并行执行计划中使用“序列函数”(如 Row_Numbers())可获得优异的体验。  Microsoft SQL Server 2008 Service Pack 2 ...

    数据库-SqlServer详解

    内容涵盖了SQLServer的简介、安装和配置、数据类型、表和索引、查询语言、存储过程和触发器、事务管理、备份和恢复、高可用性、性能优化、监控和维护、社区和支持等高级知识点。 **适用人群:** 本教程适合所有准备...

    SQL SERVER的优化建议与方法

    所以我们会写如下的SQL语句: select top 100 * from 表 order by Score desc 如果表非常大的话,那么这样的操作是非常消耗资源的,因为SQL SERVER要对整个表进行排序,然后取前N条记录.这样的造作是在Temdb

    SQL Server 数据库优化

    本文以SQL Server为例,从后台数据库的角度讨论应用程序性能优化技巧,并且给出了一些有益的建议。1 数据库设计 要在良好的SQL Server方案中实现最优的性能,最关键的是要有1个很好的数据库设计方案。在实际工作中...

    优化SQL性能.pptx

    有关sql优化的建议,使用的是Oracle数据库,主要是sql编写的一些经验和建议,帮助写好sql语句,提高sql的性能或可读性。

Global site tag (gtag.js) - Google Analytics