降龙十八掌之一:(亢龙有悔)SQL Server Profiler和数据库引擎优化顾问
简介
说到Sql的【性能工具】真是强大,SQL Server Profiler的中文意思是SQL Server事件探查,这个到底是做什么用的呢?我们都知道探查的意思大多是和监视有关,其实这个SQL Server Profiler就是一个Sql的监视工具,可以具体到每一行Sql语句,每一次操作,和每一次的连接。感觉这个工具的作用还是很大的,给大家分享一下,对于新手了解Sql语句的写法和提高语句的性能方法有很大的帮助。
SQL Server Profiler使用方法
我们单击开始--程序--Microsoft SQL Server 2005--性能工具--SQL Server Profiler 如下图
然后会出现如下界面

我们单击文件---【新建跟踪(N)...】,这是一个多窗口多任何的工具,我们可以同时新建不同的跟踪窗口,也可以是不同的数据库 接着看

在这里我们输入 我们的跟踪的数据库的服务器名称,用户名和密码等信息。单击连接进入下一个界面


上图中左面的可以进行一个基本设置,使用的模板选择,和文件的保存选择等。我们一般使用默认的就OK了,不用动上面的东西,右面的图是事件选择,也就是说我们要跟踪的事件有那个,在这里可以一一的选择,基本上Sql上有的事件都有,包括你用SQL Server Management Studio操作数据库的过程都可以跟踪的到。具体的事件和说明大家可以自己看一下。 只要单击显示所有事件就可以进行全部事件的选择了。 我们还可以对统计的字段进行筛选,单击任意一个列标题可以查看列的说明如下图

我们从上图上依次说明 为:
TextDate 依赖于跟踪中捕获的事件类的文本值;
ApplicationName 创建 SQL Server 连接的客户端应用程序的名称。此列由该应用程序传递的值填充,而不是由所显示的程序名填充的;
NTusername Windows 用户名。 LoginName 用户的登录名(SQL Server 安全登录或 Windows 登录凭据,格式为“域\用户名”)
CPU 事件使用的 CPU 时间(毫秒)。
Reads 由服务器代表事件读取逻辑磁盘的次数。
Writes 由服务器代表事件写入物理磁盘的次数。
Duration 事件占用的时间。尽管服务器以微秒计算持续时间,
SQL Server Profiler 却能够以毫秒为单位显示该值,具体情况取决于“工具”>“选项”对话框中的设置
ClientProcessID 调用 SQL Server 的应用程序的进程 ID。
SPID SQL Server 为客户端的相关进程分配的服务器进程 ID。
StratTime 事件(如果可用)的启动时间。
EndTime 事件结束的时间。对指示事件开始的事件类(例如 SQL:BatchStarting 或 SP:Starting)将不填充此列。
BinaryData 依赖于跟踪中捕获的事件类的二进制值。
然后我们单击运行就可以,当然如果有兴趣的话你也可以对列进行重新排列和筛选,只要单击下面相应的按钮根据提示操作就要可以了,我们这里就安默认的进行

通过上面的图我们就可以清楚的跟踪到每一步操作是过程了, 现在如果大家对那版的Sql语句的写法不怎么懂的话就可以参考上面的,而且 是时时的,你在Sql里操作几下这里就会出现相应的Sql语句,也是一个学习和提高的好工具 不仅仅是这样,我们还可以对其中的数据进行分析,查询,跟踪可以暂停,开始和停止操作,可以同时启动多个跟踪,同时跟踪不同的数据库和表 如果和Sql的数据库引擎优化顾问配合使用的话就更好了,可以分析出来你的Sql语句性能如果,而且还会告诉你怎么修改会更好,我们一起来看一下吧
数据库引擎优化顾问使用方法
有了这个跟踪的记录我们怎么样使用数据库引擎优化顾问对其进行分析优化呢?当然第一步我们要先把跟踪到的记录导出到文件.trc类型的文件。单击文件--另存为

假如我们把文件保存为123.trc 现在我们来打开数据库引擎优化顾问 我们单击开始--程序--Microsoft SQL Server 2005--性能工具--数据库引擎优化顾问 如下图

和上面一样我们要先输入数据库的登录信息 单击连接进入如下界面


我们可以看一下界面,一般不用选择只要安默认的就OK了,需要配置的我上面都有注释。在这里大家一定要记得选择用于工作负荷的数据库和表,意思就是设置要分析的数据库否则会分析不成功。 现在就可以单击开始了

在这里我们可以看到分析成功后的分析报告,这还不算,我们单击上面的 建议选项卡


在这里还给出了你的哪些表,需要优化,应该怎么建立索引和视图才能更有效的提高性能,更好玩的是连需要优化的Sql语句都给生成好了, 我们直接复制执行就要可以了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?