SQL大数据优化上

    在上一篇从个人及其操作实例中总结的SQL知识进行介绍,大家议论很多,在此说明一点SQL优化真没有完全照搬的模式可以查看,由于各自的环境不同,性能瓶颈不同因此对应的效果不同。这也是为什么没有一个模块,大家按照此模块一二三执行下来数据库优化就完成了,查询效率就提高了,只能靠分析自己数据库的实际去解决,在资深惠普架构师汪洋的系列说明中可见一般。具体的知识还要看大家自己去结合说明去实践,一直觉得这样才是提高自我的最好方法.(好多东西,大家都验证过,我也不太懂,只能说自己对SQL执行的内核还不太了解,一些知识点的错误,希望大家多指正,多验证)

考虑到处理数据一定要结合数据库自身实际,此篇就先从常用的辅助性能分析工具说起,SQL Server Profiler,性能计数器,执行计划,SQL Prompt等工具,也许平时都正在应用,下边结合自身使用进行介绍。

SQL Server Profiler

    SQL Server提供的监控工具,在运行命令中输入“profiler”,也可以打开。此工具重点是监控在指定服务器上执行的SQL语句,存储过程等一切数据库的操作。对于分析数据库语句执行,死锁,性能瓶颈具有很好的作用。

    打开SQL Server Profiler后,是一个空框架,我们需要添加对应的跟踪(Trace),打开文件中的新建跟踪,则弹出服务器连接信息,此监控支持本地或服务器远程监控,输入对应的身份验证信息后,点击连接则打开“跟踪属性”设置界面,此处是本节要说的重点,好多都是直接点击"运行”,发现监控的内容忽忽闪,刚选定一行,一会又出来很多看不懂得东西,其实这就是缺少跟踪属性的有效设置,对于一个在服务器上运行的Trace,它监控的是好多数据库,好多连接,如果不有效的锁定要查看的对象,那几乎就是在刷屏。另外打开Trace会消耗服务器性能,建议慎重操作。

下边说跟踪属性设置的几个点吧,个人观点哦:

1、常规选项卡中,使用模块: Starndard(默认值),选择它就可以,无需更改

2、打开事件选择选项卡,一般来讲我们打开监控都是有原因的,可能是想查看一个存储过程的执行,可能是T-SQL等等,根据实际锁定目标即可,不用的都可以不选取,这样Trace对这类执行直接Pass,比如我们只看存储过程,则抓图如下:

    这样Trace值跟踪存储过程的执行了,这还是有些不太满足要求,此时可以考虑添加列筛选,点击“列筛选器”,进行设置,当然我一般只做如下筛选,你可以结合自己的实际进行设置筛选条件,设置LoginName根据你查询的登录名,比如sa,设置Duration持续时间,大于等于2000(单位毫秒),这样就可以把大数据量的查询和性能较慢的给罗列出来包括CPU使用情况,Read,Write等参数,然后再分析对应的语句,找出问题所在,使用此工具可以快速锁定目标进行分析。

性能计数器

     监控数据库的性能此工具也是必不可少,可以有效的监控机器的使用情况。通过SQL Server Profiler工具中的性能监视器进行打开,或者在运行命令中,输入perfmon进行打开。此工具只能查看本机的性能情况,无法监控远程机器。通过性能监控器可以查看当前时间点机器的各项使用指标包括CPU,IO,内存等等分析相关参数,找到是硬件配置过差,还是机器性能没有得到充分的发挥,找到问题的确切原因,然后才能进行对应的优化。

在性能计数器中,默认机器上有很多计数器,此处重点需要添加如下几个进行观测:

1、添加计数器,在菜单上,或右键打开,如下图,选择添加计数器

2、选择你所关注的计数器:

  a、SQLServer:Buffer Manager计数器 ,在里边的参数中重点关注Buffer cache hit ratio,page life expectancy选中后,点击添加,确定后就能看到实时的检测

  b、Memory计数器,关注page reads/sec, pages/sec等

具体参数和对应数值代表什么意思,可以查看官方的解释,很全面。

通过计数器的实时检测,可以快捷的分析问题的所在,比如内存持续走高,cpu使用包含,缓存无效等等。找到问题对应的优化,该添加硬件添加硬件,该优化代码优化代码。

执行计划

这个很简单了,在SQL Server Studio中直接“查询”菜单下,选择显示执行计划即可,每次的执行就可以看出来,执行计划详细的罗列出来每次执行的cpu使用,消耗时间,逻辑读,物理读等参数,分析对应的数据记录进行优化即可,显示执行计划不难,难在如何对显示结果看明白,然后找到问题所在进行优化,相关的过程需要深入查看对应的内容。

SQL Prompt 4

Sql Server一个很不错的插件,值得推荐,通过它在2005及其之前的版本书写语句时会有自动提示,还可以检查语法,高亮显示对应关键字等,其中部分功能已经被集成在SQL Sersver2008及其以后的版本中,有兴趣的可以去下载,书写对应的sql语句方便不少呀。

抓个图看看效果吧:

好了,今天就先写这么多,重点都是一些工具的使用,这些在日常分析问题和寻求解决方法时,很有用的,分享给大家。

非常感谢大家的沟通和交流,有问题多指正。

 鉴于有园友要求,特提供SQLPrompt4下载地址。

posted @ 2012-05-23 16:56 Wendy 's 阅读(...) 评论(...) 编辑 收藏