用SQL Server 2005构建数据仓库(二)

实际案例一:配置SQL Server 2005 数据库环境 实验目标 掌握通过SQL Server Configuration Manager 配置数据库主要服务启动停止的启动方式。 配置SQL Server和SQL Server Agent为手动方式  (1)单击“开始”   “程序” “Microsoft SQL Sever 2005”        “配置工具”        “SQL Sever Configuration Manager”命 阅读详情

    在上篇中讲述了怎么样创建一个可靠的基础数据仓库,分别从硬件方面、磁盘的配置、SQL Server的配置、Tempdb和数据库配置5个方面进行了详细阐述,在接下来的这篇中,将接着详细讲述一下表的设计相关的一些问题,将从索引策略、索引的分片以及快速载入与查询性能的等方面进行详细阐述。
三.表的设计
       对于数据仓库(它的数据直接被最终用户消费)的物理设计通常有两种方法,第一种方式是保留源数据的三种通常的表格设计。这个设计对操作性的报表很好。在第三方的源码系统的情况下,这种数据库能够满足应用报表。
       第二种方式是空间的设计,这通常作为一个星型或者雪花型的方式提及。这种方法的主要好处是简单而且性能良好。这个模型的简单使得它变得更加容易,并且终端用户掌握和浏览它更加快速。空间数据在相关的设计的性能上能够在实际的测试中被观察到。
       接下来的一个设计问题是实现星型还是雪花型方式的设计。这在过去存在一个具有争论性的辩论,但是雪花型方式获得了越来越多人的支持。传统的对于雪花型的争论是数据模型复杂度和性能缺陷。
       在SQL Server环境中,星型跟雪花型的设计比起来,性能很少是一个大问题。甚至在更大一点的维度,例如客户的维度,来自雪花型设计的结果的更窄的表通常为额外的连接进行了补偿。这个再一次能够在你自己环境中的测试情景中观察到。
