SQL Server 的性能调优

3
我试图联系我正在阅读的有关SQL Server查询性能的书的作者,但似乎书中提供的电子邮件地址已经不存在了。因此,我决定向社区寻求帮助。以下是我写的信息。提前感谢您。
======
我购买了您的书(SQL Server 2008查询性能调整精要),并知道我的SQL Server Express Edition不支持我运行必要的性能测试所需的许多重要工具。正如您所说,有一个初始分析来检查查询对数据库性能的影响非常重要。由于我没有分析器,我无法知道。我下载了一个免费的项目工具,但我担心我没有得到我需要的信息。而且在使用SET STATISTICS时应显示的信息在SQL Server Express中似乎也不会出现。
哪个是提供给我运行书中建议的测试所需工具的最低版本的SQL Server?是开发人员版吗?它是否提供我需要的一切以便跟随示例?
此外,安装新版本(如开发人员版)覆盖Express Edition是否有任何问题?还是我必须卸载先前的版本?
希望我没有太多麻烦。我还想祝贺您写了一本关于如此重要主题的好书。

@NTDLS:你为什么要顶起一堆旧帖子,只是为了添加一些晦涩无用的标签?看起来你是在刷徽章,如果我不亲自撤销这些编辑,其他人可能会这样做。 - Aaronaught
我不明白你的评论。有什么问题吗?这个话题已经停留很长时间了。我最近没有编辑过它。你的意思是什么?你是在谈论你上面的评论还是我的帖子?谢谢。 - Marcos Buarque
5个回答

3
您可以购买49美元的开发者版,这将为您提供完整的SSMS(管理工具)、分析器等工具。您可以在Express上安装此工具(同一台机器上可以有多个SQL Server实例),但如果您只支持生产中的Express,则只需安装客户端工具,不必安装新的SQL Server实例,因为它支持您无法在移植代码时实际使用的功能。
然而,在不使用分析器和完整版本的SSMS的情况下,您仍然可以进行许多性能问题的分析。您可以在此处下载SSMSE(管理工具的Express版本),然后运行针对DMV的查询、检查查询计划并启动服务器端跟踪功能。服务器端跟踪功能优于使用分析器UI。服务器端跟踪功能可以将您在书中读到的所有性能指标记录到文件或表中,然后有函数可轻松消费该数据。
事实上,您甚至可以在没有UI的情况下完成许多这些操作,但为了开始,最好使用查询窗口,所以我建议您下载Management Studio Express并进行探索。
PS:我已经告诉Grant您的问题了。

嘿!谢谢您详细的回答。我会去看看的。我不确定是否会购买开发者版。我所看到的唯一选择是在 MS Store 将其运送给我。我不知道是否可以下载代码... 再次感谢。 - Marcos Buarque
1
你可以从几个在线供应商购买开发者版本,例如亚马逊(http://is.gd/54qYw)和buy.com(http://is.gd/54qZk)。我不知道有什么方法可以下载代码而不用等待DVD的送货,除非你获得了MSDN订阅。但是你可以试着搜索一下,我知道一些在线软件销售商会在购买后向你提供ISO文件(只是不能保证这些公司出售的是合法软件)。 - Aaron Bertrand
Aaron是我在回复中提到的另一个MVP。他的答案出现在我的回复之后,他的答案非常准确,基本上和我说的一样。 - Jonathan Kehayias

3
我知道另一个MVP将此线程发送给了Grant Fritchey,但同时,关于您在帖子中提到的一些评论。

首先,SQL Express支持SQL Trace,这就是Profiler所依赖的。您可以手动定义跟踪并收集所需的调整信息,只是需要更多的工作。SET STATISTICS在Express中的工作方式与标准版或企业版相同。如果您有一个不适用的示例,那对我来说是新的。

对于您的开发人员版问题,是的,它们可以并排安装在不同的命名实例中。但是,您只能将Developer Edition用于开发,不能将其用于生产应用程序中的数据服务,并且在针对Express Edition进行最终部署时,必须小心仅使用Express Edition中的功能,因为Developer包含所有Enterprise Edition功能。

您应该能够仅使用Express Edition进行相同级别的调整,只是需要更多的工作。如果您购买了Developer Edition许可证,您实际上只需要安装Workstation Tools,而不是实际的数据库引擎。 Profiler等都是Workstation Tools中的工具,而不是引擎本身的一部分。


谢谢!我会拿到这些例子并明天发布。抱歉,我差点在键盘上睡着了;-) - Marcos Buarque
嗨,很抱歉让你等这么久才回复这个话题。我想要看到的信息(Grant在他的书中经常提到)是执行计划的文本结果信息。例如:表'employee'。扫描次数1,逻辑读取9,CPU时间= 16ms,经过时间= 103ms。我无法在SQL Server上获取这个宝贵的信息片段,包括读取数量。我该如何打开它?谢谢! - Marcos Buarque
这是STATISTICS IO和STATISTICS TIME信息,它们通过打开各自的设置选项并运行查询在客户端收集。从跟踪中得到的最好结果将是来自Showplan Statistics Profile事件的STATISITICS PROFILE,它与其他两个不同。在语句和批处理级别事件的跟踪输出中,读取次数和CPU时间将包括在这些列中。 - Jonathan Kehayias

3

Profiler很好用,但是解释计划更易于访问。解释计划在其他数据库中也很常见,比如Oracle、MySQL等。不要陷入使用特定工具的泥潭。

开发人员版是企业版 - 区别在于许可证不允许您将开发人员版用于商业用途。

是的,您可以在同一工作站上安装SQL Server版本 - 如果喜欢可以并排安装。这是为了像迁移到其他版本和SQL Server版本之类的事情。除非您正在使用两个实例,否则我不建议这样做,因为未使用的实例将使用系统资源,而这些资源最好用于其他地方。


1

关于您问题的部分解答:

SQL Server Developer版是Enterprise版的等价版本,但只具备开发许可证。

您可以将Express版与Developer/Enterprise版并行安装,不需要卸载Express版。


0
已经回答了这个问题,可能比我回答得更好。

我可以提供给你另一个信息。书中的电子邮件应该是grantedd -at- gmail.com。如有需要,请解密。

我本来想以评论的形式回复,但我不常在SO上,所以我在这里没有任何声望。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接