分享
Scan me 分享到微信

GIS功能被整合进SQL Server 2008中

  Microsoft 在2008年8月发布了特性丰富的SQL Server 2008版本。你已经安装了吗?可能,你仍然在使用SQL Server 2005.或可能你已经发现需要从SQL Server 2008获得某个特性。在这篇文章里,我将介绍SQL Server 2008推出的10个新特性。这些特性的介绍没有什么特定顺序。可能一个或多个特性会促使你和你的公司强烈地想要获得和安装SQL Server 2008.

  空间数据类型和函数

  最终,一些地理信息系统(Geographic Information System,GIS)功能被合并到了SQL Server中。随着SQL Server 2008的推出有两个空间数据类型和一些空间函数。这两个新的数据类型是geometry和geography.geometry数据类型是一个平面数据类型,它表示了欧几里德的坐标系统,或更加通俗地称为平面地球模型。geography数据类型表示椭圆体的数据和表示了椭圆地球模型。有了这些新的数据类型,你可以识别地球上一个指定的点,或其它地理名词比如道路、湖泊、城市、乡村等等。

  有了对geometry和geography数据类型的支持,Microsoft提供了一些不同的Open Geospatial Consortium(OGC)方法类型。这些方法使得你可以定义点、线、多边形、距离、交点等等。这些GIS改进使得你可以轻松地合并匹配的函数到你的应用程序中去。

  资源监控器

  当你在你的SQL Server机器上运行许多不同种类的处理器时,你需要一个可以控制资源竞争处理器的方法,以便它们不会消耗你机器的所有资源。资源监控器是一个控制这些大量消耗资源的处理器的方法。有了资源监控器,你就可以限制那些确认使用了过多资源的会话使用CPU和内存资源。资源监控器使用分类函数来确认某个特定会话应该使用哪个工作负载。会话的分类按顺序将它们与资源池关联起来。通过限制资源池所关联的CPU和内存的数量,你就可以控制所分类的会话可以消耗的资源数量。通过使用SQL Server 2008中推出的资源监控器,数据库管理员可以更好地控制资源使用,从而使得所有会话达到一个均衡使用的状态。资源监控器只在SQL Server 2008的Enterprise和Developer版本中可用。

  基于策略的管理

  有了基于策略的管理,你就可以通过一组规则--即策略--来管理你的实例。你可以编写策略来控制事情,比如命名标准、服务器配置、导入/导出要求等等。通过在你所有的SQL Server实例中使用一组标准的策略,你就可以始终管理你的服务器并使得你的管理成本最小化从而加强这些策略。

  一个策略包含一个条件,这个条件是对与某一分面所关联的适当目标SQL Server组件进行检查而定义的。分面是一个包含属性的单独SQL Server组件。这是一些可用的分面列表:Credential、 Data File、Database、Index、 Login, Name、Schema、Server、Table、User和View.条件是一个逻辑表达式,它验证这个分面的属性是否满足你的策略要求。通过使用策略中定义的条件,你就可以控制对于一个给定分面来说什么是合适的,什么是不合适的。

  SQL Server 2008的所有版本中都提供了策略管理。

  表压缩

  为了帮助节省表和它的索引所消耗的磁盘空间,在SQL Server 2008中推出了表压缩。这个特性只在SQL Server 2008的Enterprise和Developer版本中可用。

  表压缩有两种不同的压缩类型可用:Row和 Page.Row压缩是压缩固定字段来节省记录中的额外空间。Page压缩比记录压缩更进一步。它首先进行记录压缩,然后执行前缀压缩和字典压缩。Prefix Compression(前缀压缩)是将重复发生的字段前缀值存储在页面头中存储的Compression Information(CI)结构中的过程,然后使用一个指向存储在这个CI结构中值的索引来替代实际值。Dictionary Compression(字典压缩)是将页面中重复发生的值用存储在CI结构中值的索引来替代的过程。

  因为Table 压缩是在数据库引擎中完成的,所以它对于应用程序来说是完全透明的。从对压缩的测试结果来看,使用Table压缩可以节省40-60%的空间。你的压缩节省多少可能很大程度上取决于你使用的数据类型和存储在你数据库表中的数据。

  有了表压缩就有可能改进你的一些进程的消耗时间。性能的提升是因为读取数据所需要的I/O少了。记住,压缩和解压所造成的额外成本也是与Table压缩相关的成本。因此,要改进你的TSQL语句所消耗的时间,与执行更少I/O相关的成本节省需要比执行表压缩引起的更多CPU成本要大。

  备份压缩

  SQL Server 2008 Enterprise 和Developer 版本中新推出了数据库备份压缩。有了备份压缩,数据库备份在写备份文件时被压缩。如果磁盘设备是你的备份所在,那么通过使用压缩的备份,你就可以节省昂贵的磁盘空间。压缩备份将帮助将备份所需的空间数量降低到最小。如果你没有很多空间的磁盘空间,那么这能帮助你。

  因为更少的I/O需要将压缩的数据库备份写到一个文件里,你可能会看到你的备份进程运行得更快了。记住,压缩备份是一个消耗CPU的进程。所以如果你在运行压缩备份语句,而同时其它消耗CPU的进程也在运行,如果你机器的CPU能力达到最大,那么这个备份和这些进程都将被影响。

  数据采集/管理数据仓库

  有一个新的统计采集和报告机制叫做数据采集。通过使用数据采集,数据库管理员可以很轻松地采集、存储和管理关于他们的SQL Server实例的统计。这些统计存储在一个大家熟知的管理数据仓库的数据库中。数据采集机制不只能采集数据,而且它还能清除旧的数据。当你定义数据采集时,你指定你想保留这个数据多久。使用这个保持时间SQL Server有一个内置的进程来自动地从管理数据仓库中清除你的数据采集数据。

  在产品中,Microsoft 提供了三个不同的系统数据采集。一个采集收集关于正在运行的查询的统计。另一个收集磁盘空间信息。最后一个数据采集收集关于系统性能的信息。你还可以定义你自己的数据采集。

  还提供了一些扫描报表,这些报表是报告系统数据采集的数据收集。这些报表使得你可以查看这些系统数据采集所收集的数据所表达的趋势信息。报表特性丰富,有超链接,它使得你可以从一个上层报表向下钻研得到更详尽的报表。使用这些扫描的报表,你就可以很好地了解你的服务器中正在进行什么。

  FILESTREAM

  我们使用的很多数据是非结构化的数据,比如图片、Word 文档等等。这类数据通常被称作二进制大型对象(BLOB)。现在有了SQL Server 2008你就可以使用数据库引擎用FILESTREAM来管理和存储BLOB作为一个NTFS文件。有了FILESTREAM,你可以存储超过2GB空间的BLOB.默认情况下,SQL Server 2008关闭了FILESTREAM存储。你需要将它打开来利用这种存储。存储你的图片、Word文档或其它BLOB作为一个FILESTREAM对象,这使得这些对象受数据库引擎控制。这使得数据库引用可以将这些对象作为数据库备份/恢复过程的一部分来备份和恢复。而且这些对象被数据库控制也使得数据库引擎还可以控制与这些对象相关的安全。因此,除非被授予权限,不然用户没有对FILESTREAM对象访问的权限。SQL Server 2008的所有版本都支持FILESTREAM.

  新的日期和时间数据类型

  最后,Microsoft 认识到应用程序不总是需要一个含有日期的时间值,或一个含有时间的日期值。SQL Server 2008中有两个新的数据类型可用,DATE和TIME.现在你可以使用这些新的数据类型来存储你需要的某一时间点的内容,一个DATE或一个TIME.还提供了一个新的日期/时间数据类型,就是众所周之的DATETIME2.DATETIME2提高了你的日期/时间值的时间部分的精确度。有了DATETIME2数据类型,你的精确度就可以达到7位数字,准确率达到千万分之一秒。DATETIME2还是一个可变长度的字段,这意味着你可以定义你想存储的时间部分的精确度的数字数目。你可以指定精确度使得你可以为你的DATETIME2字段保留磁盘空间。最后,推出了一个新的DATETIMEOFFSET数据类型。这个新的数据类型使得你可以存储含有时区的日期和时间值。这个数据类型还使得你可以定义你对DATETIMEOFFSET值所要求的时间精确度的数字数目。

  透明数据加密

  透明数据加密就像它的名字一样。透明数据加密是对应用程序完全透明地加密你的数据库的过程。这个加密是在块写到磁盘时完成的,然后当它们从磁盘读取时被解压。所以在缓冲池中,数据库引擎的工作还是一样,因为在缓冲池中数据是未加密的。执行透明数据加密会增加一些成本。如同这里提到的其它一些新特性一样,这个特性也是只在SQL Server 2008的Enterprise和Developer版本中提供。当你使用透明数据加密时,你的数据库数据是静态加密的。所以如果你要分离一个加密的数据库,那么它不能被移到另一个服务器上,除非加密密钥也被移到那台服务器上。数据库备份也被加密了,所以如果你还备份和恢复加密密钥,那么你只能恢复它们到其它服务器上。

  变更数据捕获

  SQL Server 2008现在使用一个新的特性叫做“变更数据捕获”可以跟踪你的数据库的变更。这个新变更跟踪特性只在Enterprise和Developer版本中提供。如果数据库中的一个表激活了变更数据捕获,那么通过存储变更到一个变更表中,这个表的所有变更都会被跟踪。变更表将为每一个INSERT保留一条记录,这可以用来确认所插入记录的字段值。每次执行DELETE时,变更表将为每一个DELETE保留一条记录,这将显示在DELETE之前每个字段中的值。当执行UPDATE时,对一个激活了变更数据捕获的表,变更表中将创建两条记录,一条是保存更新的字段值,一条是保存原来的值。使用变更数据捕获,你就可以跟踪过去你的表所发生的改变。这种功能对于应用程序是很有用的,比如一个数据仓库加载进程它需要确认变更以便他们可以正确地实施更新来跟踪历史变更。

  你需要什么新特性?

  希望这些特性使你对可以利用什么来改进你的SQL Server环境有些想法。当你计划你的SQL Server 2008时,这些新特性或改进可以帮助你确定你移植到SQL Server 的这个新版本是正确的。Microsoft提供了一个具有丰富特性的Microsoft版本。希望你的公司在不远的将来可以利用一部分这些新特性。( 代翀)

参与评论

【登录后才能评论哦!点击

  • {{item.username}}

    {{item.content}}

    {{item.created_at}}
    {{item.support}}
    回复{{item.replynum}}
    {{child.username}} 回复 {{child.to_username}}:{{child.content}}

更多精选文章推荐

泰伯APP
感受不一样的阅读体验
立即打开