编辑推荐
深入介绍SQL Server2008使用方法和底层实现
聆听微软核心开发人员权威论述
SQL Server DBA案头必备
 ;
内容简介
本书涵盖了SQL Server 2008引入的新功能。作者之一Robert E.Walters是微软公司SQLServer开发团队的项目经理,在关系数据库方面拥有多年的相关经验,这让此书内容更具权威性。
与 市面上的其他介绍SQLServer的书籍相比,本书的突出特点是贴近实战且兼顾原理介绍,几乎每章都有可以直接借用的代码和范例,同时对于难以理解之处,也有其实现原理的介绍,使读者知其然,更知其所以然。此外,本书介绍的SQLServer2008策略管理、高可用性、性能、安全等内容,均是企业级数据库必不可少的部分,阅读本书可以详细了解这些技术内幕。
本书面向SQL Server数据库管理员和数据库开发人员,旨在让读者对SQLServer有更深入的理解和全新的认识,成为一个SQL Server数据库管理方面的行家里手。
作者简介
暂无
目录
第一部分 ; SQL Server 概览
第1章 ; SQL Server 2008 概述
1.1 ; SQL Server 2008 愿景
1.1.1 ; 企业数据平台
1.1.2 ; 超关系数据
1.1.3 ; 动态开发
1.1.4 ; 深入的商业洞察力
1.2 ; SQL Server 2008 版本
1.3 ; 服务器整合
1.4 ; 小结
第2章 ; SQL Server 的安装和配置
2.1 ; SQL Server 安装要求
2.2 ; 升级到SQL Server 2008
2.2.1 ; 规划升级
2.2.2 ; 使用升级顾问
2.2.3 ; 执行升级
2.3 ; 小结
第二部分 ; 企业数据平台
第3章 ; 策略管理
3.1 ; PM 解决的需求
3.2 ; PM 组件
3.2.1 ; 管理目标
3.2.2 ; 方面
3.2.3 ; 条件
3.2.4 ; 策略
3.3 ; 示例策略
3.4 ; PM 管理
3.4.1 ; 策略状态
3.4.2 ; PM 安全
3.5 ; 小结
第4章 ; 高可用性
4.1 ; HA 定义
4.2 ; 数据库镜像
4.2.1 ; 数据库镜像的工作方式
4.2.2 ; 用T-SQL 管理数据库镜像
4.2.3 ; 用Management Studio 管理数据库镜像
4.2.4 ; 全文索引和镜像
4.2.5 ; Service Broker 和数据库镜像
4.2.6 ; 客户端程序和数据库镜像
4.2.7 ; 监控数据库镜像
4.2.8 ; 数据库镜像的性能代价
4.2.9 ; 数据库镜像的局限
4.3 ; 数据库快照和镜像
4.3.1 ; 数据库快照怎样工作
4.3.2 ; 用T-SQL 管理快照
4.3.3 ; 在镜像上使用快照时的性能考虑
4.3.4 ; 使用和监控数据库快照
4.3.5 ; 数据库快照的限制
4.4 ; SQL Server 中的Windows 群集
4.5 ; SQL Server 复制
4.5.1 ; 快照复制
4.5.2 ; 合并复制
4.5.3 ; 事务复制
4.5.4 ; 复制和镜像
4.6 ; 减少计划内的停机时间
4.6.1 ; 为运行中的系统添加CPU
4.6.2 ; 为运行中的系统增加内存
4.6.3 ; 执行在线索引操作
4.6.4 ; 为表和索引分区
4.7 ; 小结
第5章 ; 性能
5.1 ; 管理和监控资源
5.1.1 ; 数据收集器
5.1.2 ; 资源调控器
5.2 ; 优化存储
5.2.1 ; 备份压缩
5.2.2 ; 数据压缩
5.3 ; 提高查询性能
5.3.1 ; 计划指南支持
5.3.2 ; ; 稀疏列
5.3.3 ; 列集合
5.4 ; 小结
第6章 ; 安全
6.1 ; 关闭数据库引擎特性
6.1.1 ; 远程连接
6.1.2 ; 专用管理员连接
6.1.3 . NET Framework
6.1.4 ; 数据库邮件
6.1.5 ; SQLMail
6.1.6 ; Service Broker、HTTP 连接和数据库镜像
6.1.7 ; Web 助手
6.1.8 ; xp_cmdshell 扩展存储过程
6.1.9 ; 临时远程查询
6.1.10 ; OLE 自动化扩展存储过程
6.1.11 ; SMO 和DMO 扩展对象
6.2 ; 主体和安全对象
6.2.1 ; 主体
6.2.2 ; 安全对象
6.3 ; 权限
6.3.1 ; 权限类型
6.3.2 ; 权限管理
6.4 ; 代码访问安全性
6.4.1 ; 命令式和声明式CAS
6.4.2 ; 在SQL Server 中使用CAS
6.5 ; SQL Server 2008 审核
6.5.1 ; 在何处写审核数据
6.5.2 ; 审核什么
6.5.3 ; 审核示例
6.5.4 ; 管理审核
6.6 小结
第7章 SQL Server 加密
7.1 加密密钥
7.1.1 服务主密钥
7.1.2 数据库主密钥
7.1.3 非对称密钥
7.1.4 证书
7.1.5 对称密钥
7.2 透明数据加密
7.2.1 启用TDE
7.2.2 比较TDE 和列级加密
7.3 可扩展密钥管理
7.4 不用密钥加密
7.5 散列和签名数据
7.6 安全目录视图
7.7 查询效率
7.8 小结
第8章 自动化和监控
8.1 SQL Server Agent
8.1.1 安排代理作业日程
8.1.2 执行代理作业的权限
8.1.3 代理账户
8.1.4 共享作业计划
8.1.5 记录代理作业步骤的输出
8.1.6 WMI 事件和代理警报
8.1.7 代理性能计数器
8.1.8 代理升级
8.2 维护计划
8.2.1 安排维护子计划的日程
8.2.2 管理维护计划连接
8.2.3 报告和记录维护计划
8.2.4 定义维护计划任务
8.3 SQLCMD
8.3.1 连接到SQL Server
8.3.2 传递变量
8.3.3 使用专用管理员连接
8.3.4 创建脚本
8.4 SQL Server 的PowerShell
8.4.1 PowerShell 简介
8.4.2 使用SQL Server PowerShell
8.5 数据库邮件
8.5.1 配置数据库邮件
8.5.2 发送邮件
8.6 SQL Profiler
8.6.1 关联到性能监控
8.6.2 显示计划
8.6.3 死锁可视化
8.7 扩展事件
8.7.1 扩展事件组件
8.7.2 扩展事件示例:探测死锁
8.8 小结
第9章 Service Broker
9.1 什么是Service Broker
9.1.1 Service Broker 构架
9.1.2 Service Broker 场景
9.2 创建Service Broker 应用
9.2.1 启用Service Broker
9.2.2 创建消息类型
9.2.3 创建协定
9.2.4 创建队列
9.2.5 创建服务
9.2.6 创建Service Broker 存储过程
9.2.7 一个简单的Service Broker示例
9.3 Service Broker 路由和安全
9.3.1 创建分布式的Service Broker应用
9.3.2 分布式Service Broker 的例子
9.4 消息优先级
9.5 使用SSBDiagnose 对Service Broker进行故障检测
9.6 小结
第10章 整合全文搜索
10.1 创建全文检索目录和索引
10.1.1 使用图形化工具创建全文目录和索引
10.1.2 使用T-SQL 创建全文目录和索引
10.2 使用iFTS 查询
10.2.1 FREETEXT 谓词搜索
10.2.2 CONTAINS 谓词搜索
10.2.3 FREETEXTTABLE 和CONTAINSTABLE函数搜索
10.3 管理词库文件
10.3.1 编辑词库文件
10.3.2 重新加载词库
10.4 使用非索引字表
10.5 搜索文档
10.5.1 为文档创建全文索引
10.5.2 查询文档
10.6 管理iFTS
10.7 小结
第三部分 SQL Server 开发
第11章 SQL Server 2008 中的新数据类型
11.1 SQL Server 2008 中对空间数据的支持
11.1.1 GEOMETRY 类型
11.1.2 GEOGRAPH 类型
11.2 时间类型的改变
11.2.1 新的日期和时间数据类型
11.2.2 新的日期和时间系统函数
11.3 新的层次结构数据类型
11.4 文件流支持
11.4.1 启用文件流功能
11.4.2 文件流示例
11.5 小结
第12章 针对开发人员的T-SQL 改进
12.1 DML 特性
12.1.1 弃用旧式的外部连接
12.1.2 公共表表达式
12.1.3 TOP
12.1.4 扩展FROM 子句
12.1.5 OUTPUT
12.1.6 排序函数
12.1.7 EXCEPT 和INTERSECT
12.1.8 别名
12.1.9 MERGE
12.2 一般性的开发
12.2.1 错误处理
12.2.2 .WRITE 对UPDATE 语句的扩展
12.2.3 EXECUTE
12.2.4 代码安全上下文
12.2.5 .NET 声明
12.2.6 声明和设置变量
12.2.7 传递表值参数
12.3 小结
第13章 T-SQL 为DBA 所做的改进
13.1 锁的改进
13.2 元数据视图
13.2.1 兼容性视图
13.2.2 目录视图
13.2.3 动态管理视图和函数
13.3 SQL Server 性能监视器
13.4 DDL 触发器
13.4.1 创建和修改DDL 触发器
13.4.2 删除DDL 触发器
13.4.3 启用和禁用DDL 触发器
13.4.4 使用目录视图枚举DDL触发器
13.4.5 使用eventdata()函数编用DDL 触发器
13.5 索引及其性能增强
13.5.1 联机索引
13.5.2 创建索引期间的锁控制
13.5.3 创建包含额外列的索引
13.5.4 修改索引
13.5.5 使用筛选索引
13.5.6 使用筛选统计信息
13.5.7 统计相关的日期时间列
13.5.8 为第三排序规则排序的性能改进
13.5.9 表和索引分区
13.5.10 使用索引视图
13.5.11 使用分区对齐索引视图
13.5.12 持久化计算列
13.6 快照
13.6.1 SNAPSHOT 的隔离级别
13.6.2 数据库快照
13.7 数据集成的改进
13.7.1 验证数据库页
13.7.2 使数据库进入应急状态
13.8 小结
第14章 .NET 集成
14.1 SQL Server .NET 集成简介
14.1.1 SQL Server 为什么托管CLR
14.1.2 何时使用CLR 例程
14.1.3 何时不使用CLR 例程
14.1.4 SQL Server 如何托管.NET:构架概览
14.2 SQL Server .NET 编程模型
14.2.1 SQL Server 托管的ADO.NET增强
14.2.2 SQL Server 的.NET 命名空间概览
14.3 编写CLR Stored Procedure
14.3.1 开始一个Visual Studio 2008SQL Sever Project
14.3.2 解剖Stored Procedure
14.3.3 添加参数
14.3.4 定义问题
14.3.5 使用SqlPipe
14.3.6 将所有这些组织在一起:编写Stored Procedure 体
14.3.7 测试Stored Procedure
14.3.8 调试Stored Procedure
14.3.9 在CLR 例程中抛出异常
14.4 部署CLR 例程
14.5 小结
第15章 编写程序集
15.1 CLR 用户自定义类型
15.1.1 用户自定义类型的应用程序
15.1.2 添加用户自定义类型到SQLServer 项目中
15.1.3 User-Defined Type 的组成部分
15.1.4 一个简单的例子:PhoneNumber 类型
15.1.5 另一个例子:在StringArray类型
15.1.6 管理用户自定义类型
15.2 CLR 用户自定义函数
15.2.1 添加用户自定义函数到Visual Studio 项目
15.2.2 Visual Studio 2008 User-Defined Function 模板
15.2.3 SqlFunction 特性
15.2.4 标量用户自定义函数
15.2.5 表值型用户自定义函数
15.2.6 管理CLR 用户自定义函数
15.3 CLR 用户自定义聚
15.3.1 添加用户自定义聚合到SQLServer 项目中
15.3.2 用户自定义聚合的组成部分
15.4 CLR 用户自定义触发器
15.4.1 向SQL Server 项目中添加CLR 用户自定义触发器
15.4.2 编写CLR 触发器
15.4.3 管理用户自定义触发器
15.5 管理程序集
15.6 小结
第16章 SQL Server 与XML
16.1 什么是XML
16.2 什么是XPath 和XMLDOM
16.2.1 XPath 语法
16.2.2 XPath 函数
16.2.3 XMLDOM: XML 文档对象模型
16.2.4 XPathDocument、XPathNavigator和XPathExpression类
16.3 XML 存储到数据库
16.3.1 支持SOAP 的SQL Server配置
16.3.2 OPENXML
16.3.3 使用注释XML 模式的XML视图
16.3.4 SQLXML Updategram
16.3.5 XML 大容量加载
16.4 从数据库取出XML
16.4.1 FOR XML
16.4.2 利用模板改善性能
16.5 使用XML 数据
16.5.1 “any”类型验证
16.5.2 日期和时间支持
16.5.3 联合和列表类型
16.6 .NET 和COM中使用SQLXML编程
16.6.1 SQLXML 类
16.6.2 SQLXML 编码示例
16.7 小结
第17章 SQL Server XML 和XQuery支持
17.1 使用XML 数据类型
17.1.1 了解SQL Server 如何存储XML
17.1.2 创建XML 列
17.1.3 为模式创建设置权限
17.1.4 约束XML 列
17.1.5 检查XML 数据类型限制
17.2 在XML 列中插入数据
17.2.1 使用SSIS 插入XML 数据
17.2.2 大容量加载XML
17.2.3 编写自定义查询或应用
17.3 查询XML 数据
17.3.1 XQuery 101
17.3.2 基本XML 查询方法
17.3.3 跨域查询
17.4 修改XML 数据
17.4.1 插入元素
17.4.2 删除元素
17.4.3 改变节点值
17.4.4 XML 修改的限制
17.5 建立XML 索引以提高性能
17.5.1 了解XML 索引如何工作
17.5.2 分析次级XML 索引
17.6 全文搜索和XML 数据类型
17.7 目录视图与XML
17.8 应用与XML
17.9 XML Web 服务支持
17.9.1 创建端点
17.9.2 使用高级Web 服务
17.9.3 监视XML Web 服务的性能
17.10 小结
第18章 LINQ to SQL
18.1 对象关系映射
18.2 实体生成工具
18.2.1 使用SQLMetal
18.2.2 使用Visual Studio 的LINQ toSQL 类设计器
18.2.3 分析生成的代码
18.3 运行LINQ 查询
18.3.1 Select 操作符
18.3.2 Where 操作符
18.3.3 Join 操作符
18.3.4 OrderBy 操作符
18.4 DataContext 类
18.4.1 插入、更新和删除记录
18.4.2 并发性冲突检测
18.4.3 延迟查询
18.4.4 延迟加载
18.4.5 执行存储过程和用户自定义函数
18.5 小结
第四部分 SQL Server 商业智能
第19章 Report Services
19.1 Reporting Service 组件
19.1.1 Report Server Service
19.1.2 元数据目录
19.1.3 BIDS 中的Report Designer
19.1.4 Report Designer Preview
19.1.5 SQL Server ManagementStudio 集成
19.1.6 Reporting Services 配置管理器
19.1.7 Reporting Services 安全性
19.2 创建一个基本报表
19.2.1 启动设计器
19.2.2 使用数据源和数据集
19.2.3 报表布局与预览
19.2.4 使用表达式
19.2.5 部署报表
19.3 报表设计的高级功能
19.3.1 多值参数
19.3.2 选择日期值的DatePicker
19.3.3 交互式排序
19.3.4 Analysis Services 集成
19.3.5 Reporting Services 数据源
19.3.6 自定义报表项
19.4 Visual Studio 集成与ReportViewer控件
19.4.1 使用WinForm 控件
19.4.2 通过编程使用ReportViewer控件
19.4.3 LocalReport 和ServerReport对象
19.5 SharePoint 集成
19.6 最终用户即席查询和报表
19.6.1 报表生成器客户端
19.6.2 报表模型和语义模型定义语言
19.7 报表呈现
19.7.1 导出报表
19.7.2 呈现大报表
19.8 数据区
19.8.1 Tablix 数据区
19.8.2 更新后的Chart 数据区
19.9 小结
第20章 分析服务
20.1 SQL Server 2008 中Analysis Services的新特性
20.1.1 设计工具的改进
20.1.2 监视工具的改进
20.1.3 运行时改进
20.2 Analysis Services 基础知识
20.2.1 体系结构
20.2.2 开发环境
20.2.3 Analysis Services 对象和概念
20.3 OLAP、OLTP 和数据仓库
20.3.1 OLAP 和OLTP 配置
20.3.2 OLAP 概念
20.4 Analysis Services 项目
20.4.1 新建一个Analysis Services项目
20.4.2 定义数据源
20.4.3 编辑数据源
20.4.4 定义数据源视图
20.4.5 定义多维数据集
20.4.6 配置维度
20.4.7 部署项目
20.5 使用多维数据集
20.5.1 查看多维数据集结构
20.5.2 浏览多维数据集
20.5.3 管理显示的数据
20.5.4 执行计算
20.5.5 使用KPI
20.6 使用Analysis Services 脚本语言
20.6.1 创建一个包含命名查询的DSV
20.6.2 查看ASSL
20.7 小结
第21章 集成服务
21.1 SSIS 功能概述
21.1.1 何时使用SSIS
21.1.2 SSIS 的新特性
21.2 SSIS 集成开发环境
21.2.1 在Management Studio 中连接到SSIS
21.2.2 在BIDS 中创建一个新的SSIS 项目
21.3 SSIS 基础知识
21.3.1 SSIS 设计器概述
21.3.2 数据流示例
21.3.3 事件处理程序设计界面
21.4 控制流和数据流设计器任务
21.4.1 控制流容器和任务
21.4.2 数据流设计器任务
21.5 变更数据捕获
21.5.1 启用变更数据捕获
21.5.2 用SSIS 提取变更数据
21.6 日志
21.7 动态包配置
21.8 变量
21.8.1 配置变量
21.8.2 创建变量
21.9 优先级约束
21.10 检查点
21.11 事务
21.12 调试
21.12.1 控制流和数据流可视化调试
21.12.2 数据查看器
21.12.3 断点
21.12.4 其他调试窗口
21.13 SSIS 包处理
21.13.1 SSIS 包部署实用工具
21.13.2 迁移SQL Server 2000 DTS包
21.13.3 调度SSIS 包
21.14 小结
媒体评论
“本书名副其实,是一本深入SQL Server 2008的好书。书中介绍的SQLServer管理特性,正是我工作中需要用到的。我会一直把它放在书架上的。”
“作为一本深入介绍SQL Server 2008的书,它帮我轻松实现从SQL Server 2000和SQL Server2005到SQL Server 2008的升级工作,使我能集中精力探索其他新功能。”
免费在线读
SQL Server 2008概述
S
QL Server的上一个版本SQL Server2005是一个重要的发行版本,具有大量新功能,例如数据库引擎中重新修订过的主查询处理组件。SQL Server2008的开发周期大大缩短,变化相对没有那么大。尽管从整体上看,变化的数量少于SQL Server2005,但这个版本中依然包含了非常具体和重要的改进,并且这些改进对你肯定非常有用。
近年来,数据爆炸已成为一种趋势。这种大规模数据量的增加,可以归因于消费者和商家行为的变化。从消费者方面来说,数码相机就是一个最好不过的例子。利用数码相机,你可以从上千个角度拍摄你最喜爱的景物,而无需担心胶片和冲洗的成本。所有这些数码照片占据了廉价的磁盘存储空间,但需要加以管理以方便搜索。再举一个例子,考虑一下医疗卫生行业在其日常运作中所产生的数据量。X光检查的结果以数字方式建立和存储,使得其更易携带和快速查看(医生无需等待管理员从病例库中取得病人的记录)。
近年来数据量的增加也付出了一定的代价,但就像一些人预测的那样,这代价并不仅是硬件成本。虽然存储产品的价格年年都在降低,但是数字化数据的增长已经滋生了潜在的数据窃取问题。由此增加的安全风险,加上新出台的法律法规(如2002年通过的《萨班斯—奥克斯利法案》),影响了SQLServer中的安全功能。安全设计已成为实现SQL Server每个功能的核心需求,SQL Server2008也同样如此。审核和透明数据加密等大部分安全相关的改进都将在第6章和第7章中讨论。
1.1 SQL Server 2008愿景
SQL Server2008由愿景(Vision)驱动,这个愿景中包含了4个主要理念:企业数据平台、超关系数据、动态开发和深入的商业洞察力。虽然有些人可能会认为这些引人注目的字眼仅仅是营销炒作,但它们对于产品开发团队却有着相应的意义。
微软改变了设计和开发SQLServer的方式。特定的用户需求源于这些核心主题,并最终在产品中实现了这些需求相关的实质改善,其成果就是着眼于关键缺陷和行业趋势的高品质的版本发布。在这里,我们会描述一下每个理念并讨论其中一些关键功能。在后面的章节中会进一步讨论这些功能以及其他许多功能。
1.1.1 企业数据平台
SQL Server被列为一项企业级的数据库产品,不仅意味着它能够非常快地返回查询结果。一个企业级的数据库,必须符合由使用SQLServer的组织制订的严格的服务级协议。SQL Server2008在支持高端服务级协议方面已做了改进,例如能够热添加(hot-add)CPU。管理员也会发现安装和管理群集节点设置要容易很多。更多有关SQLServer安装和配置的信息将在第2章中讨论。
作为一个企业数据平台,必须保证数据库中存储的数据是安全的。SQL Server2008持续构建其安全性功能。举例来说,它使数据库文件能够使用透明数据加密进行自动加密。对于微软来讲,加密的重要性显而易见,这使得HSM(HardwareSecurity Module,硬件安全模块)和EKM(Enterprise KeyManagement,企业密钥管理)厂商能够与SQL Server 2008中支持的加密功能进行本地集成。用SQLServer加密数据并且将加密过的密钥存储在数据库中是安全的,但是更为安全的方案是将加密密钥与实际数据分开存储,这就是HSM和EKM方案的价值所在。
对于一个企业级数据库(enterprise-ready database)来说,性能一直是一个关键属性。SQLServer中的数据采集器功能帮助DBA收集性能相关的数据,并将其存储在数据库中。这可以是任何数据,如性能监视器的计数器、数据库管理视图的结果和特定的查询。将性能数据存储在数据库中会使数据挖掘和报表生成更加简单,这正是数据采集器的主要益处之一。该功能的详细信息将在第5章中讨论。
SQL Server 2008中许多的新功能使SQLServer成为了企业数据平台。这些功能将在本书的第二部分中详细讨论。
1.1.2 超关系数据
数据平台中的数据不仅仅是关系型数据。随着数据增长的加快,存储的数据类型已不再是传统的和我们所熟悉并喜欢的整型、字符型和二进制值型。对于用户来说,有许多非常重要的新出现的数据结构,包括电影文件、音频文件和医学图像等。我们不仅要存储这些新类型的数据,而且还希望能够针对这些数据执行有用的操作,例如建立索引和对元数据进行检索。
SQL Server2008中引入了一项被称为文件流(filestream)的功能,这个功能可以将任意大小的文件存储在文件系统中,并在数据库中管理它们。这一能力使数据库应用超过了2GB的限制。我们可以把大量的二进制数据直接存储在SQLServer中,并可直接查询文件系统而不是使用T-SQL查询,从而获得更高的检索性能。文件流将在第11章中详细讨论。
SQL Server2008还支持空间数据类型,这符合OpenGIS标准,它可以容易地管理全球定位系统(GPS)和地理信息系统(GIS)相关的数据。原生的空间数据支持,使得与空间应用程序(例如微软的VirtualEarth)协同工作时更容易、更有趣。空间数据支持将在第11章中讨论。
1.1.3 动态开发
如果没有广大开发人员的支持,如SQLServer这种平台性产品恐怕早就衰亡了。微软在其所有产品中,一直都高度重视开发人员的生产力,SQL Server2008也不例外。
SQL Server2008中包括T-SQL语言的改进(参见第12章),以及新的日期和时间数据类型(参见第11章)。以对现有类型进行补充。SQLServer本身也努力与LINQ相集成。LINQ提供了高层次的数据抽象,简化了编写针对不同数据源的代码。LINQ及其与SQLServer的关系将在第18章中讨论。
1.1.4 深入的商业洞察力
自从SQL Server 7.0中开始包含OLAP(Online AnalyticalProcessing,联机分析处理)以来,微软不断追求一种自服务的业务智能模型,其原理是允许一个普通的雇员很容易提出一个业务智能问题并获得满意的结果,而不需要去求助各个层次的DBA和报表开发人员。在SQLServer的各个发布版中,我们逐渐看到了更多的工具和功能来帮助人们完成此项工作。
业务智能的核心是SQL Server AnalysisServices,其中的新功能包括改进的Cube、维度和特性的设计器。这些设计器以及AnalysisServices中与监测、分析和性能调优相关的核心改善,使得越来越多的行业分析师会首选微软的业务智能引擎绘制分析图表。第20章将介绍Analysis Services。
为了使 Analysis Services有效地挖掘数据,它需要一款优秀的ETL工具。SQL Server IntegrationServices(在SQL Server2000中取代了数据转换服务)一直在不断改进中,增加的功能有缓存转换、增强的查找转换、数据剖析和一组扩展的数据源类型等。这些令人兴奋的更新将在第21章讨论。
过去几年中微软收购了几家报表公司。部分收购产品(例如Dundas及其图形报表控件)已经体现在了SQL Server2008的Reporting Services中。ReportingServices引擎同样也升级了,它不再依赖IIS(Internet Information Server)。第19章介绍SQLServer 2008中的Reporting Services。
1.2 SQL Server 2008版本
在编写本文时,SQL Server 2008的版本基本上与SQL Server 2005的可用版本一样。有5个主要的SQLServer 2008版本可供选择。
?企业版。这个版本主要用于关键业务、OLTP(大型联机事务处理)、大型报表系统、数据仓库和服务器整合需求。企业版比标准版多了60多项功能,其中一些功能足以吸引那些总是说标准版已经够好的人。举例来说,仅在企业版中包含的功能有数据和备份压缩,使用扩展事件的审核和资源调控器等。SQLServer 2008标准版和企业版功能上的差距远远大于SQL Server 2005中两个版本的差距。
? 标准版。此版本主要用于部门级别的应用以及中、小型的OLTP负载。标准版包含了SQL Server ReportingServices中的主要功能,这些功能非常强大,足以构建优秀的报表和分析服务器。
? 工作组版。此版本包括基本的SQLServer关系型数据库的功能,以及部分复制技术。工作组版非常适合多分支机构的办公应用,同时也能方便不同地区的服务器进行远程同步操作。工作组版比标准版便宜很多。
? Express版。这是免费的SQLServer版本。此版本是学习和构建桌面和小型服务器应用以及再分发应用的理想版本。虽然有很多企业版的功能被禁用了,但实际的SQLServer运行时的二进制代码(sqlservr.exe)是基于SQLServer企业版的代码构建的(其他的版本也是如此)。因此,Express版是一个有着很高价值的、稳定的和高性能的数据库引擎。
? 精简版。这是另外一个免费的SQLServer版本,它是一个嵌入式数据库。精简版理想的使用案例是构建运行在移动设备、台式机和客户端上的独立和偶尔连接的应用程序。
注解 开发版和评测版有着与企业版相同的功能,但有特别的授权限制。例如,微软不允许在生产服务器上运行开发版。
1.3 服务器整合
目前,在我们许多人工作的公司中,最新的降低成本的倡议是服务器整合。这一新的行业术语最近备受关注。很高兴告诉你,SQL Server2008中有一些功能有助于组织决定是否进行整合。
如果我们看一下为什么公司要进行整合,会发现这种努力背后的两个关键动机。
?降低成本。整合通过减少软件许可证费用、技术支持成本以及最终的硬件开支来降低成本。使用的服务器的数量越少,产生的热量、消耗的电力就越少,也就越环保。
? 降低服务器管理的复杂度。由于SQL Server是一种低成本、企业级的数据库平台,大量的应用软件厂商将SQLServer作为其解决方案的一部分。这一趋势,加上SQL Server在企业中作为组织的关键数据库而产生的扩散,导致了SQLServer应用的扩张。当这种扩张失控时,管理员就不知道实际部署了多少SQLServer实例,也不知道某个数据库位于哪里。扩张加大了管理、保障安全和进行更新的难度。服务器整合可以减少这种扩张。
既使你已经被服务器整合说服,也应该注意你不应该仅仅因为这样做的一些好处就实施服务器整合。如果某些方面做错,整合也会使事情恶化。有些应用在整合环境下无法正常工作,你必须确保在将整合服务器投入生产应用之前,已进行了适当的测试。
当我们谈到服务器整合和SQL Server时,将SQLServer实现采用的硬件和操作系统分开讨论是非常重要的。从硬件方面来看,根据硬件厂商的产品,服务器可以通过设置,将内存和CPU资源分开来运行不同的操作系统。某些操作系统有内置的虚拟化能力,如WindowsServer2008和Hyper-V技术。Hyper-V可以在一个物理服务器上创建多个独立的虚拟机器(VM)。利用Hyper-V,你也可以在一个服务器上并行、高效地运行多个不同的操作系统——Windows、Linux和其他操作系统。WindowsServer2008这一令人兴奋的新技术与VMWare在虚拟化市场展开了竞争。如果你对通过Windows环境下的服务器虚拟化实现整合感兴趣,可以登录http://www.microsoft.com/virtualization/default.mspx查看大量的信息。
从数据库应用的角度来看,SQLServer整合意味着将多个数据库整合在一台服务器实例上,或者在多个物理服务器间整合多个服务实例,整合后的服务器数量会少于目前组织所拥有的服务器数量。
一般来说,整合能减少组织需要的服务器和软件许可证的数量。组织最终会将多少数据库运行在每个实例上,以及将多少实例运行在一台服务器上,完全取决于该组织的架构、需求和每个数据库的限制。
整合可能会有一些副作用。考虑一下我们整合两个服务器实例为一个的情况,如果这些实例中的每一个都有着不同的用户,我们可能在合并中会不经意地提升一些用户账号的权限。考虑如下情况:服务器实例1的sysadmin没有权限访问服务器实例2。但当两个实例合并后,服务器实例1的sysadmin却可以访问服务器实例2里的内容了。在安全术语中,这是特权提升的一个典型例子。鉴于这个例子,如果设计不当,整合不仅增加了磁盘I/O的性能需求,也会造成一些安全方面的问题,了解这一点是非常重要的。
你需要意识到,整合的最终架构和设计仅仅是整体整合努力中的一部分。根据你在组织中的职责范围,有几个关键问题你可能需要处理。也许其中最重要的问题是,整合需要组织各个部分的支持。整合需要一位管理层的支持者来帮助推动高级管理层在财政上的支持。整合还需要最终实施者的支持。对一些人来说,整合意味着丢工作的可能,在某些罕见的情况下这可能是真的。不过,在大多数情况下,整合使DBA有更多的时间解决组织面临的更具挑战性的问题。需要管理的服务器越少,日常的数据库维护工作所需要的时间就越少。
除了获取支持之外,如果你是一名经理,你需要确保为整合分配足够的时间。适当地规划和执行都需要时间,而且大部分DBA通常无法抽出用于整合的空闲时间。
如果你对整合感兴趣或目前正参与整合,可以了解一下SQL Server2008中的资源管理器和策略管理功能。资源管理器将在第5章中详细讨论,它让DBA可以限制用户或应用程序可以使用的SQLServer资源,例如内存和CPU的利用。资源管理器可以防止失控的查询干扰整个SQL Server实例,而且SQLServer整合也可以从这个功能中直接受益。
PM是另一个在整合时应当考虑使用的功能。PM将在第3章中详细讨论,它允许DBA定义策略并在他们所管理的SQLServer实例中强制实行这些策略。例如,想象有一个策略,强制执行组织中所有服务器上的资源管理器设定。假设这个策略对遵守公司IT部门制订的服务水平协议来说是必需的,那么如果另一个管理员想要调整他的服务器,以为他自己的查询获取更多的CPU带宽,就会被拒绝进行调整。除整合之外,PM还保障了很多的应用情景,包含安全、命名一致性和其他领域。投入一些时间学习PM是很值得的。
1.4 小结
SQL Server2008包含了一系列针对可扩展性、性能、可用性、安全性和可管理性的改进。请记住,本书中提到的一些改进是针对多个需求的。数据压缩是一个最好的例子(在第5章中讨论),它可以压缩存储在表中的数据。当在业务智能情景中使用数据压缩技术时,最大的好处是节省磁盘空间,因为用于分析处理的数据库往往有许多重复值和NULL值。因此,此功能在介绍AnalysisServices的章节(第20章)中也会讨论。
本书基于功能完整的SQL Server2008二月社区技术预览(CTP)版。正如所有没有正式发布的产品一样,本书中展示的用户界面截图在最终发布的版本中可能会有一些细微的变化。
……
深入SQL Server 2008 pdf下载声明
本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版