SQL Server 2008管理和开发的效能

运维 数据库运维 SQL Server
一般而言,企业的资料每年以1.5倍的等比级数成长,而应用资料的方式也一直翻新。这造成对资料平台的稳定性、安全、效率、可扩充性、易管理、好开发、跨平台同步资料…等需求也日益严苛。微软在2008第三季发布了SQL Server 2008,它针对上述需求全面地强化。而本文仅针对执行效率有关的部分进行讨论。

由于现今的资讯系统迈向全面地连接整合(例如标准化与服务导向架构),搜集资料的技术翻新(例如RFID,以及各种的手持移动装置),让资料处理的质与量需求大增。据统计,全世界有30%的资料放在关联式资料库,称为结构化资料。另有70%的资料则以不同的格式存在,例如XML、地理空间资讯、图像多媒体资料、各种格式的档案(如 Office、PDF)…等等。在硬件存储设备大幅提升容量但价格快速滑落的今日,SQL Server 2008 期待可以纳入这些半结构性(semistructure)与非结构性资料(unstructured)。让所有的资料能够在同一平台上,一起控管与维护,例如统一地更新资料、安全权限、高可获得性、检索、分析与报表…等等。

一般而言,企业的资料每年以1.5倍的等比级数成长,而应用资料的方式也一直翻新。这造成对资料平台的稳定性、安全、效率、可扩充性、易管理、好开发、跨平台同步资料…等需求也日益严苛。微软在2008第三季发布了SQL Server 2008,它针对上述需求全面地强化。而本文仅针对执行效率有关的部分进行讨论。

管理方面

以原则为基础(Policy-based)的管理

组合管理条件后,套用到服务器、资料库、资料表...等单位,定期检查或强制施行。在在Microsoft SQL Server 2008 Feature Pack( http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C3E9EF-BA29-4A43-8D69-A2BED18FE73C&displaylang=en)已经提供了许多与效能相关的管理原则,可用以检核相关的SQL Server设定。

保障运算效能与分析

效能资料搜集分析与Management Data Warehouse:集中收集多台 SQL Server服务器执行个体的资料,例如管理或效能资讯(硬盘使用、查询统计、系统效能计数器…等),并产生分析报表。

透过精灵在指定的服务器只行个体建立SQL Server预先定义好、存放系统资料的资料仓储(data warehouse),该资料仓储就是一般的资料库。

在个别服务器执行个体收集到资料后,预设先快取到指定的本机目录下,然后以批次的方式加入集中的Management Data Warehouse内。

Resource Governor与资源管理:Resource Governor是SQL Server 2008新增的功能,即由定义需求可使用的CPU和记忆体资源,以保障服务器的资源不会被少数使用者过度使用。

设定不同的Pool/资源群组,规范该群组可用的资源,如CPU和Memory的比例。以保障资源不会被某些程序耗尽,而其他程序无资源可用。

仅企业版支持,以执行个体为单位。透过以T-SQL撰写的自订函数回传所属群组的名称,将登入的连接(connection)赋予到与先定义好的workload group,不是以特定的查询语法为单位,在自订函数内可以利用Host_Name、App_Name、SUSER_Name、Is_Member、ConnectionProperty 等 T-SQL预设函数来定义商业逻辑,例如哪个应用程式建立的连接,就可使用高/低比例的资源。

如果没有其它连接在第二个群组,则单一群组设定上虽不允许使用100%资源,然因为没有其他比例分配的组群抢资源,则仍可以使用全部资源。

这可提升系统稳定性,但并没有为服务用量计价的机制。

资料压缩

线上资料压缩:针对资料表,分为Row 和 Page两种压缩。压缩资料虽然较耗CPU资源,但提升资料载入记忆体与回存硬盘的效率中,写入硬盘或传递到远端服务器、存储体都比较快,若压缩率好,将因节省了I/O时间而提升整体效率。备份的内容也可压缩,节省硬盘资源,而压缩率会与资料形态有关。

