数据丢失找捷定数据恢复中心

SQL2008数据引擎新功能

:本文通过概述,新数据形态,新索引结构,T-SQL语法增强等几方面介绍了SQL2008数据引擎新功能。实用性很强的哦,希望给大家带来帮助。

SQL2008数据引擎新功能之概述

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…等功能外,针对数据引擎本身,也新增的繁多的功能,如下:

SQL2008数据引擎新功能之新数据形态

日期/时间数据类型:新增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字段。

SQL2008数据引擎新功能之新索引结构

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

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

SQL2008数据引擎新功能之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。例如,以往若要分別呈现群组不同字段,需要写如下的查询:

use Northwind

GO

SELECT OrderID,NULL AS ProductID,SUM(Quantity) AS TOTAL FROM [Order Details]

GROUP BY OrderID

UNION ALL

SELECT NULL AS OrderID,ProductID,SUM(Quantity) AS TOTAL FROM [Order Details]

GROUP BY ProductID

在SQL Server 2008后,可改成如下的写法:

SELECT OrderID,ProductID,SUM(Quantity) AS TOTAL

FROM dbo.[Order Details]

GROUP BY GROUPING SETS ((OrderID), (ProductID))

当你遇到数据丢失情况时,为了避免更严重损坏,应立即停止操作,咨询专业数据恢复人员。
咨询电话: 021-31265210

捷定数据恢复中心 | 网站首页 - 介质送修流程 - 修复所需费用 - 站内地图 - 友情链接 - 联系我们