软件测试开发技术SQL Server 2008数据引擎的新功能

发表于:2009-10-20来源:作者:点击数: 标签:软件测试SqlsqlSQLSERVER
软件测试 开发 技术SQL Server 2008数据引擎的新功能 SQL Server 数据库 关键字:SQL Server 2008 数据引擎 【IT168 专稿】 概述 SQL Server 2008针对应用程序开发大幅扩充了许多功能,除了完整支持Visual Studio 2008/.NET Framework 3.5 SP1后所提供的LINQ

软件测试开发技术SQL Server 2008数据引擎的新功能  SQL Server 数据库

关键字:SQL Server 2008 数据引擎

  【IT168 专稿】

  概述

  SQL Server 2008针对应用程序开发大幅扩充了许多功能,除了完整支持Visual Studio 2008/.NET Framework 3.5 SP1后所提供的LINQ、ADO.NET Entity Data Model/Framework、ADO.NET Data Service、Sync Framework/Service…等功能外,针对数据引擎本身,也新增的繁多的功能,如下:

  新数据形态
 
  日期/时间数据类型:新增date、time、datetime2、datetimeoffset 等日期格式。另外,time、datetime2、datetimeoffset等类型的数据长度可变动,让你可在精确度与节省空间两者间选择。

  空间(Spatial)数据类型:可在数据库内结合地理资讯,并搭配空间索引(Spatial Index)的特殊阶层式索引结构,以有效存储数据。实体的数据类型分为一下两种:

  geometry (平面):符合开放式地理空间协会(Open Geospatial Consortium,OGC)的SQL简单特征规格1.1.0版,存放几何空间的X、Y等坐标数据。
 
  geography (测地):存储椭圆体(圆形地球)数据,例如:GPS的经纬度坐标。

  上述两种数据类型实际是通过SQL CLR编写,同时提供了丰富的函数,诸如:STLength、STArea、STStartPoint、STEndpoint、STCrosses、STWithin、STOverlaps…等,让你不论是以T-SQL或是.NET程序语言开发,都可以一致的操作方式存取该资料记录或物件执行个体。

  FileStream:将大量数据通过SQL Server 存回 NTFS档案目录,而非数据库档案内。让大型数据不受限于2G位元组大小的限制,还可同时维持交易一致性、整合的管理架构,如:备份/还原、SQL Server 安全性等。

  Hierarchyid阶层结构数据类型:以SQLCLR UDT实做的特殊数据形态,预设提供许多维护阶层结构的方法。以便利操作如档案、组织阶层等结构。

  数据表类型的参数(Table-value Parameter):可以先定义数据表类型,再在预存程序声明该类型参数。在这个版本,传递数据表形态的参数是只读的。

  Sparse Column:适用于数据表的字段数量非常多,但大部分记录该字段的内容都是空的。若声明成Sparse字段,当内容是null时,完全不占空间。例如Windows Sharepoint Services在存储文管的数据时,有一大堆档案格式,每种档案格式的属性皆不同,因此有一大堆字段,对应各种不同的文件属性,当新增任一份档案时,大部分的属性字段都可以null,仅少数几栏适用于该类型档案描述的属性有设值。

  Sparse Column同时可以搭配过滤条件的索引(Filtered Index),以更省空间、更有效率的放出处理Sparse字段。

  新索引结构

  空间索引(Spatial Index):对于空间地理资讯建制特殊的索引结构。

  设定过滤条件的索引:对符合Where条件的值建立索引,例如:建立索引时限制字段值不可null,则针对Sparse Column建出来的索引资料量就小很多。

   T-SQL语法增强

  简化T-SQL语句的编写:可宣布变量并同时初始化,例如:DECLARE @i INT=4。以及附和运算,例如:+= 、 -= 、 *= 、/= 、%= 等。

  Values子句提供资料列构建函式:可用在单一INSERT陈述式内,同时插入多组值,例如

 

INSERT INTO tb VALUES (1, 'Fred'), (2, 'Jim'), (3, 'Sue');
  或用在 SELECT 語法:
  或用在SELECT语句:
  SELECT * FROM (VALUES (1, 'Fred'), (2, 'Jim'), (3, 'Sue')) tb(C1,C2)

 

  Merge语句:遵循ANSI SQL 2006 的 Merge定义并加以延伸。比较来源与目的资料后,以一句Merge语句同时完成新增、修改、删除等操作。如同单一句SQL语句自动含在交互内,通过Merge语句所有更新的资料都包在一个交互内,不像以往需明确定义交互,然后包含多句变更资料的DML语句。

  Group By 子句支持 ANSI 标准的 Grouping Sets:简化组合各种群组的语句,并可搭配 Rollup、Cube。例如,以往若要分別呈现群组不同字段,需要写如下的查询:

原文转自:http://www.ltesting.net