揭秘SQL Server 2008性能和可扩展性(2)

作者:佚名 来源:天极网 时间:2009-03-10 14:47:00 

数据收集器是可扩展的,它支持增加新的提供商。

当配置数据收集器时,会创建一个默认名称为MDW的关系数据库作为管理数据仓库,其中存储收集的数据。这个数据库可以和数据收集器放在同一个系统上,或者放在一个单独的服务器上。管理数据仓库中的对象分为以下三种预配置schema,目的各不相同:

· Core schema 包括用于组织和标识收集到的数据的表和存储过程。

· Snapshot schema 包括数据表、视图和其它对象,用于支持标准的收集器类型的数据。

· Custom_Snapshot schema 使得可以创建新的数据表来支持用户定义的按标准的和扩展的收集器类型创建的收集集合。

性能套件提供了一组强大的预先配置的系统收集集合,包括Server Activity、Query Statistics和Disk Usage,来帮助你快速地分析你收集的数据。你通常使用Server Activity 系统收集集合来开始监控和故障排除。在SQL Server管理套件中发布了一组与每一个系统收集集合相关的报表,你可以将这些报表作为性能状态面板来帮助你分析你的数据库系统的性能,如图1所示。

图 1:一个性能套件报表

数据仓库和分析性能

数据仓库环境必须能够满足数量不断发展的数据和用户需求,并维护最佳的性能。随着数据仓库查询变得越来越复杂,查询的每一部分都必须进行优化以维护可以接受的性能。在SQL Server 2008中,查询优化器可以动态地导入一个最佳的位图过滤器来加强星型模式(star schema)的查询性能。此外,SQL Server 2008支持数据分割、高级索引功能和索引视图来支持更大型的数据存储,还有稀疏列和有效的数据类型,例如VARDECIMAL,它们降低了包含许多 NULL值的大型表所关联的花费(数据仓库的一个普通特性)。

分析服务应用程序需要大型和复杂的计算。宝贵的处理器时间浪费在计算解决NULL 或零的聚合上。在SQL Server 2008分析服务中的块计算使用默认的值,将要计算的表达式的数目降低到最少,并将单元导航限制为整个空间只有一次,而不是每个单元一次,这显著地改进了计算性能。

尽管多维度OLAP(MOLAP)分区提供了更好的查询性能,但是需要回写功能的公司以前都需要使用关系型OLAP(ROLAP)分区来维护回写表。SQL Server 2008增加了对MOLAP分区执行回写操作的能力,这消除了由维护ROLAP回写表所引起的性能下降的问题。

报表服务性能

SQL Server 2008报表服务引擎被重新开发以使用按需处理对报表服务添加更好的性能和可扩展性。报表不再局限于内存,因为现在报表处理使用一个文件系统缓存来缓解内存的压力。报表处理还可以适应于其它消耗内存的处理。

一个新的渲染架构解决了之前的渲染器版本中存在的内存利用问题。这些新的渲染器还提供了一些改进,例如对CSV渲染器添加了一个真实数据渲染器,并支持在Excel渲染器中内置数据块和内置子报表。

集成服务性能

ETL处理常常用来以企业中的数据库源中的业务数据添加和更新数据仓库中的数据。过去,许多公司只需要将历史数据和不常使用的数据恢复到数据仓库中。现在,许多公司想要从数据仓库中获得接近于实时的数据。随着数据量的增加和要求数据仓库刷新频率增加,ETL处理时间和灵活性就变得更加重要了。

数据刷新要求SQL Server集成服务使用查找来比较源记录和数据仓库中的数据。集成服务包括改进很多的查找性能,它降低了包运行时间和优化了ETL操作。传统ETL处理的另一个问题是确定源数据库中的什么数据被修改了。管理员不得不非常谨慎地避免重复已有的数据。一些管理员选择删除所有的数据值重新加载数据仓库,而不是管理已被修改的数据。这使得ETL处理增加了很大的花费。SQL Server 2008具有变更数据捕获(Change Data Capture,CDC)功能来记录对变更表的更新,当数据刷新按计划进行时,这帮助跟踪数据变更和确保数据仓库的一致性。

标签:揭秘,SQL,Server,2008,性能,可扩展性
0
投稿

猜你喜欢

  • Python实现删除重复文件的示例代码

    2022-02-26 03:50:22
  • SQL Server asp.net 数据提供程序连接池

    2009-09-18 08:18:00
  • 浅谈mysqldump使用方法(MySQL数据库的备份与恢复)

    2024-01-20 16:29:23
  • python爬虫爬取网页表格数据

    2023-06-04 08:23:14
  • mysql中合并两个字段的方法分享

    2024-01-21 19:01:44
  • python 将numpy维度不同的数组相加相乘操作

    2022-03-26 06:14:06
  • Python中Requests-get方法的使用

    2021-05-31 08:35:31
  • Python实现多线程抓取妹子图

    2022-10-02 15:39:25
  • Python用户自定义异常的实现

    2023-06-10 10:06:40
  • 基于Python编写一个微博抽奖小程序

    2023-04-02 16:40:00
  • JS如何实现form表单登录验证并使用MD5加密详解

    2024-04-10 10:38:56
  • golang爬虫colly 发送post请求

    2024-02-05 09:35:03
  • 单选的radia,和多选的checkbox如何判定选择?

    2008-11-26 12:29:00
  • python开发的小球完全弹性碰撞游戏代码

    2023-11-01 07:47:11
  • Django DRF APIView源码运行流程详解

    2022-10-29 01:21:44
  • JS学习笔记之数组去重实现方法小结

    2024-04-18 10:57:00
  • PHP 图片文件上传实现代码

    2024-05-09 14:48:53
  • 在linux系统下安装python librtmp包的实现方法

    2021-05-08 21:13:50
  • Python NumPy教程之数据类型对象详解

    2022-03-29 09:05:19
  • python编写接口测试文档(以豆瓣搜索为例)

    2023-09-21 17:39:49
  • asp之家 网络编程 m.aspxhome.com