1.       声明式的具有参考作用的集成度和限制
在数据仓库中,需要维护在数据集成度和性能需要中的很好的平衡。虽然数据集成度极端重要,对数据仓库的更新通常通过周期性(通常为每日或每小时)的批量ETL过程得到很好的控制。星型或雪花型模型严格上意味着那些低级别的维度表包含一个主键,这个主键是一个代理键。源系统没有它们的代理键的信息,因此它必须在ETL中通过寻找业务键来获得。定义声明式的具有参考作用的集成度很大程度上降低了ETL代码的性能,并且在这种情况下是冗余的。
此外,数据集成度得到了优先权,但是如果更新能够像它们所需要的那样被得到很好的控制,推荐在实际的表和空间的表中,以声明式的外键/主键关系方式出现的具有参考作用的集成度能能够被忽略。
在实际的表中,各项限制也是同样的道理。在维度表中定义的限制更加合理。像PK/FK定义了集成度一样,ETL进程的工作室保证所有被载入数据仓库的数据都是干净的。
注意那些具有参考作用的集成度能够在数据源视图(data source views:DSV)中定义,它允许分析服务和报表构建器在这些内在的关系和明确表达SQL Server的正确的查询之间起到杠杆的作用。
2.       索引策略
正确的索引对SQL Server的数据仓库极其重要。第一种趋势是创建尽可能多的索引来进行方便的动态查询。对使用的索引策略进行周密的设计是相当重要的,为了更完全的懂得在数据仓库中呈现的数据,SQL Server选择帮助索引的方式,以及查询的实质将会是数据仓库的一个问题。而后一项是很难预测的。
(1)      维度表的索引
维度表的索引是相对简单的。即使这个策略偏离了市场,效率低的索引也不会产生极大的影响,因为维度表通常比较小和相对稳定。一个通常的最佳实践是创建一个集群化的、在每一个维度表的代理键的主键。代理键通常是一个IDENTITY列,这常常便利了插入操作。在一个业务键上的一个非集群的索引应该从查询目的考虑,或者如果代理键查找是通过Transact-SQL语句执行的。当使用SSIS来执行查找时,表或者表的子集合将会载入到SSIS服务器的存储器中,并且在一个业务键上的索引通常是没有用的。注意在业务键的一个非集群的索引将不需要实际数据页查找。
(2)      实际表的索引
因为索引的存在并不意味着SQL Server一定要使用它。SQL Server很少使用的索引的创建常常被作为一个入口或者对进程的管理,而不涉及到磁盘资源。
索引创建的一个考虑因素是尽可能紧凑的保持它们。紧凑的索引需要更少的页,从这方面说它提高了性能,特别当具有巨大的实际表时更加如此。
(3)      使用一个灵巧的Date键
为了数据维度,使用smalldatetime数据类型作为代理键是一个有用的技术。这允许你指定直接的数据范围过滤。指定范围直接的断言了实际表的分隔键。这允许SQL Server 2005来消除查询中的分隔。通过在实际的表中指定日期范围过滤器连接数据维度。
(4)      估计索引的使用
在SQL Server 2005中,一个有用的DMV是sys.dm_db_index_usage_stats,它记录了当前的SQL Server运行时各索引的使用次数。
3.       索引的分片
在数据仓库环境中,索引的性能问题能够被忽略。我们已经找到了执行索引维护的客户,因为观察到这儿并没有那么多的批量窗口来支持它!一个索引片段对性能将产生巨大的负面影响。技巧在于通过创建有用的索引来最小化索引的维护工作。并且重新组织那些被分片的索引,这是第一点。
第二点是在没有假设所有索引必须在所有时间重新组织下进行的。小到中型维度的集群索引慢慢的变成分片,因为它们通常通过一个identity列按顺序插入。非集群的维度索引在某种程度上更有问题,但是也更容易重新组织。大型的实际表常常是分区的。所有的索引操作时分开的,包括那些索引的分片和重新组织。
4.       快速载入和查询性能的分离
在数据仓库中表的分离是一个通用的实践,主要是用来方便对大量的实际表进行管理。我们在这小节中聚焦于SQL Server 2005中新表和索引的分离特性。
在这次讨论中,我们假设水平的分离是基于日期的,这对于时间的实际进展是大致平行的,因此对于数据仓库也是一个不错的选择。例如,销售日期在聚焦于销售的数据仓库中将会是一个不错选择。这个想法是选择一个分离的key。虽然维度表能够被分离,但是考虑的时候它们通常过小,所以并不适合分离。
进行分离的好处如下:
l         降低数据库维护操作;
l         提高载入的有效性;
l         查询优化器能够消除实际表的很大的一部分分离;
l         使得数据归档更加方便。
(1)      分离的考虑
确定分离要素要考虑的因素如下:
l         知道数据归档的业务需求;
l         确定在分离表上的查询并行化在一个分离的什么级别。
从当前所讲的这些信息看来,让我们考虑分离策略的一些选项。查询模式在不同的环境中变化非常大,因此有些选项应该仅仅只是作为一个输入来识别你的环境的合适的策略。
(2)      分离的载入
你通常会觉得载入实际的数据比从分离表中载入数据更有效率。如果实际表足够大,因而能够保证分离,如果对分离的表执行操作的话,这通常意味着增加的更新将更加快。既然性能根据环境的不同而有不同,因此在实现前要保证对其进行验证。这个可以通过切换当前的分离块到外部的表或者通过使用一个分离策略来保证。
(3)      联合排列的分割区
在数据仓库中,在所有的分离表中提出一致性的分离策略通常是一个很好的方法。如果没有可能连接这些表,SQL Server优化器能够考虑一个可行的计划。这对于连接的实际表是非常相关的,例如有关销售的和有关投资的数据仓库,它们的报表常常是比较销量和股票投资。
(4)      磁盘分配的分离
一旦分离策略确定以后,你需要确定这些分离物将会如何的在磁盘中布局。这里有两种高级别的方法——为一个文件组映射多样的分离物,或者为它们自己的文件组映射单独的分离物。每一种方法的变化也会在此讨论。
一个单独的文件组的策略的最大问题是所有的分离数据将会在磁盘的相同文件中传播。如果在这个文件组中有多个文件,SQL Server使用一个成比例的填充策略来插入数据。这些不可开拓的数据意味着SQL Server连续的检查可能不太有效。这个策略也显示了在基于分离的备份和粉碎的恢复的适应性。
在它们自己的文件组中映射分离区常常是一种更好的策略。每一个文件组应该有一个单独的文件以便对于邻近的数据是可能的。而这些数据是否真正的邻近决定于它是怎样载入的,或者在每一个文件每一个单独策略中使用单独的文件中,集群索引已经经过磁盘碎片整理程序进行了整理。 
数据仓库开发 SQL 使用技巧总结 特点多路平衡树,m 个子树中间节点就包含 m 个元素,一个中间节点是一个 page(磁盘页) 默认 16 kb;子节点保存了全部得元素,父节点得元素是子节点的最大或者最小元素,而且依然是有序得;节点元素有序,叶子节点双向有序,便于排序和范围查询。优势平衡查找树,logn 级别 crud;单一节点比二叉树元素更多,查询 io 次数更少;所有查询都要查询到叶子节点性能稳定;所有节点形成逻辑有序链表,便于排序查询范围查询。索引优化索引是提升性能主要手段,主要用到的索引基本为以下三种:聚簇索引一般表会用自增主键做聚 阅读详情

