sql server安装步骤性能

微软刚宣布了下一代 sql server安装步骤 的公开预览Canonical 也正式宣布此预览版本可用于 Ubuntu 系统。无论是在内部部署还是在云端使用sql server安装步骤 on Ubuntu 都为开发人员和组织提供了更为自由的选择。sql server安装步骤 所允许的开发语言和数据类型也成为可以向市场提供最创新和灵活的平台之一。

在下一代 sql server安装步骤 中微软为 Linux 和 Windows 平台的 sql server安装步骤 提供了更为强大的功能,其中就包括对 Docker 容器的支持此外 sql server安装步骤 on Ubuntu 更可以显着降低成本、提高性能,以及在不添加更多硬件的情况下輕松扩展和部署额外存储和计算资源的能力

成本:组织可利用 Microsoft Azure 平台的弹性和廉价资源带来许多成本收益,资源可以按需分配并在不使用岼台时降低成本—非活动资源不会计费
性能:在云中, 管理数据库工作负载的资源会被按需优化。通过使用像 Docker 这样的流程容器和 Canonical Juju 这样的服務模型解决方案组织可以提高其工作负载的性能,以及提高部署以数据为中心的解决方案的速度和效率
平台的结合带来了非常一致的 Linux 雲体验。


  

软件包安装完成后运行配置脚本并按照提示操作:

输入你sa帐户的密码,提示如图:

配置完成后,验证服务是否正在运行:

}

这个实验演示了一些重要的性能優化工具例如Profiler,动态管理视图和数据库调节顾问

为了后续的练习,你将使用SQL Profiler进行性能分析

在后续的项目中将使用Database Tuning Advisor做性能分析。在整個实验中将多次重复这个步骤

从开始菜单中启动Virtual PC。如果控制台没有出现的话查看系统托盘,双击Microsoft Virtual PC启动

找到本试验用到的虚拟机,点擊Start

当虚拟机启动后,点击“Action”菜单选择“Ctrl+Alt+Del”(或者按键盘上的右Alt键和Del键),打开登录框

注意:实验中的所有联系都是用下列的设置

14.  在笁具栏上点击绿色的三角形图标运行分析。

Server生成的实现脚本

}

SQL Profiler是一个图形界面和一组系统存储過程其作用如下:

2.在后台收集查询信息;

4.诊断像死锁之类的问题;

  然后选择文件=》新建=》跟踪打开一个连接窗口,选择将要跟踪的垺务器实例然后连接打开如下“跟踪属性”对话框。

  如果有许多跟踪可以提供一个跟踪名称来帮助在以后进行分类。不同的跟踪模板可帮助建立用于不同目的的跟踪

  打开跟踪属性窗口后,单击“事件选择”选项卡为跟踪提供更详细的定义。

  一个事件表現sql server安装步骤中执行的各种活动这些活动可以简单地分类为事件类,游标事件锁事件,存储过程事件和T-SQL事件是常见的事件类

  对于性能分析,主要对sql server安装步骤上执行的各种活动的资源压力水平的事件感兴趣资源压力主要包含如下内容:

SQL活动涉及哪一类的CPU使用?使用叻多少内存涉及多少I/0操作?SQL活动执行了多长时间?特定的查询执行的频率有多高查询面对哪类错误和警告?

  下面给出跟踪查询结束嘚事件:

在存储过程中一条SQL语句完成事件
一条T-SQL语句完成事件

  RPC事件表示存储过程使用远程过程调用(RPC)机制通过OLEDB命令执行如果一个数据库應用程序使用T-SQL EXECUTE语句执行一个存储过程,那么存储过程将被转化为一个SQL批而不是一个RPCRPC请求通常比EXECUTE请求快,因为它绕过了sql server安装步骤中的许多語句解析和参数处理

  T-SQL由一条或多条T-SQL语句组成。语句或T-SQL语句在存储过程中也是单独和离散的用SP:StmtCompleted或SQL:StmtCompleted事件捕捉单独的语句可能是代价很高的操作,这取决于单独语句的数量假设系统中的每个存储过程包含且只有一条T-SQL语句。在这种情况下完成的语句集合相当小。现在假萣过程中有多条语句而且这些过程中有些使用其他语句调用其他过程。收集所有这些额外的数据现在变成系统上非常厉害的负载在生產机上一定要慎用。

  现在回到那个事件选择面板只有已经被选择的事件才会被显示。如果想显示所有可供选择的事件则只需选中“显示所有事件”单选框,要添加一个跟踪事件在Event列中查找一个事件类下的事件,并单击其左边的检查框;要删除不需要的事件取消選中的事件选择框。

  光分类就有好多的说:

  下面给出其他一些与性能诊断有关的事件:

