首页 > 技术文章 > 【版本特性】sql server2005版本特性

gered 2020-04-30 16:56 原文

【1】实际可操作性强的特性

  在商界,每样东西都在竞争中争取“更好、更快、更便宜”——SQL Server 2005也提供了很多个新特性来节省精力、时间和金钱。从编程到管理能力,这个版本的SQL Server都优于其他版本的产品,并且它还对SQL Server 2000中已经存在的特性进行了加强。这里我按照它的重要程度列出前十个最重要的新特性。

【1.1】加强的T-SQL (事务处理SQL 、CTE、流程化与动态SQL、output、行列转换及apply/数据汇总grouping、rollup、cube、窗口函数,表变量/表值函数)

(1)事务处理SQL:事务控制及try catchhttps://www.cnblogs.com/gered/p/8746008.html

(2)CTE:(1.1)DML增强功能-CTE

(3)流程化与动态SQL:(2.3)DDL增强功能-流程化控制与动态sql

(4)output:(1.4)DML增强功能-Output

(5)行列转换及apply:(1.3)DML增强功能-Apply、pivot、unpivot、for xml path行列转换 ,(2.4)DDL增强功能-数据汇总grouping、rollup、cube

(6)窗口函数:(1.2)DML增强功能-4大排名函数与top ties/tablesample ,sql server窗口函数

(7)表变量与表值函数

--表变量

declare @Table TABLE(TPR_ID int,TPR_Title nvarchar(100),TPR_PubDate datetime)

--表值函数
CREATE FUNCTION FUN_GetInfoList(@type varchar(10)) RETURNS @Table TABLE(TPR_ID int,TPR_Title nvarchar(100),TPR_PubDate datetime) AS BEGIN DECLARE @a varchar(10) SELECT @a = xx FROM XX WHERE xx = @type INSERT @Table SELECT XX,XX,XX FROM TableName WHERE XX = @a --表变量里定义的列数和取值列数要一致 RETURN END

 


【1.2】CLR(Common Language Runtime,通用语言运行时)

具体详细操作参考:sql server CLR

  SQL Server 2005中的第二个主要的增强特性就是整合了符合.NET规范的语言 ,例如C#, ASP.NET 或者是可以构建对象(存储过程,触发器,函数等)的 VB.NET。

  这一点让你可以在数据库管理系统中执行.NET代码以充分利用.NET功能。它有望在SQL Server 2000环境中取代扩展的存储过程,同时还扩展了传统关系型引擎功能。

 

【1.3】SMTP邮件

具体详细操作参考:数据库邮件功能     ,sql server如何把查询结果发邮件出去

  在SQL Server 2000中直接发送邮件是可能的,但是很复杂。在SQL Server 2005中,微软通过合并SMTP邮件提高了自身的邮件性能。SQL Server从此跟Outlook说“bye-bye”!

 

【1.4】 用SSIS 替换了之前的 DTS。引用了镜像技术。集成SSMS。

具体详细操作参考:【sql server镜像】SQL SERVER 基于数据库镜像的主从同步(数据库镜像实践汇总) ,数据库镜像实践

(1)镜像:就是一个主从复制,从库以restoring 的形式存在不停重做主库的 redo log,但从库不可用,要使用得创建快照。

(2)集成SSMS:单纯就是指安装包里,集成了ssms,一安装直接就有了

【1.5】复制技术、数据库快照、故障转移集群

(1)复制:【查阅】教你使用SQL SERVER复制 

(2)快照:(4.10)快照的概念与使用