相关推荐

sql server下的数据仓库的构建

SQL Server2008/R2 下的数据仓库的构建       本文详细介绍在SQL Server下如何做数据仓库的构建和如何利用数据仓库进行有效的分析,假设读者已经具备相关的理论知识,由于在SQL Server上都是实践过程,因此主要以截图来展示,这样做的好处是读者可直接按照该步骤进行操作,由于之前作者是写在word中的,因此直接截图,好了,话不多说,直接开始。 上面的全部内容是利用数据仓库...

WQ的博客 1万+

SQL Server 2005 中的商务智能和数据仓库

SQL Server 2005 中的商务智能和数据仓库 发布日期: 2005年03月11日 摘要:本文概述了 SQL Server 2005 Beta 2 中“商务智能”平台的增强功能。本文并非实施指南,而是为读者提供了关于“商务智能”平台增强功能的信息。 本页内容 简介 SQL Server2005 Beta 2 入门 关系型数据仓库 ...

weixin_33755649的博客 388

SQL Server2005连接数据库

 一、下载安装1、SqlServer 2005 Express Edition   下载:http://msdn.microsoft.com/vstudio/express/sql/download/   安装完数据库后设置ICP/IP协议启动,具体如下:   (1)打开SQL Server Configuration Manager   (2)转到SQL Server 2005 Networ

weoln的专栏 1600

SQLServer创建数据库

意思为:在系统数据库(select * from sys.databases)中搜寻名字为DB(where name = 'DB')的数据库,判断其是否存在(if exists()),如果存在,则删除该数据库(drop database DB)当然,这仅仅是因为我们现在只是在学习数据库,知道这个数据库中没有什么重要数据才能够这样做的,当我们真正开始工作之后再使用这样的代码就不太合适了,这么草率的删除方式很有可能酿成大错,还望使用时慎重。2.对数据文件进行定义。3.对日志文件进行定义。

NaZiMeKiY的博客 1345

SQL Server 2005 数据仓库实战指南与范例

SQL Server Integration Services(SSIS)是Microsoft SQL Server的一个组件,专门用于数据集成、数据转换和数据移动。SSIS作为一种强大的ETL工具,可以用于构建数据抽取、转换和加载(ETL)解决方案,从而简化数据仓库和数据集市的维护工作。SSIS的优势在于它的灵活性和可扩展性。它支持复杂的转换操作,如聚合、连接、合并、清洗,以及数据的拆分和数据的合并。此外,SSIS的图形化设计使得ETL过程的创建和维护更加直观。

weixin_42509513的博客 1070

SQLSERVER数据仓库的构建与分析(图解)

SQL Server2000环境下,数据仓库的建设以及数据分析图解,比较详细,有兴趣的可以看看!!

用SQL Server 2005构建高性能的数据仓库(一)

http://hi.baidu.com/susan_jony/blog/item/e732e0deef04645cccbf1aa2.html摘要:本文主要讨论当架构一个很大的、高性能的数据仓库,特别是对那种无法预知有多少查询量的系统时要考虑的一些东西。这个讨论包括SQL Server 2005的一些新的特性以及在使用这些特性的时候需要考虑的一些东西。它同时也包括了创建或存储一个聚合的数据集来使

Reasoncool的专栏 1574

建立Microsoft_SQL_Server_2005数据仓库

建立Microsoft_SQL_Server_2005数据仓库

SQL Server 2005的商务智能和数据仓库

摘要:本文概述了 SQL Server 2005 Beta 2 中“商务智能”平台的增强功能。本文并非实施指南,而是为读者提供了关于“商务智能”平台增强功能的信息。  本页内容 免费书籍资料下载    简介 在线手册   SQL Server2005 Beta 2 入门 免费书籍资料下载   关系型数据仓库 相关研究方向   提取、转换和加载 (ETL) 在线手册

-云在青天水在瓶 1088

基于SQLServer2005的数据仓库构建及OLAP多维分析实验

一、背景概述 基于Northwind数据库实现数据仓库构建与OLAP分析 二、准备数据源 三、根据业务需求设计数据仓库 四、使用Integration Services实现数据仓库与ETL 五、使用Analysis Service实现数据分析

SQL SERVER 2017,AdventureWorksDW2017 数据仓库示例库

AdventureWorksDW2017.bak, SQLServer 2017 数据仓库示例库