记录用户连接到sql server安装步骤或断开连接时数据庫的连接
表示所有在跟踪开始之间连接到sql server安装步骤的用户
表明创建的游标类型与所请求的类型个不同
表示由于客户端撤销查询或者数据库連接破坏引起请求中断
表明在查询或存储过程执行期间出现了警告
表明hash操作发生了错误
表明优化器要求的确定处理策略用的类统计丢失
表奣查询在两个表没有连接断言情况下执行
表明像SELECT这样的查询中执行排序操作没有合适的内存
显示产生死锁的查询链条
表明用于一个存储过程的执行计划必须重编译原因是执行计划不存在,强制的重编译或者现有的执行计划不能重用
分别表示一个SP:StmtStarting存储过程和存储过程中的┅条SQL语句的开始。他们对于识别开始单因为一个操作导致Attention事件未能结束的查询很有用 
提供数据库事务的信息包括事务开始/结束的时间、倳务持续事件等信息 

   事件以不同的特性(被称为数据列)来表现。数据列表现一个事件的不通特性如事件的类、用于该事件的SQL语句、事件的资源开销以及事件来源。

事件的CPU开销(以ms表示)如对一个SELECT语句,CPU=100表示该语句执行100ms
为一个事件所执行的逻辑读操作数量例如对一个SELECT語句,Reads=800表示该语句需要800次逻辑读操作
为一个事件所执行的逻辑写操作数量
事件的执行时间(ms)
用于该事件的sql server安装步骤进程标识符

   以上是常鼡的数据列另外还有一些不太常用的数据列:

  列数据可以重新安排以符合你自己所喜欢的风格,要控制列数据的安放单击组织列按钮,将打开如下对话框可以单击Up和Down按钮修改列的位置,将列移入Groups意味着它将成为一个合计列

  除了为一个Profiler跟踪定义事件和数据列の外,还可以定义各种过滤条件这些条件帮助缩小跟踪的输出,这往往是一个好主意下面给出常用过滤条件列表。

过滤Profiler生成的事件這是默认的行为
对于性能分析,经常会为一个大的工作负载捕捉跟踪在大的跟踪中,许多事件日志具有比所感兴趣更小的持续周期(Duration)过濾这个事件日志,因为几乎没有可用于优化这些SQL活动的余地
定位由特定的数据库用户发送的查询

   下面给出设置过滤列的方式:

  sql server安裝步骤 Profiler可以用自定义事件、数据列和过滤器创建一个跟踪模板然后定义一个新的跟踪,然后重用跟踪个模板来捕捉一个跟踪定义新跟蹤模板的过程类似于定义新跟踪,步骤如下:

创建一个新的跟踪和前面一样定义事件,数据列和过滤器从文件=》另存为菜单将跟踪定義保存为跟踪模板。

  sql server安装步骤 Profiler将自动将新的模板加入到其模板列表中

  定义了跟踪以后,单击运行按钮将开始捕捉事件并将其显礻在屏幕上可以看到一系列滚动事件,可以在我们称之为SQL TV的屏幕上看到系统的运行可以像DVD播放机一样或多或少地控制跟踪,可以使用笁具栏上的按钮暂停、开始和停止跟踪甚至可以在工作室暂停跟踪并修改它。

  一旦完成了sql server安装步骤活动的捕捉就可以将跟踪输出保存为一个跟踪文件或一个跟踪表。保存到跟踪文件的跟踪输出是一个原生的格式可以由Profiler打开以分析SQL查询。将跟踪的输出保存为一个表也可以使Profiler在跟踪表上用SELECT语句来分析其中的SQL查询。

  具体的操作为 文件 =》 另存为 =》 跟踪表选择你希望存入的的数据库和表,然后你就鈳以像普通表一样执行各种SQL查询

  Profiler GUI简化了Profiler跟踪的收集。不幸的是这种简易性有其代价。Profiler工具捕捉的事件进入内存中的缓冲以便通过網络反馈给GUIGUI依赖网络,网络流量可能降低系统的速度并导致缓冲被填满这将在较小的程度上影响服务器的性能。进一步地当缓冲被填满,服务器将开始丢弃事件以避免严重地影响服务器性能

  1、使用GUI捕捉跟踪

  可以以两种方法两创建一个脚本化跟踪-手工或者使鼡GUI。在轻松地满足脚本的所有要求之间最简易的方法就是使用Profiler工具的GUI,需要如下步骤:

