C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  SQLServer:性能优化

SQL Server性能优化
摘要:一、查询设计的建议 在一些情况下,查询结构使优化器不能选择最好的处理策略。知道何时发生这种情况以及如何避免它是很重要的。这里主要介绍如下几点:在小的结果集上操作;有效使用索引;避免优化器提示;使用域和参照完整性;避免资源密集型的查询;减少网络传输数量;减少事务开销;二、在小结果集上操作 为了改进... 阅读全文
posted @ 2014-04-13 13:31 逆心 阅读(3818) 评论(0) 推荐(0) 编辑

摘要:SQL Server提供了一个被称为数据库引擎调整顾问的工具。这个工具帮助为一个给定的工作负载确认一组最优的索引,而不需要对数据库结构或SQL Server内部结构的深入了解。它还能为一小部分有问题的查询建议调整选项。除了好处该工具也有坏处。应该正确地使用。一、数据库引擎调整顾问机制 可以直接选择SQL Server 2008=》性能工具=》数据库引擎调整顾问来使用它。 从Management Studio运行一个查询(选中所需查询,选择查询=》在数据库引擎调整顾问中分析查询),或者从Management Studio=》选择=》数据库引擎调整顾问中运行它。一旦该工具被打开并且连接到一... 阅读全文
posted @ 2013-11-04 14:36 逆心 阅读(1236) 评论(0) 推荐(0) 编辑

摘要:一、分析查询执行计划 执行计划的阅读顺序为,从右到左,从上到下。 由执行计划表示的查询执行的一些特征如下:如果查询由多个查询的批组成,每个查询的执行计划按照执行的顺序显示。批中的每个执行计划将有一个相对的估算开销,整个批的总开销为100%。执行计划中的每个图标代表一个操作符。它们每个都有一个相对的估算开销,执行计划中的所有节点的总开销是100%。执行计划中的一个起始操作符通常表示一个数据库对象(表或索引)的数据检索机制。数据检索通常是一个表操作或一个索引操作。索引上的数据检索将是索引扫描或索引超找。索引上的数据检索的命名管理师[表名].[索引名]。数据从右到左两个操作符之间流动,由一个连接.. 阅读全文
posted @ 2013-11-04 14:24 逆心 阅读(1699) 评论(0) 推荐(0) 编辑

摘要:SQL Server有3种连接类型:Hash连接;合并连接;嵌套循环连接; 在许多影响小的行集的简单查询中,嵌套循环连接远远优于hash和合并连接。用于查询的连接类型由优化器动态决定。 下面我来先来建立两张简单的表。Province(十条数据)=》PersonTenThousand(1万数据),省份和人的关系,一对多,外键相连;一、Hash连接 为了理解哈希连接,在这个连接中PersonTenThousand在连接列PId上没有任何索引,先来看看如下查询: 可以看到,优化器在两个表之间使用了Hash连接。这种情况经常出现于下表(大表)较大,并且下表(大表)的连接列上没有索引。 ... 阅读全文
posted @ 2013-11-04 10:35 逆心 阅读(2723) 评论(0) 推荐(0) 编辑

摘要:尽管查询的执行计划提供了详细的处理策略的单独步骤涉及的估计相对开销,但是它没有提供查询实际的CPU使用、磁盘读写或持续时间等开销。 还有其他比运行Profiler更直接手机性能数据的方法一、客户统计 客户统计将计算机作为服务器的一个客户端,从这个角度出发去捕捉执行信息。这意味着任何记录事件包括通过网络传送数据的时间,而不仅仅是SQL Server本身所花费的时间。 要使用客户统计,只需要单击=》查询=》包含客户统计。 现在,每当运行一个查询,就会收集一个限定的数据集,包括执行事件,影响的行数、到服务器的往返次数等。进一步,查询的每次执行在客户统计选项卡上被分别显示,有一列将多次的执... 阅读全文
posted @ 2013-11-03 22:59 逆心 阅读(3666) 评论(0) 推荐(0) 编辑

摘要:当SQL Server的性能变差时,最可能发生的是以下两件事:首先,某些查询产生了系统资源上很大的压力。这些查询影响整个系统的性能,因为服务器无法足够快速地服务其他SQL查询。另外,开销较大的查询阻塞了其他请求相同数据库资源的查询,进一步降低了这些查询的性能。优化开销较大的查询不仅改进它们本身的性能,而且减少数据库阻塞和SQL Server资源压力从而提高了其他查询的性能。识别开销较大的查询 SQL Server的目标是在最短时间内将结果集返回给用户。为此,SQL Server查询优化器生成一个成本效益高的查询执行计划。查询优化器计算许多因素的权重,包括执行查询所需要的CPU、内存以及磁... 阅读全文
posted @ 2013-11-01 15:36 逆心 阅读(5974) 评论(1) 推荐(4) 编辑

摘要:一、SQL Profiler工具简介SQL Profiler是一个图形界面和一组系统存储过程,其作用如下:图形化监视SQL Server查询;在后台收集查询信息;分析性能;诊断像死锁之类的问题;调试T-SQL语句;模拟重放SQL Server活动;也可以使用SQL Profiler捕捉在SQL Server实例上执行的活动。这样的活动被称为Profiler跟踪。 1、Profiler跟踪 从开始=》所有程序=》Microsoft SQL Server 2008=》性能工具打开Profiler工具,也可以打开SQL Server Management Studio=》工具=》SQL Serv.. 阅读全文
posted @ 2013-10-31 09:46 逆心 阅读(139493) 评论(10) 推荐(30) 编辑

摘要:要理解执行计划,怎么也得先理解,那各种各样的名词吧。鉴于自己还不是很了解。本文打算作为只写懂的,不懂的懂了才写。 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的。 名词解析: 扫描:逐行遍历数据。 先建立一张表,并给大家看看大概是什么样子的。 CREATE TABLE Person( Id int IDENTITY(1,1) NOT NULL, Name nvarchar(50) NULL, Age int NULL, Height int NULL, Area nvarchar(50) NU... 阅读全文
posted @ 2013-06-28 11:44 逆心 阅读(44868) 评论(11) 推荐(29) 编辑