(3)故障转移群集:故障转移集群的仲裁(参考:https://www.cnblogs.com/ljhdo/p/5652643.html

故障转移集群,其实就是理解成 集群内的机器,共享一个可以自动转移的VIP对外服务即可。如果当前拥有VIP的主挂了,那么其他机器将接过去 

【1.6】 DMV、表和索引分区、语句级重新编译(解决参数嗅探问题)

(1)DMV:动态管理视图,是sql server系统提供的查询sql server相关信息的视图

 详细参考举例: (4.2)动态管理视图DMV

(2)表和索引的分区:详细参考资料:sql server表水平分区

(3)语句级重编译:(4.13)参数嗅探,基本语句重编译案例演示如下

CREATE PROC NoSniff_QueryHint_Recompile(@i INT)
AS
    SELECT COUNT(b.[SalesOrderID]),SUM(p.[Weight])
    FROM [dbo].[SalesOrderHeader_test] a
    INNER JOIN [dbo].[SalesOrderDetail_test] b ON a.[SalesOrderID]=b.[SalesOrderID]
  INNER JOIN [Production].[Product] p ON b.[ProductID]=p.[ProductID]
    WHERE a.[SalesOrderID]=@i
    OPTION(RECOMPILE)
GO

【1.7】联机索引(with online=on)

参考:(3.3)常用知识-索引使用、维护与填充因子

运行在线操作索引,比如:

create index PK_GMActiveInfo on GMActiveInfo with(online=on)
alter index PK_GMActiveInfo on GMActiveInfo rebuild with(online=on)

 

【1.8】表分区

SQL Server 2005表分区功能,对于SQL Server 2005数据库的新特性之表分区功能,通俗的讲就是相当于把一张表大数据***程度的极细化到多张表上,多个驱动上,但是访问时却还是一样的访问。

详细参考:SQL Server表分区-水平分区     SQL Server2008及以上 表分区操作详解

分区表的管理优势如下:

1、压缩单独某个分区的数据(SQL2008)

2、按分区的统计信息(SQL2014 CREATE STATISTICS 和相关统计信息语句现在允许通过使用 INCREMENTAL 选项创建按分区的统计信息)

3、联机重新生成某个分区的数据(SQL2014 针对联机索引操作事件类的进度报告现在具有两个新数据列:PartitionId 和 PartitionNumber)

4、联机重新组织某个分区的数据(SQL2005)

5、文件组备份和段落还原(SQL2005)

6、CHECKFILEGROUP(SQL2005)

7、交换分区(删除历史数据或归档 或进行ETL)

8、锁升级可以提升到分区锁,而不是直接到表锁(SQL2008)

 

【1.9】文件组、文件组备份、文件组还原

sql server 里的文件和文件组使用

sql server迁移数据(文件组之间的互相迁移与 文件组内文件的互相迁移)

【1.10】部分还原/段落还原(就是先还原备份文件里的某个文件组)

参考:https://www.cnblogs.com/gered/p/12922631.html

--首先备份尾日志:
BACKUP LOG [AdventureWorks] TO DISK =N'D:\BACKUP_TEST\LOG_BACK_TAIL.trn' WITH NO_TRUNCATE ,NORECOVERY,COMPRESSION,STATS=10
--部分还原主文件组PRIMARY:
RESTORE DATABASE [AdventureWorks] FILEGROUP=N'PRIMARY' FROM DISK=N'D:\BACKUP_TEST\AD_FULL.bak' WITH PARTIAL,NORECOVERY,STATS=10
--还原副文件组MST:
RESTORE DATABASE [AdventureWorks] FILEGROUP=N'MST' FROM DISK=N'D:\BACKUP_TEST\AD_FULL.bak' WITH NORECOVERY,STATS=10

 

【2】实际可操作弱的特性

【2.1】服务代理(Service Broker)

  服务代理处理的是以松散方式进行联系的发送者和接收者之间的消息。一个消息被发送、处理和回答,完成整个事务。这大大扩展了数据驱动应用程序的性能,以符合工作流或者客户业务需求。


【2.2】数据加密

参考:(4.23)SQL Server中的加密

  SQL Server 2000没有用来在表自身加密数据的有文档记载的或者公共支持的函数。企业需要依赖第三方产品来满足这个需求。

  SQL Server 2005自身带有支持对用户自定义数据库中存储的数据进行加密的功能。也就是列加密

【2.3】HTTP终端

  你可以很轻松地通过一个简单的T-SQL 语句使一个对象可以在因特网上被访问,从而创建一个HTTP终端。这允许从因特网上呼叫一个简单的对象来获取需要的数据。

【2.4】多活动结果集(Multiple Active Result Sets ,简称MARS)

  多活动结果集允许从单个的客户端到数据库保持一条持久的连接,以便在每个连接上拥有超过一个的活动请求。这是一个主要的性能改善,它允许开发人员让用户在使用SQL Server工作的时候拥有新的能力。例如,它允许多个查询,或者一个查询的同时输入数据。底线就是一个客户端连接可以同时拥有多个活动的进程。

【2.5】专用管理员连接(DAC)

实际操作参考:(4.8)SQL Server DAC——专用管理员连接

  如果所有的内容都出错了,那么只能关闭SQL Server服务或者按下电源键。专用管理员连接结束了这种状况。这个功能允许数据库管理员对SQL Server发起单个诊断连接,即使是服务器正在出现问题。

【2.6】SQL Server综合服务(SSIS)

  SSIS已经作为主要的ETL(抽取、传输和载入)工作替代了DTS(数据传输服务),并且随着SQL Server免费发布。这个工具,从SQL Server 2000开始被完全重新编写,现在已经拥有了很大程度的灵活性,来满足复杂的数据移动需求。

【2.7】在sp1之后,支持自动页修复。允许热插拔内存。 

 

 

参考:一名小小的SQL Server DBA想谈一下SQL Server的能力

推荐阅读