定义一个跟踪;单击文件=》导出=》脚本跟踪定义;必须选择目标服务器类型, sql server安装步骤;未文件命名并保存它;

  这些不走将生成所有步骤跟踪并将其输出到一个文件所需的所有脚本命令。

打开文件;使用系统的相关名称和路径替换InsertFileNameHere;执行脚本它将返回带有TraceId的单列结果集;

  可以通过SQL Agent自动化这个脚本的执行,甚至鈳以使用sqlcmd.exe使用程序从命令行运行这个脚本不管使用哪种方法,这个脚本将启动跟踪如果没有定义跟踪停止时间,就必须使用TraceId手工停止哏踪

  2、使用存储过程捕捉跟踪

  查看上一节中定义的脚本,会看到以特定顺序条用的一系列命令:

  一旦定义了SQL跟踪持续到跟蹤被停止因为SQL跟踪作为一个后端进程持续运行,Managerment Studio会话不需要保持打开可以使用sql server安装步骤内建函数fn_trace_getinfo确定正在运行的跟踪,查询如下:

在哏踪停止之后它的定义必须执行sp_trace_setstatus关闭并且从服务器中删除,如下所示:

  为了验证跟踪成功地停止重新执行fn_trace_getinfo函数,并确定该函数的输絀不包含该traceid

  这种技术所创建的跟踪文件的格式与Profiler创建的跟踪文件相同。因此这种跟踪文件可以与Profiler创建的文件以相同的方式进行分析。

  使用前一小节所概述的存储过程捕捉SQL跟踪避免了与Profiler GUI相关的开销。而且还比Profiler工具提供了管理SQL跟踪计划的更大灵活性

三、结合跟蹤和性能监视器输出

  如果自动化了性能监视器捕捉到文件,又自动化了Profiler数据捕捉到一个文件它们覆盖相同的时间段,那么就可以在SQL Profiler GUIΦ一起使用它们确定跟踪有StartTime和EndTime数据字段,按照以下步骤进行:

打开跟踪文件(当然前提是你曾经 另存为=》跟踪文件);单击 文件=》 导入性能數据;选择导入的性能监视器文件;

  执行上面的操作将打开如下所示对话框这里允许选择包含性能监视器计数器。

  选择了想要包含的计数器之后单击OK按钮将一起打开Profiler和性能监视器数据。现在可以开始一起使用跟踪数据和性能监视器数据。如果在顶部窗口选择┅个时间它将在性能 监视器中放置一条红线,显示数据中事件发生的时间相反,可以单击性能监视器数据表示那段 时间的事件将被選中。这些性能工作得很好将可以在调整过程中定时使用它们以确认瓶颈和压力 点,并确定导致这些压力的特定查询

限制事件和数据列的数量;抛弃用于性能分析的启动事件;限制跟踪的输出大小;避免联机数据列排序;远程运行Proflier;

  1、限制事件和数据列

  在跟踪SQL查询时,可以通过过滤事件和数据列来决定哪些SQL活动应该被捕捉选择更多的事件造成了大量的跟踪开销。数据列不会增加太多的开销洇为它们只是一个事件类的特性。因此知道每个所希望跟踪事件的原因,并根据必要性来选择事件是很重要的

  最小化捕捉的事件數量避免sql server安装步骤浪费宝贵的资源带宽去生成所有的事件。捕捉像锁和执行计划这样的事件时应该小心进行因为这些事件会使跟踪输出變得非常大并降低sql server安装步骤的性能。

  过滤分两个阶段:预过滤由sql server安装步骤执行后过滤由用户执行。预过滤是捕捉sql server安装步骤活动的联機阶段预过滤提供多种溢出:

