SQL Server 2008新特性——SSMS增强
SQL Server 2008已经发布很多天了,今天来总结一下我们最常用的工具SSMS在SQL 2008中的一些改进:
1.在注册的服务器组中一次SQL查询可以针对多个服务器执行。
首先是要在“已注册的服务器”中创建组,也可以使用系统默认的组,然后添加多个数据库到组中。接下来右击数据库组,选择“新建查询”选项,系统将打开一个多数据库查询的编辑器,选择多个服务器中公共的数据库,在其中输入SQL语句F5执行即可将多个服务器中的数据一次性都查询出来。
2.可以为不同的服务器设置不同的状态栏颜色。
在登录服务器的时候,选择“选项”按钮,然后可以在“连接属性”选项卡中设置“使用自定义颜色”,如图:
登录后接下来查询的状态栏将会是我们自定义的颜色:
这个功能有什么用呢?在项目开发中经常需要连接到多台服务器中,开发环境数据库一种颜色、测试环境一种颜色,这样多醒目啊,不容易搞混。
3.活动和监视器
在SQL Server 2005的时候可以下载一个Performance Dashboard Reports,然后在SSMS中添加到报表中,可以通过报表的方式来查看数据库实例的活动情况。现在好了,SSMS2008中直接使用“活动和监视器”功能来实现了。实质上每15秒钟从动态管理视图中采集一次数据,然后展示出来。功能比较强大,进程、资源等待、IO情况等都可以展示出来。在对象资源管理器中右击数据库实例,然后选择“活动和监视器”选项即可打开,如图:
在SQL Server 2008中对动态管理视图进行了修改sys.dm_os_sys_info中去掉了cpu_ticks_in_ms列,添加了两个新列,而这新列在活动和监视器中就要用到,由于SQL2005没有对应的列,所以使用SSMS2008可以连接SQL2005服务器并打开活动和监视器,但是第一个图“处理器时间百分比”无法显示。其他地方好像还是挺正常的。
4.提供了分区向导
在SSMS2005中要对表进行分区那就只有手动创建分区方案、分区函数,然后应用到表。现在好了,SSMS2008提供了分区向导,在要分区的表上面右击,然后选择“存储”下面的“创建分区”选项即可。接下来就按照向导的要求做就是了。
5.加强了对象资源管理器详细信息
SSMS2008中默认是没有开启对象资源管理器详细信息,使用快捷键F7可以呼唤出来。现在在详细信息页面可以提供更多的信息,例如可以直接列出每个数据库的大小,在表详细信息中可以列出每个表的行数等等。通过右击详细信息的列头,可以选择要列出的内容。列出表行数如图:
6.数据库对象搜索功能
搜索框就在对象资源管理器详细信息上方,就和LIKE一样的用,使用%表示多个字符进行模糊搜索。搜索的是数据库对象:表、视图、存储过程、函数、架构……全部可以搜索出来,而搜索范围由对象资源管理器中选择,如果选中的是整个实例,那就是整个数据库实例的搜索,选择一个数据库那么就只搜索这个数据库:
7.对表实行“选择前n行”和“编辑前m行”
在SSMS2005中就是“编辑”和“打开表”,不能指定行数,对于数据量很大的表,这可不是件好事。现在好了,可以直接选择前n行了,默认情况下是选择前1000行,编辑前200行。觉得这个数字不合适?简单,在“工具”菜单的“选项”命令中可以修改:
8.智能感知
这可是SSMS2008的一大亮点,SSMS终于可以像VS一样提供智能感知了。不过现在功能还不是很强,没有SQL Prompt强,但是SQL Prompt是要收费的,相信SSMS的智能感知能够很快发展起来。SSMS中的智能感知提供了拼写检查、自动完成列出成员的功能,下图就是智能感知对第一行拼写错误的警告还有第二个SQL语句的自动列出成员的功能。
如果是在用SQL Prompt,不想用这个的话,在“工具”菜单“选项”中可以关闭之。
9.T-SQL调试
可以直接在SSMS中调试T-SQL代码了。断点设置和VS的相同,VS中是F5来启动调试,SQL中由于F5已经是执行了,所以只有ALT+F5来启动调试了。这个必须针对SQL2008的服务器,如果连接的是2005,仍然无法调试。
10.查询结果表格提供连同标题一起复制的功能
在SQL2005中查询的结果用表格显示,如果复制数据的话那么列名是不会被复制的,只能复制数据内容。现在SSMS2008中提供了连同标题一起复制的功能,右击窗格结果,可以看到“连同标题一起复制”选项,如图:
复制得到的结果就是:
ID Name
1 深蓝
11.直接以图形方式显示查询出来的执行计划
在DMV查询时,查询出的执行计划是XML格式,直接点开链接的话出现的是XML内容,然后要把XML内容保存为.sqlplan后缀的文件才能再用SSMS查看到图形。在SSMS2008中,现在点击链接后出现的就直接是图形了。例如执行如下查询,查看缓存中的执行计划:
SELECT qp.query_plan,cp.*
FROM sys.dm_exec_cached_plans cp
CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle) qp
执行后点击XML的链接即可图形化展示执行计划,如图:
12.从执行计划可以获得对应的查询脚本
这点功能确实不错,获得了一个图形化的执行计划后,在SSMS中右击该执行计划,在右键菜单中选择“编辑查询文本”,如图:
系统将自动新建选项卡,将查询脚本显示出来。
13.在查询编辑器中直接启用针对当前会话的Profiler。
在SQL2005中,Profiler基本上是独立的,对于跟踪测试一个查询的执行情况比较麻烦,现在SSMS2008直接可以在查询编辑器中启动Profiler了,右击查询机器,选择“SQL Server Profiler中的跟踪查询”选项,系统将启动针对当前查询编辑器SPID的Profiler跟踪。也就是说启动的Profiler中设置了过滤条件,只跟踪SPID为启动Profiler的查询编辑器的SPID,其他用户在数据库上执行任务并不造成大量的干扰数据影响跟踪。
14.提供了Service Broker模板
以前在SSMS2005中新建Service Broker的相关内容完全靠T-SQL编写,没有模板。现在SSMS2008中有所改进,右击Service Broker或下面的节点,都有个“新建XX”选项,选择该选项,系统将提供一个模板,虽然还是没有图形化的设置界面,不过有模板总比没有强吧。
目前我知道的就这些,肯定还有大量的新特性还没有被发现,若发现了其他新特性希望大家留言。