资料库备份压缩

在记忆体备份的内容立即压缩,这会消耗cpu的运算力,但写入硬盘或传递到远端存储体都较快。

预设未启动,而Mirroring 与 Log Shipping 会自动启动压缩交易记录。

压缩率视资料形态、资料库本身是否有压缩以为加密而不同。

只有Enterprise Edition 支援压缩,但压缩的备份可以restore到任意其它版本Hot-Add CPU:服务器可不停机直接增加CPU,SQL Server 执行个体也可以立即采用该CPU。

开发方面

新资料形态,日期和时间形态分开,新增date、time、datetime2、datetimeoffset 等日期格式:

时间与日期分开,在利用「between…and…」取时间间隔时可方便许多,而datetimeoffset资料格式则可以让你记录与时区有关的时间资料。

另外,time、datetime2、datetimeoffset 等形态的资料长度可变动,让你可在精确度与节省空间两者间选择。

旧的时间函数可以使用新的资料形态,并提供新的时间函数以取得更精确的时间。
由于大部分的应用日期和时间是分开的,精确使用date 和 time类型后,在存储时可节省空间,索引也更有效率,且透过T-SQL 存取时,也省掉不必的格式运算。

新索引结构,设定索引的过滤条件(Filtered Index)

对符合Where 条件的值建立索引,例如:建立索引时限制栏位值不可NULL,则针对Sparse Column建出来的索引资料量就小很多。这可减轻于一般新增、修改、删除资料时,因为要维护索引资料所造成的负荷。

因为是对资料子集建索引,整个资料量少,统计的精确度更高,则执行计划的判读将更为精确。

T-SQL 增加Merge语法

与ANSI SQL 2006的Merge定义相容并加以延伸。

比较来源与目的资料后,以一句 Merge 语法同时完成新增、修改、删除等动作。如同单一句 SQL 语法自动含在交易内,透过 Merge 语法所有更新的资料都包在一个交易内,

不像以往需明确定义交易,然后包含多句变更资料的 DML 语法。以往若要同步两个资料表,可能同事要执行 Insert、Delete 和 Update 三句话,两个资料表最少要 Join 比对三次,而 Merge 语法可以对比一次,就完成各种更新动作。

若用 UPDATE FROM JOIN 语法变更资料,若来源端有两笔以上记录对应到目的端,则以哪一笔记录更新将无法推测,Merge 语法则直接回传错误。

SQL Server 2008 与效能相关的议题就探讨到此,希望对你熟悉SQL Server 2008有所帮助

【编辑推荐】

  1. 初探SQL Server 2008的性能数据收集器
  2. 在SQL Server 2008中安装安全审计
  3. 使用SQL Server 2008管理非结构化数据
  4. SQL Server 2008 数据挖掘的概念
责任编辑:杨鹏飞 来源: IT168
相关推荐

2010-07-26 13:47:11

SQL Server

2009-04-16 18:07:39

2011-03-29 13:10:56

SQL Server

2011-05-24 13:39:49

SQL Server

2009-04-16 15:44:10

可管理性SQL Server

2009-02-16 17:18:31

恢复备份模式

2010-07-09 09:46:28

SQL Server

2009-02-25 11:42:43

FILESTREAM文件流文件管理

2009-04-16 17:30:00

可伸缩管理集成

2010-06-28 08:37:58

SQL Server

2009-04-16 17:11:39

管理报表配置报表SQL Server

2011-03-29 12:42:25

SQL Server 高效性

2009-04-16 17:34:19

2009-04-16 17:44:31

2009-04-16 18:15:19

动作审核审核活动SQL Server

2010-06-18 13:01:06

SQL Server

2009-10-13 10:50:58

2009-04-16 17:14:52

2009-04-16 17:55:15

扩展热插拔SQL Server

2010-11-01 06:38:03

Windows Ser
点赞
收藏

51CTO技术栈公众号