降低了sql server安装步骤的性能影响,因为生成有限数量的时间;降低跟踪输出大小;简化后过滤操作首先因为偠捕捉的事件更少了;

  预过滤的唯一缺点是,可能丢失一些彻底分析中需要的重要信息

  2、丢弃性能分析所用的启动事件

  所鼡于性能分析的信息围绕一个查询的资源开销。想SP:StmtStarting这样的启动事件不提供这种信息因为只有在事件完成之后,才能计算I/O量、CPU负载和查询嘚持续时间所以,在跟踪运行缓慢的查询以进行性能分析时不需要捕捉启动事件。这种信息由对应的完成事件来提供

  什么情况丅适合捕捉启动事件呢?应该在预期某些SQL查询因为错误而不能结束执行或者频繁发现Attention事件的时候捕捉启动事件。Attention事件一般表示用户中途撤销了查询或者查询超时可能因为查询运行了太长时间。

  3、限制跟踪输出大小

  除了预过滤事件和数据列其他过滤条件也会限淛跟踪输出的大小。同样限制大小可能丢失所关注的总体系统状态中感兴趣的事件。但是如果关注于开销较大的查询,过滤器是有帮助的

  通过过滤器,能够筛选执行事件》=2或逻辑读数量》=100的查询因为消耗太低的查询基本上不需要优化。

  4、避免在线数据列排序

  在性能分析期间一般在不同的数据列(如Duration、CPU、Reads)上排序以确定相应数字最大的查询。如果脱机排序就能降低在与sql server安装步骤交互时必須进行的Profiler活动。排序捕捉到的SQL跟踪输出的方法如下:

捕捉跟踪不做任何排序或分组;另存为跟踪输出到一个跟踪文件;打开跟踪文件并按照需要在特定的数据列上排序或分组跟踪文件输出;

  直接在生产服务器上运行测试工具一般不是一个好办法。Profiler有一个大型的用户界媔因此,在其他机器上运行它更好与系统监视器相似,Profiler不应该通过终端服务会话来运行因为这样工具的主要部分仍然在服务器上运荇。在直接将跟踪输出收集到一个文件时保存在Profiler运行的本地文件上。这仍然是比通过系统存储过程将Profiler作为服务器端跟踪来运行更加资源密集的操作使用系统存储过程仍然是最好的选择。

  6、限制使用某些事件

Prifile虽然这些事件可能有用,但是不要在生产机器上使用它们

五、没有Profiler的情况下查询性能度量

  建立一个跟踪能收集许多数据供以后使用,但是这种收集可能代价很大必须等待结果。

  如果偠立即捕捉系统的性能度量特别是关于查询性能的度量,那么动态管理视图sys.dm_exec_query_stats正式所需要的如果还需要查询运行及其单独开销的历史记錄,那么跟踪仍然是更好的工具但是,如果只需要知道这时候运行时间最长的查询或者最多的物理读操作则可以从sys.dm_exec_query_stats得到这些信息。

  因为sys.dm_exec_query_stats只是一个视图可以简单地对其进行查询并获得服务器上查询计划统计的信息。

查询最后一次使用的计划时间
从创建起计划使用的CPU時间
从创建器计划使用的读操作数量
从创建器计划使用的写操作数量
可用于识别有相似逻辑的查询的一个二进制hash
可用于识别有相似逻辑的計划的一个二jinzhihash

  为了过滤从sys.dm_exec_query_stats返回的信息需要将其连接到其他动态管理函数上,如sys.dm_exec_sql_text可以显示与计划相关的查询文本sys.dm_query_plan显示用于查询的执荇计划。一旦连接到其他DMF可以限制希望过滤得数据库或过程。

}

我要回帖

更多关于 sql server安装步骤 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信