SQL Server 2000 数据仓库中使用分区之分区的优点

数据库 SQL Server 数据仓库
以下的文章主要描述的是在SQL Server 2000 数据仓库中使用分区之分区的优点,下面就是文章的主要内容的详细解析。

下面的文章主要介绍的是在SQL Server 2000 数据仓库中使用分区之分区的优点,SQL Server 2000 数据仓库中使用分区在实际操作中是经常出现的,如果你对其相关知识有兴趣了解的话,你就可以浏览以下的文章了。

分区视图主要是联接来自一组成员的水平分区的相关数据,使数据看起来象来自同一张表。SQL Server 2000 区分本地分区视图和分布式分区视图。

在本地分区视图中,所有相关表和视图驻留在 SQL Server 的同一实例上。在分布式分区视图中,相关表中至少有一张表驻留在其他某个(远程)服务器上。建议您不要将分布式分区视图用于数据仓库应用程序。

矢量SQL Server 2000 数据仓库围绕事实(标量)和矢量构建,从物理上通常表示为星形架构和雪花形架构,极少有同时包含事实和矢量的完全非正交化的平面表。由于矢量架构是最常见的关系型数据仓库结构,本文集中讨论这类架构的分区。下面的建议也适用于其他通用数据仓库架构。

分区的优点 :

数据修剪:

许多数据仓库管理员会定期将陈旧的数据归档。例如,一个单击流SQL Server 2000 数据仓库可能只将详细数据联机保留三至四个月。其他常见的规则可能是联机保留 13 个月、37 个月或 10 年,当旧数据不在活动窗口中时就归档并从数据库中删除。这种滚动窗口结构是大数据仓库通常采取的做法。

在没有分区表的情况下,从数据库中删除旧数据的进程需要一个很大的 DELETE 语句,例如:

DELETE FROM fact_table WHERE date_key < 19990101

执行该语句开销会非常大,可能比同一张表的加载进程需要更多的时间。相反,对于分区表,管理员重新定义 UNION ALL 视图以排除最旧的表,然后将该表从数据库中删除(假设已确保备份该表),这个过程几乎可以在瞬间完成。

后面我们会讨论到,维护分区表的费用也很高。如果数据修剪是采用分区的唯一原因,设计者应考虑以数据分解的方式从未分区的表中删除旧数据。在低优先级进程上连续运行一个每次删除 1000 行(用“set rowcount 1000”命令)的脚本,直至删除所有希望删除的数据。该技术可在大系统上有效运用,比创建必要的分区管理系统更为直接。根据加载量和系统使用状况,该技术适合于某些系统,并应该考虑在系统上进行基准测试。

加载速度:

加载数据最快的方法是将数据加载至空表或没有索引的表。通过加载至较小的分区表,渐变加载进程的效率将大大提高。

可维护性:

一旦已建成支持分区的SQL Server 2000 数据仓库分阶段应用程序,整个系统将变得容易维护。维护活动(包括加载数据、备份和还原表)可以并行地执行,这样可以极大地改善性能。渐变填充下行数据流多维数据集的进程可以被加速和简化。

查询速度:

查询速度不应该作为对数据仓库关系型数据库进行分区的理由。对于分区和未分区的事实表,查询性能都差不多。在正确设计的分区数据库中,关系引擎仅在查询计划中包括解析查询所需的相关分区。例如,如果数据库按月分区,查询条件为 2000 年 1 月,则查询计划仅包括 2000 年 1 月的分区。结果查询将对分区表正确执行,与在分区键上带有簇索引的已索引合并表上执行的大体相同。

【编辑推荐】

  1. 配置Tomcat+SQL Server2000连接池流程
  2. 正确分析MS SQL Server函数的2种用法
  3. SQL Server Model增加一些变化,很简单!
  4. 易混淆的SQL Server数据类型列举
  5. SQL Server 2000的安全配置流程与基础

 

责任编辑:佚名 来源: SQL Server 2000 数据仓库
相关推荐

2010-07-21 15:01:09

SQL Server

2010-07-21 14:55:48

SQL Server

2010-07-21 15:16:08

SQL Server

2010-07-20 09:26:17

SQL Server

2011-08-25 18:09:36

SQL Server创建数据仓库已分区表

2009-01-18 17:52:15

数据仓库SQL Server数据库

2011-01-18 09:51:59

Linux磁盘分区

2010-10-11 10:44:22

MySQL分区

2010-09-13 11:09:34

SQL SERVER分

2010-11-10 14:47:11

SQL Server创

2011-03-21 10:13:31

Sql Server数分区

2010-05-11 18:23:31

MySQL数据库分区

2010-06-30 08:20:05

SQL Server

2010-05-13 10:00:10

SQL Server

2010-11-10 14:35:17

SQL Server创

2009-02-24 12:14:27

微软SQLServer20数据仓库

2009-02-25 08:56:26

数据仓库SQL Server SQL Server

2021-06-29 20:51:16

大数据框架分桶

2017-04-24 09:20:05

Spark分析分区器

2015-07-20 17:05:38

SQL ServerNULL值
点赞
收藏

51CTO技术栈公众号