SQL Server 2008是一款功能强大的数据库管理软件,软件能够提供对于数据库中数据的检索、查看、同步、分析、报告等各种操作,这些功能能够帮助用户对数据库中的数据更好的管理,让用户能够轻松的导出自己所需要的各种数据。软件新加入了很多新功能,下面就跟小编一起来看看软件的所有新增功能吧。
新增功能
1、新的FORCESCAN查询提示
任何DBA在进行查询优化的时候,都知道scan和seek之间的区别。Scan是指读取表中每一行数据然后返回查询;而seek使用表的叶数据来找到能够回答相同查询的行。当查询结果仅涉及到表数据的10-15%时,通常使用seek方式会比较好,当涉及到大量数据时则使用scan,它会读取整个表然后送到内存中然后返回结果,无需分析索引。
①新的FORCESCAN提示功能就和字面上的意思一样,可以确保查询优化器在给定的操作中不使用seek,而强制使用scan。需要提醒的是,FORCESCAN需要谨慎使用,否则会造成查询性能降低的后果。
②SELECT user_type FROM user_table WITH (FORCESCAN)
上面的语句假定user_type列相对来说并不是独一无二的,也就是所谓的“低基数”列,这时候使用FORCESCAN就和使用索引没有太大差别。
③随着SQL Server查询优化器变得越来越强大,我在自己的程序中已经很少会用到这种提示功能,但是FORCESCAN还是有它的用武之处。强制表扫描是对系统进行拷问测试的一种方法,FORCESCAN在这方面将会发挥积极的作用。
2、FORCESEEK查询提示的新功能
①FORCESEEK和FORCESCAN二者是截然相反的,它会强制数据库使用seek。在之前的版本中也存在这一功能,但是在这款软件中,DBA可以使用FORCESEEK来指定需要seek的索引或者列:
②SELECT user_name FROM user_table
③WITH (FORCESEEK(user_table_index(user_name))
④如果你能够想到的,在user_table上有一个索引叫做user_table_index,它将user_name作为其中的一列。这会强制查询优化器使用这个索引和列来进行seek。你还可以seek多个列,但是这需要按照它们在索引中的位置顺序来指明出来。
⑤一个可能的应用场景:你创建了一个系统,其中生成索引后你想要手动进行详细的说明,或者是用存储过程以及内嵌SQL语句来自动生成。
3、新的系统对象
①每当软件有版本更新的时候,都会出现一些新的系统对象,用户每次都将它们挖掘出来然后记录到文档当中。下面就是软件中一些新的系统对象。
②sys.dm_os_volume_stats:当进行查询的时候,这个动态管理函数将返回存储数据库文件的磁盘信息。比如磁盘上还有多少可用空间,这个卷是否支持压缩。
③sys.dm_os_windows_info:返回运行的操作系统信息(哪个版本的Windows),其中包括了修订级别以及操作系统语言等。
④sys.dm_server_registry:返回现安装的数据库相关注册信息。
⑤sys.dm_server_services:返回数据库正在运行的服务状态,包括上次启动时间、服务是否运行在集群实例上等。
4、支持仿真(512e)硬盘
存储市场中目前正涌现出新的硬盘驱动器,其中之一就是使用所谓的“512e”格式的硬盘,仿真硬盘运用磁盘的4K扇区,但是在界面上模拟一个512字节的扇区硬盘。在TechTarget之前关于仿真硬盘对Windows Server影响的报道中,作者已经将该硬盘称为先进格式硬盘,而且它对于提升SQL Server这样应用性能方面有很大的优势。因此,微软在SP1中添加了对仿真硬盘的支持,它可以让Windows Server 2008 R2运行更好。
5、数据层应用组件架构(DAC Fx)
数据库架构管理是让每个DBA头痛的事情,但是SQL Server在这方面提供了不错的帮助。数据层应用组件(DAC)就是这样的一个工具:它让数据层对象(基本上就是数据库中所有的东西)写入和部署变得轻松起来。SP1包括了一个新的DAC Fx和DAC升级向导,这两个工具可以帮助软件现有数据库架构进行升级,而且还支持微软新的云数据库平台SQL Azure。
6、SharePoint PowerPivot磁盘空间控制
①微软PowerPivot数据往往会缓存在SharePoint中,但是DBA还是无法对缓存机制有一个比较直接的控制。软件可以让DBA控制不活跃数据库在内存中缓存的时间,并对PowerPivot文件进行磁盘清理。如果你的系统中只有少量的PowerPivot数据,而且更改很少,你希望它能够长时间缓存在内存中,那么新的磁盘空间控制功能将会非常有帮助。
②通过sys.sp_db_increased_partitions存储过程将一个表分成15000个分区。
③sys.sp_db_increased_partitions存储过程可以使DBA能够针对一个特定的表设定increased_partitions。在之前的软件版本中,DBA最多能够分成1000个分区,而新的SP1中最多则可以达到15000个分区。这是非常大的一个改进。