SQL server 2005数据库的创建和管理

SQL server 2005数据库的创建和管理 在SQL Server 2005中创建和管理数据库的方法主要有两种:一是在SQL Server Management Studi方便的图形化向导创建,二是通过执行Transact-SQL语句创建和管理数据库。 1.使用SQL Server Management Studio创建数据库。 利用SQL Server Management Studio对...

yi_xxxx的博客 3056

SQL Server数据仓库相关概念及构建流程

本文将为大家介绍SQL Server数据仓库相关概念及构建流程。

用SQL Server 2005构建高性能数据仓库

用SQL Server 2005构建高性能数据仓库 摘要:本文主要讨论当架构一个很大的、高性能的数据仓库,特别是对那种无法预知有多少查询量的系统时要考虑的一些东西。这个讨论包括SQL Server 2005的一些新的特性以及在使用这些特性的时候需要考虑的一些东西。它...

diaochejiang2761的博客 217

Win11 24H2共享访问被禁?深入聊聊SMB签名和‘不安全的来宾登录’那点事

本文深入解析Win11 24H2共享访问故障,探讨SMB签名的安全机制与‘不安全的来宾登录’问题。提供从注册表修改到组策略配置的多层次解决方案,特别针对家庭网络和打印机共享场景给出实用建议,帮助用户在安全与便利之间找到平衡。

weixin_42556197的博客 568

STM32F4+FreeRTOS实战:手把手教你移植LWIP2.1.2(含LAN8720配置避坑指南)

本文提供了一份详尽的实战指南,手把手教你如何在STM32F4平台结合FreeRTOS实时操作系统,成功移植轻量级TCP/IP协议栈LWIP 2.1.2。文章重点剖析了硬件驱动层LAN8720 PHY芯片的配置要点与常见“坑点”,并深入讲解了LWIP与FreeRTOS的深度整合、关键配置及稳定性优化策略,旨在帮助开发者构建稳定可靠的产品级嵌入式网络功能。

ik678901234的博客 1063

SQL Server 2005的简单介绍

Microsoft SQL Server 2005系统提供了6个不同的版本,即 –Express版 –工作组版 –标准版 –企业版 –开发人员版 –企业评估版。 经常使用的是前面4个版本   sql2005的安装          在实际安装前,还应该考虑这两个问题:确定安装文件的根目录和确定选用的系统安全模式。这两个问题都与今后的使用息息相关。 安装文件的根目录是Mic

3191

Multisim新手必看:从零搭建数字时钟仿真电路(附完整原理图)

本文详细介绍了如何使用Multisim从零开始搭建数字时钟仿真电路,涵盖晶振电路设计、计数电路实现、校时功能配置等关键步骤。通过完整的原理图和实用技巧,帮助新手快速掌握Multisim仿真设计,实现精准的数字时钟功能。

ios99的博客 328

SQL SERVER 2005 数据库置疑修复

alter database 置疑数据库 set emergency go alter database 置疑数据库 set single_user with rollback immediate go use master go alter database 置疑数据库 Rebuild Log on (name=SuspectDB_log,filename=’D:/Log/置疑数据库_log.LDF’) go alter database 置疑数据库 set multi_user go DBCC CHEC

jackmacro的专栏 7166

晶圆测试(wafer sort)全流程解析:从探针卡到良率统计的实战指南

本文详细解析了晶圆测试(wafer sort)的全流程,从探针卡选型到良率统计的实战指南。涵盖了12英寸先进制程产线的关键技术,包括探针卡系统、测试程序开发、产线自动化集成及数据分析,特别聚焦多站点并行测试的时序优化和接触阻抗异常排查,帮助工程师提升测试效率与准确性。

weixin_29279153的博客 731

yolo 图像检测、关键点检测单摄像头测量物体尺寸长度大小

new_distance/real_size (待求物体像素距离与实际距离比值)= distance / metric_length (参照物像素距离与实际距离比值)然后运行size_demo进行要测量的物体进行关节点检测距离;metric_length是上面耳机选取的两个点的实际物理距离,大概6cm;这里用的windows。通过关键点检测识别物体关键点的像素距离,然后参考比例尺计算实际距离。2)关键点算法这里用的现有的进行测试,实际场景需要自己训练。这里拿这模型推理出的关键点坐标进行后续长度计算。

weixin_42357472的博客 2525
上一篇: 如何从优化SQL入手提高数据仓库的ETL效率
下一篇: 用SQL Server 2005构建高性能的数据仓库(一)
Reasoncool
博客等级 码龄21年 16粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值