Microsoft SQL Server 2008 R2的最新功能
SQL Server 2008 R2引进了一系列新功能帮助各种规模的业务从信息中获取更多价值。经过改进的SQL Server 2008 R2增强了开发能力,提高了可管理性,强化了商业智能及数据仓库。
两个新版本可用于大规模数据中心和数据仓库:SQL Server 2008 R2 数据中心版和 SQL Server 2008 R2 并行数据仓库版。这两个豪华版本增强了企业级的伸缩性,例如它们为最苛刻的工作负荷提供了更有力的支持,为应用程序和数据中心的服务器提供更有效率的管理。
通过增强核心版本解决业务难题:SQL Server 2008 R2 Standard和SQL Server 2008 R2 Enterprise。新的改进包括:PowerPivot for Excel 和 PowerPivot for SharePoint 支持大量复杂事件处理和可托管的自助式商业智能。
具体来说: 任何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在这方面将会发挥积极的作用。 FORCESEEK和FORCESCAN二者是截然相反的,它会强制数据库使用seek。在之前的版本中也存在这一功能,但是在SQL Server 2008 R2 SP1中,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语句来自动生成。 每当SQL Server有版本更新的时候,都会出现一些新的系统对象,用户每次都将它们挖掘出来然后记录到文档当中。下面就是SQL Server 2008 R2 SP1中一些新的系统对象
sys.dm_os_volume_stats:当进行查询的时候,这个动态管理函数将返回存储数据库文件的磁盘信息。比如磁盘上还有多少可用空间,这个卷是否支持压缩。
sys.dm_os_windows_info:返回SQL Server运行的操作系统信息(哪个版本的Windows),其中包括了修订级别以及操作系统语言等。
sys.dm_server_registry:返回现安装的SQL Server相关注册信息。
sys.dm_server_services:返回SQL Server正在运行的服务状态,包括上次启动时间、服务是否运行在集群实例上等。 微软PowerPivot数据往往会缓存在SharePoint中,但是DBA还是无法对缓存机制有一个比较直接的控制。SQL Server 2008 R2 SP1可以让DBA控制不活跃数据库在内存中缓存的时间,并对PowerPivot文件进行磁盘清理。如果你的系统中只有少量的PowerPivot数据,而且更改很少,你希望它能够长时间缓存在内存中,那么新的磁盘空间控制功能将会非常有帮助。
通过sys.sp_db_increased_partitions存储过程将一个表分成15000个分区。
sys.sp_db_increased_partitions存储过程可以使DBA能够针对一个特定的表设定increased_partitions。在之前的SQL Server版本中,DBA最多能够分成1000个分区,而新的SP1中最多则可以达到15000个分区。这是非常大的一个改进。
2024-09-04 广告