当前位置:文档之家› 用SQL Server 2005构建高性能数据仓库

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

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

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

摘要:本文主要讨论当架构一个很大的、高性能的数据仓库,特别是对那种无法预知有多少查询量的系统时要考虑的一些东西。这个讨论包括SQL Server 2005的一些新的特性以及在使用这些特性的时候需要考虑的一些东西。它同时也包括了创建或存储一个聚合的数据集来使得主流的查询和报表更加容易。

一.介绍

有一些具有访问数据权限的“超级用户”已经学会了专业的Transact-SQL。SQL Server 2005 报表服务(SSRS)中的报表构造器的便利性扩展到了强大的Transact-SQL查询的创建,使得更多的用户使用它时更加容易。他们这种消耗系统资源的能力是无法超越的,在保持一致的性能方面对数据库管理员(DBA)构成了挑战。但是,当SQL Server的分析服务(SSAS)被提及的时候,需要用不可预知的方式访问数据的用户可能感到他们的查询效率受到阻碍。因此,你怎样使得你的商业用户查询到他们所需要的东西,也跟给予他们性能很好地查询以及始终满足服务级别的协议(SLA)一样重要。

在过去的几年中,大量的信息都是围绕数据仓库和商业智能(BI)开展的。很大一部分信息聚焦于构建一个数据仓库或者数据市场来满足或者超过与制定策略决定相关的商业目标。随着SQL Server 2005的发布,1000GB范围内的相关数据仓库的实现在它附加的功能中提供了支持。这份白皮书说明了在SQL Server 2005上用一个性能的视角架构一个相关的数据仓库或者数据市场时包括的最佳实践。

在这份白皮书中也讨论了围绕硬件选择方面的一些显而常见的问题、SQL Server实例和数据库配置和table/index的设计,它还介绍了为了交付一个数据市场或数据仓库来平衡查询性能时的整体的策略。

相关的数据仓库的性能常常在更新数据库和查询时感觉到。更新操作需要对新的数据进行更多的提取、转换和载入。DBA有责任尽可能更有效率的设计和维护数据库。查询操作也以很多种方式出现,例如终端用户的查询、报表服务等。既然分析服务在各种查询中是最可预测的,白皮书主要聚焦于对相关数据库仓库的直接的查询。

在继续讲之前,我们对已提及到的一些东西做一些假设。用来存储信息的一些相关的数据仓库通常是非常大的。数据仓库和数据市场常常被可替换的使用。但是,数据仓库更多的跟信息在所有的企业的信息存储有关。这些数据被清空,并且是以一种正常的方式和很少的直接查询。相反,它常常使用一致的数据源来为一种或多种面向主题的数据仓库直接的服务用户。在数据市场中的数据虽然能够以各种方式来设计,但是常常是用一种空间的方式。在工业中,“数据市场”结合在一起变成了“数据仓库”。

但是,从一致性方面考虑,在这份白皮书中,我们使用“数据仓库”这个概念作为包含数据市场的一个通用的概念。

这份白皮书假设读者已基本熟悉数据仓库的概念、空间建模、SQL Server 2005表的分离以及索引化的视图。其中很多的查询结果比较测试是在项目REAL的数据库中进行的。项目REAL是一个在SQL Server 2005上的真实的数据仓库的参考实现。

二、创建一个可靠的基础

创建一个高性能的数据仓库的关键是懂得那些数据,以及知道用户是怎样查询数据库的。后者常常有着很大变化,因此很有必要根据查询模式的改变来持续的进行一些调整。有一些基础组织的决定对系统的性能产生巨大影响。

1. 硬件方面的考虑

硬件方面的决定常常做得早于系统的任何一个重要的方面。为相关的数据仓库选择硬件是很具有技巧的一件事。这对于满足那些超级用户的报表需求变得更加常用。

64位的平台因为它的可扩展的存储架构给数据仓库提供了很多的优点。数据仓库支持读取GB级和TB 级数据级的存储要求。这种平台消除了32位的平台上的一些顾虑,但是又具有32位平台的所有优点。对于数据仓库来说更加是这样,因为数据仓库存储和查询非常大的数据库。

在选择64位平台时,还需要考虑是使用x64还是IA64。做考虑之前需要考虑很多因素。在SQL Server 中完全支持x64,并且为数据仓库提供了很多好的选项。目前,IA64硬件提供更多的可量测性,但是x64平台很快赶上了它。记住IA64是完全不同的一种芯片结构(它支持数据仓库中常见的平行化和改善计算逻辑)是非常重要的。既然这两种芯片架构很快的发展,因此最好还是好好地学习一下当前的提供情况。在TPC的网址(https://www.doczj.com/doc/7813738607.html,/tpch/results/tpch_perf_results.asp)上提供了参考。

除了芯片架构之外,处理机的数量和速度也是很重要的一个方面。数据仓库需要很大数量的平行化的需求,这与处理器的速度和时钟速度是有很大关系的。在实现数据从仓库之前很难估计实际的需求。一个很好的方法是不仅仅确立一个开始的基线,也要识别硬件和架构。

2. 磁盘的配置

数据仓库的磁盘的配置也是很重要的一个因素。数据仓库动辄就需要TB级的I/O操作。如果这些信息恰好很少查询,I/O在我们的环境中将会是一个很大的因素。I/O仍然是硬件系统中的一个最慢的方面,因此为了能够正确的购买和配置磁盘子系统,需要进行周密的计划。存储范围网络(Storage Area Network:SAN)仍然是大型数据库(例如数据仓库)的一个理想的选择。在考虑SAN时需要考虑不同的文件类型(tempdb、数据文件和日志文件等)的特征,以便磁盘子系统能够得到正确的设计。磁盘配置的一些基本的最佳实践如下:

(1) 创建更多的SAN磁盘组来支持来自SQL Server的多重的和平行的I/O。每一个磁盘组由不同的磁盘数组组成并且基于数据的类型(工作的数据、历史数据、日志和Tempdb)配置;

(2) 考虑SAN卖方基于I/O等级的推荐;

(3) 为了保证在每一部分失败时能够恢复的分离,需要将数据和日志文件放在不同的磁盘组中进行;

(4) 将tempdb数据文件和日志文件放在不同的磁盘组中;

(5) 保证数组从大数量的物理磁盘中构建,但是没有充满在控制器中;

大表通常经历了大范围的读取,从大数量的磁盘到均匀的分配I/O。

当定义RAID需求的时候,OLTP的对于数据仓库环境的一些最佳实践派上了用场。Tempdb是一些重要的数据库,这些数据库必须与在RAID序列的其他的数据库文件分开存放。

当你架构一个数据仓库的时候,需要富有创造力的考虑这些数据。特别是当你具有OLTP背景的时候。记住,即使数据库巨大,也很少一部分是很规则的被更新。

为了决定创新性的架构需要看看用户的查询需求。

网络需求常常有很大不同。虽然查询能在很大数据范围内得到过滤,返回给客户端的最终结果集常常是很小的。当一个分离的应用程序在相关的数据仓库和终端用户数据之间被插入时会发生异常。这个应用程序可能是OLAP服务器,例如分析服务等。这些应用程序趋向于从SQL Server中请求大数量的数据,在两个服务器见请求高速度的网络连接。

3. SQL Server的配置

一旦购买了合适的硬件,为了充分的发挥SQL Server的潜能,对其进行配置变得很重要。SQL Server 是被设置为自和谐的,因此,在很多情况下,要做的事情只是留下不同的配置值。但是这个规则中也有一些例外的情况,例如在数据库布局方面的一些建议等,这些在本小节中将进行讲述。

将数据仓库的服务器与其它的应用程序或数据库共用一个服务器是不明智的。资源利用的不一致使得很难对应用程序数据库提供一致的性能。

首先考虑一些存储器的配置。在很多情况下,通常选择的是64位的平台,因为相关数据仓库的存储量的高需求。

AWE(Address Windowing Extensions)能从逻辑上增加32位平台的存储条,但是它引入了存储映射,这在64位平台上是被避免的。

“Max Degree of Parallelism”选项告诉SQL Server在一次单独的查询执行操作中平行化程度的最大程度。默认值0告诉SQL Server在运行时才决定其值。当一个平行化的计划为了一个查询产生时,查询优化器基于当前在运行时所获得的处理器决定。

一个经常被忽略的SQL Server选项是“query governor cost limit”,这个属性表示当查询超过多少时将拒绝执行。默认值0表示所有的查询都将被执行。

CPU和I/O也常常由SQL Server实例指定。不像在服务器上的共享服务资源的其它应用程序,它们必须不使用。这个配置在一些很小的数据仓库中是强烈推荐不使用的。

4. Tempdb

tempdb数据库是数据仓库中的重要组件。数据仓库查询趋向于执行分组的、排序的和聚合的大数量的行。依赖于存储资源、索引和查询结构,很多需求是在tempdb上的。

配置tempdb的第一步是尽可能的将其置于最有效的磁盘上。

第二步是为tempdb确定一个合适的磁盘容量,使得其能够在查询环境中适应。

5. 数据库配置

(1)锁

数据库锁为了数据库的一致性而使用,保证数据更新操作是原子的、一致性的、隔离的和持久化的。数据一致性的概念仅仅在更新发生的时候使用。

(2)及时的文件初始化

SQL Server 2005能够通过及时的文件初始化的方式快速的创建或者增加数据库的大小。及时的文件初始化也对数据库文件的自动增长有用。但最好还是决定一个大小。

(3)自动收缩

关闭自动收缩通常是一个最佳实践。如果新的业务需求降低了需要保持的大量数据,数据库能够手动的收缩。关闭自动收缩阻止了数据库在数据存档后的收缩。

(4)自动更新统计

在一个数据仓库中的批量更新很少触发过时的统计。在SQL Server 2005中,统计能够异步的更新,并且查询能够触发它们同时在老的统计中编译和运行。这意味着在老的统计中的查询编译,常常已经足够好。这时候推荐打开“自动更新统计”。

(5)磁盘布局

对磁盘上的表进行布局的最佳实践是仅仅对系统对象使用主文件组,并且为剩下的项使用显示定义的文件组。

在上篇中讲述了怎么样创建一个可靠的基础数据仓库,分别从硬件方面、磁盘的配置、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。虽然维度表能够被分离,但是考虑的时候它们通常过小,所以并不适合分离。

进行分离的好处如下:

?降低数据库维护操作;

?提高载入的有效性;

?查询优化器能够消除实际表的很大的一部分分离;

?使得数据归档更加方便。

(1)分离的考虑

确定分离要素要考虑的因素如下:

?知道数据归档的业务需求;

?确定在分离表上的查询并行化在一个分离的什么级别。

从当前所讲的这些信息看来,让我们考虑分离策略的一些选项。查询模式在不同的环境中变化非常大,因此有些选项应该仅仅只是作为一个输入来识别你的环境的合适的策略。

(2)分离的载入

你通常会觉得载入实际的数据比从分离表中载入数据更有效率。如果实际表足够大,因而能够保证分离,如果对分离的表执行操作的话,这通常意味着增加的更新将更加快。既然性能根据环境的不同而有不同,因此在实现前要保证对其进行验证。这个可以通过切换当前的分离块到外部的表或者通过使用一个分离策略来保证。

(3)联合排列的分割区

在数据仓库中,在所有的分离表中提出一致性的分离策略通常是一个很好的方法。如果没有可能连接这些表,SQL Server优化器能够考虑一个可行的计划。这对于连接的实际表是非常相关的,例如有关销售的和有关投资的数据仓库,它们的报表常常是比较销量和股票投资。

(4)磁盘分配的分离

一旦分离策略确定以后,你需要确定这些分离物将会如何的在磁盘中布局。这里有两种高级别的方法——为一个文件组映射多样的分离物,或者为它们自己的文件组映射单独的分离物。每一种方法的变化也会在此讨论。

一个单独的文件组的策略的最大问题是所有的分离数据将会在磁盘的相同文件中传播。如果在这个文件组中有多个文件,SQL Server使用一个成比例的填充策略来插入数据。这些不可开拓的数据意味着SQL Server连续的检查可能不太有效。这个策略也显示了在基于分离的备份和粉碎的恢复的适应性。

在它们自己的文件组中映射分离区常常是一种更好的策略。每一个文件组应该有一个单独的文件以便对于邻近的数据是可能的。而这些数据是否真正的邻近决定于它是怎样载入的,或者在每一个文件每一个单独策略中使用单独的文件中,集群索引已经经过磁盘碎片整理程序进行了整理。

从索引策略、索引的分片以及快速载入与查询性能的等方面对表的设计进行阐述后后,接下的此篇将讲述怎么样优化数据仓库环境方面的知识。

四.优化数据仓库环境

1.聚合策略

观察那些允许SQL Server直接的、特别的查询的客户通常对临时总结表非常有用处。分析服务怎么样获得性能也不是一件值得惊讶的事情。这个问题在于用户(通常被成为“超级用户”)常常是那些做总结,并且是常常对相同的信息一次一次做总结的人,因此他们没有注意到另外的用户也在做这些操作。然而这对系统资源产生了很大的影响。前聚合在某些地方被存储,或者是在源数据库中,或者是在tempdb中。如果这些信息被重复的存储,磁盘消耗将会是很巨大的。当这些东西在高峰期被构建时,存储需求能够变得非常巨大,因为所有用来支持摘要的详细数据必须读入到内存中。

(1)设计摘要性的表

一个策略性和高效率的目标是设计和实现永久摘要表的少部分,以便包含前聚合的信息。

下面是设计摘要表的一个实例过程:

?收集一个好的查询取样;

?分析维度层次级别的、维度属性和实际表测量;

?识别与每一个表现出来的维度级别相关的行数;

?平衡最常见的查询维度级别和在结果摘要表中的行数。

(2)分析服务

那些对SQL Server的分析服务(SSAS)已经习惯的人可能已经注意到在这份白皮书中的很多推荐都是用的SSAS中的默认值。SSAS中的性能的优化直接来自于它的内在的决定对于空间数据的最好的前聚合算法和动态的导航能力。

它的优点如下:

?在这份白皮书中提及到的很多手工的进程,特别是考虑到前聚合的那些,都被构建到分析服务中;

?将分析查询提交给服务器以及允许管理员制定一个基于这些查询的聚合设计是一个半自动的过程;

?很多第三方的应用程序被设计来读取SSAS的元数据以及用户友好的特定的查询界面;

?没有显式的报告模型被设计,报告构建器能够从SSAS中直接的产生一个模型;

?聚合设计更加方便;

?查询性能变得更加好。

缺点如下:

?SSAS的节目化的接入必须使用MDX(Multidimensional Extensions);

?在SQL Server和分析服务中技能集有很少有交替;

?维度处理比起显式的维护摘要表不太方便;

?并不是所有的数据都在立方体中有空间;

?在很大的实际表中查询必须接触每一个实体。

(3)设计摘要表的一个过程

设计摘要表并不是一个简单的工作,并且需要从报表和特别的查询所载入的数据的期望和观察到的查询的一个相当大的数量。记住你想要设计尽可能少的摘要表来满足最大数量的查询。

(4)索引化的视图与摘要表

所有摘要表的维护的自动化是非常有用的。通过使用索引化的视图(SQL Server的特性,表示前聚合的数据)来使得其更大的便利化。这由于索引视图的特征看起来是逻辑性的一步。

这里有一些索引视图必须遵循的一些需求,但是,作为一个摘要实际表的实现来说是比较困难的。下面的需求是与之相关的:

?不允许进行外连接。如果不止一个实际表被摘要并且行的交集没有保证,外连接将会被需要。一个很好的例子是在用来分析销量和投资的数据仓库中,销量和投资相关的实际表将可能既包括满足键联合的行,迫使进行一个全外连接(FULL OUTER JOIN);

?在一个分离实际表上的一个SWITCH操作需要任何的索引化视图基于那些被舍弃和重建的表中;

?索引化的视图需要一个独特的、集群的索引作为第一索引。这可能需要附加的行加到索引中。如果在索引视图上有一些额外的索引,既然一个很长的集群索引key将会永存在非集群中的索引中;

?为了一个自动的在一个指定的表的指定的查询中使用索引视图,查询的条件必须以特定的顺序存在。

索引视图的一个明显的好处是它们自动的由SQL Server维护。这种好处是非常巨大的,因此索引视图必须明确的被考虑。你能够使用NOEXPAND提示直接的查询索引视图,为了获得索引视图的益处以便进行过程性能改进,需要联合自动的摘要维护的连接。

就像前面所描述的,一个可替换的索引视图是很清楚的摘要表。这些表必须手动的维护并且直接的在查询中使用。前面的问题是一个很大的问题。

为了更好的揭示摘要表的价值,让我们看一个相对简单,但是很现实的查询例子:

SELECT Subject, SUM(Sales.Sales_Qty) AS Sales_Qty

FROM Tbl_Fact_Store_Sales as Sales JOIN Tbl_Dim_Store Store ON Sales.SK_Store_ID = Store.SK_Store_ID

JOIN Tbl_Dim_Date Date ON Sales.SK_Date_ID = Date.SK_Date_ID

JOIN Tbl_Dim_Item Item ON Sales.SK_Item_ID = Item.SK_Item_ID

WHERE Date.Fiscal_Period_Desc IN ('F04 P5 (JUN)') AND Store.Region = 'West'

GROUP BY Subject

ORDER BY Sales_Qty DESC

Avg response time: 1 minute 43 seconds

这个查询直接的引用了详细的实际表。不仅仅使得它运行,而且每一个相关的细节记录被读入到缓冲缓存中,在下面的语句中,查询被重写,为了对我们的摘要表而不是细节进行引用。它改善了87%的查询时间,语句如下:

SELECT Subject, SUM(Sales_Qty) AS Sales_Qty

FROM Tbl_Fact_Summary as summary JOIN (SELECT DISTINCT Region, District_Num FROM Tbl_Dim_Store) Tbl_Dim_Store ON summary.Store_District_Num = Tbl_Dim_Store.District_Num

JOIN (SELECT DISTINCT Subject, Category_Code FROM Tbl_Dim_Item) Tbl_Dim_Item

ON summary.Item_Category_Code = Tbl_Dim_Item.Category_Code

JOIN Tbl_Dim_Date ON summary.Date_Summary_Key = Tbl_Dim_Date.SK_Date_ID

WHERE Tbl_Dim_Date.Fiscal_Period_Desc IN ('F04 P5 (JUN)')

AND Tbl_Dim_Store.Region = 'West'

GROUP BY Subject

ORDER BY Sales_Qty DESC

Avg response time: 13 seconds

维护摘要表的花费应该得到小心的控制。ETL进程能够被修改以便能明了更新的日期。这些信息能够被使用来仅仅更新在摘要表中影响的行中的聚合。保证更新的环境被紧紧的控制以便使得摘要表中的数量常常是正确的。它怎么样进行控制取决于ETL过程是如何的被执行。

(5)改善摘要表的性能

创建的摘要表必须处于一个连接维度表的大部分的情况下。例如,如果详细的实际数据在一个日期维度的天的级别上,摘要的日期可能是周、月等级别。在这个点上,你或者需要为那些级别携带相关的属性,或者对维度连接回去以便获取这些信息。你将常常选择后续的选项,特别是如果这里有一些属性必须的时候。如果这些维度表改变或者也改善了构建和维护的摘要表性能的时候,这些结果将更加便利。如果维度表设计师摘要表的基础,这是用的雪花的方式,这是相当容易的。

(6)表和报表构造器的总结

我们已经展示了摘要表怎样能够为大部分查询提供强大的便利。写Transact-SQL查询并且能够懂得摘要表的内容,以及怎样使用它们的“超级用户”能够将它们合并到日常的查询工作中来加强性能。典型的商业用户将具有更少的技能集来构建查询代码,并且没有时间或没有意向来学习这项技能。

SQL Server 2005报表服务发布了一个组件来便利特别的查询,它叫做报表构建器,它是为特定类型的用户准备的。为了报表构建器来报告SQL Server相关的数据库,一个或者更多的报表模型必须被定义。一个报表模型能够构建在DSV(data source view)上,并且这两个概念加起来,能够提供工具来插入摘要表到查询中去。

有两种常用的方法来将摘要表合成到报表模型中。第一种方法是为每一个或者大多数摘要表创建一个单独的报表模型,接着为细节化的视图创建一到多个。关键在于报表模型的正确命名以便对那些当创建一个报表的时候需要的用户更加明显。这种方法的最大的问题是:如果用户选择了一个不正确的报表模型,他们将必须重新开始一个新的报表。

另一种方法是将摘要表合并到单个的报表模型中,这些报表模型常常包括细节化的实际的信息。这个将会呈现对于终端用户的数据的多个视图。当在报表模型中使用一个基于摘要的层次时,用户将会自动的接近在摘要表中剩下的维度级别信息。

在这两种方法中,与摘要级别信息相关的维度表能够来源于前面所提及的索引视图,或者在源DSV中创建的命名的查询。

五. 结论

一个可升级的、高性能的数据仓库能够不顾它下面的数据库的大小来开发。更新和查询者两个操作窗口能够通过如下的可靠的基础来构建:

?创建一个基于健壮的硬件平台和正确配置的SQL Server环境的基础;

?重新思考认识到的表的实践的最佳实践。仔细的计划你的索引策略,并且使用表和索引分离来使得你的数据仓库更加的易于管理;

?学习在你的服务器上载入的查询并且构建策略性的前聚合的策略来便利很好的查询性能。

通过开发一个深思熟虑的数据仓库策略,并且不断的监视你的批量维护和查询环境,你能够传送数据市场,这些数据市场提供了高性能和高实用性以便你的用户能够聚焦于商业智能。

SQLServer的简介及发展历程

S Q L S e r v e r的简介及发展历程SQL简介 SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM 语言作为查询语言。 织,负责开发美国的商务和通讯标准。ANSI同时也是ISO和InternationalElectrotechnicalCommission(IEC)的 ANSI随之发布的相应标准是ANSISQL-92。ANSISQL-92有时被称为ANSISQL。尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循ANSISQL标准。SQLServer使用ANSISQL-92的扩展集,称为T-SQL,其遵循ANSI 制定的SQL-92标准。 SQL发展历史 1970:E.J.Codd发表了关系数据库理论(relationaldatabasetheory); 1974-79:IBM以Codd的理论为基础开发了“Sequel”,并重命名为"SQL"; 1979:Oracle发布了商业版SQL 1981-84:出现了其他商业版本,分别来自IBM(DB2),DataGeneral(DG/SQL),RelationalTechnology(INGRES); SQL/86:ANSI跟ISO的第一个标准; SQL/89:增加了引用完整性(referentialintegrity); SQL/92(akaSQL2):被数据库管理系统(DBMS)生产商广发接受; 包括oids; SQL/2003:包含了XML相关内容,自动生成列值(columnvalues); 2005-09-30:“Dataisthenextgenerationinside...SQListhenewHTML”!TimO'eilly提出了Web2.0理念,称数据将是核心,SQL将成为“新的HTML"; SQL/2006:定义了SQL与XML(包含XQuery)的关联应用; 2006:Sun公司将以SQL基础的数据库管理系统嵌入JavaV6 2007:SQLServer2008(Katmi)在过去的SQL2005基础上增强了它的安全性,主要在:简单的数据加密,外键管理,增强了审查,改进了数据库镜像,加强了可支持性。 SQLServer的基本信息 SQLServer是一个关系数据库管理系统。它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。Sybase则较专注于SQLServer在UNIX?操作系统上的应用。数据库引擎是SQLServer系统的核心服务,负责完成数据的存储、处理和安全管理。

sqlserver2005分割字符串,循环输出示例

create function f_splitstr(@source varchar(500),@split varchar(5)) returns @temp table(tid varchar(50)) as begin declare @ch as varchar(50) set @source=@source+@split while(@source<>'') begin set @ch=left(@source,charindex(',',@source,1)-1) insert @temp values(@ch) set @source=stuff(@source,1,charindex(',',@source,1),'') end return end --select tid from dbo.f_splitstr('xxxxxxx,ttttt,yyyyyy,ererer',',') --select getdate() declare @i int,@countNum int, @para varchar(50) declare tid_cursor CURSOR for select tid from dbo.f_splitstr('xxxxxxx,ttttt,yyyyyy,ererer',',') open tid_cursor FETCH NEXT FROM tid_cursor into @para WHILE@@FETCH_STATUS= 0 BEGIN print @para FETCH NEXT FROM tid_cursor into @para END; CLOSE tid_cursor DEALLOCATE tid_cursor GO

SQLServer数据库教案

《SQL Server数据库》 教案 第1章SQL Server 的安装和配置 一、教学目标: 1. 了解课程要求。 2. 了解SQL Server 的发展和特点。 3.了解SQL Server 的安装和配置。 4.了解系统数据库和系统表的作用. 5.了解SQL Server 的9个常用工具。 二、教学重点和难点: 重点:熟悉企业管理器与查询分析器 难点:系统数据库和系统表的作用 三、教学方法与手段: 注重实例分析,采用一次理论一次实验的教学方式。理论教学使用多媒体投影室。 四、教学课时: 3课时 五、教学基本内容: 1、课程要求简介:共90课时,分为两部分,课堂教学45课时,实验教学45课时;课程培养目标:通过本课程的学习,掌握SQL Server 环境下进行

编程的知识,具备利用SQL Server 进行数据库应用程序开发的基本能力;考核要求……(5分钟) 2、SQL Server的定义:是一个高性能的C/S结构的RDBMS,是为支持高容量的事务处理(如在线订购录入、存货目录、记帐或支付)以及数据仓库和决策支持系统而设计的。 3、SQL Server 的发展、特点和新特性。 4、SQL Server 的安装和配置。(操作演示一部分安装过程;30分钟) 5、了解系统数据库和系统表的作用:主数据库master、msdb、pubs等。 演示:打开企业管理器,展开服务器,详细分析各个系统数据库和系统表 6、了解SQL Server 的主要管理工具,熟悉企业管理器、查询分析器。 (1)讲授SQL Server 的主要管理工具,分别打开九个工具,演示分析企业管理器的功能。 演示:打开企业管理器,展开服务器,新建一个数据库sales。 注意:可以由教师讲解,同时学生操作演示再创建一个数据库。 (2)分析查询分析器的使用方法,演示打开查询分析器的两种方法。 例:在查询分析器地命令行窗口中输入如下的SQL语句: use pubs select * from jobs (3)了解SQL Server 服务管理器的使用方法。 (4)掌握创建SQL Server服务器组的方法及注册SQL Server服务器的方法。 注意:如果该服务器已成功注册,则显示具有改名称的服务器已存在,如果

Sqlserver2005数据库练习题(1)

Sqlserver2005数据库练习题 第1章数据库技术基础 1.简述数据库、数据库管理系统、数据库系统的含义? 2.简述数据库、数据库管理系统、数据库系统之间的联系? 3.简单描述层次模型、网状模型、关系模型的含义? 4.简述一个学生都包含哪些属性? 5.对于一个学生表来说学生姓名是否可以作为主键,为什么? 6.描述你所在的班级都有哪些实体? 第2章安装Sql Server 2005与服务器管理 1.安装sqlserver 2005需要计算机的最低配置是什么? 2.x86操作系统是什么概念? 3.x64操作系统是什么概念? 4.安装数据库时应该选择什么样的操作系统? 5.开始安装时需要有哪些准备工作? 6.开始安装界面中的其他信息是什么意思? 7.用户许可协议必须为接受么? 8.用户许可协议是否可以打印? 9.系统配置界面中需要检查哪些项? 10.详细信息中哪些项要求必须安装成功才能进行下一步的操作? https://www.doczj.com/doc/7813738607.html,+目录指的是什么? 12.iis功能要求指的是什么? 13.mdac版本的最低要求是什么? 14.实例名中的默认实例是什么含义? 15.实例名中的命名实例是什么含义? 16.服务器名指的是什么? 17.服务帐户中使用内置系统帐户是什么含义? 18.服务帐户中使用域帐户是什么含义? 19.安装结束时启动服务包括什么? 20.sqlserver2005提供的服务有哪些? 21.安装结束后,哪些服务要求必须启动? 22.ms sqlserver是什么服务? 23.sql server agent是什么服务? 24.sql server analysis services是什么服务? 25.sql server browser是什么服务? 26.如何对服务进行启动、暂停和停止操作? 27.启动数据库时需要做什么工作? 28.如何注册数据库? 29.如何删除注册的服务? 30.如何更改数据库的登陆模式?

基于SQLSERVER2005的数据挖掘系统设计

第22卷第3期湖 北 工 业 大 学 学 报2007年06月 V ol.22N o.3 Journal of H ubei U niversity of T echnology Jun.2007 [收稿日期]2007-03-20[作者简介]张 波(1981-),男,湖北当阳人,武汉理工大学硕士研究生,研究方向:物流系统的自动化与智能化. [文章编号]1003-4684(2007)0320029203 基于SQL SERV ER 2005的数据挖掘系统设计 张 波,陈定方,祖巧红 (武汉理工大学智能制造与控制研究所,湖北武汉430081) [摘 要]介绍了数据挖掘软件的发展,并针对第3代数据挖掘软件的系统设计,提出了一种基于SQL SERV ER 2005的纵向数据挖掘系统的设计框架. [关键词]数据挖掘;SQL SERV ER 2005;数据仓库;OL A P ;商业智能[中图分类号]TP311.131 [文献标识码]A 数据仓库(Data Warehouse )是伴随着决策支持 系统的发展而产生的,是人们对信息需求从简单到复杂,从基本的事务处理和业务管理到信息分析和战略决策的体现.而数据挖掘(Data Mining )就是应用一系列技术从大型数据库或数据仓库的数据中提取人们感兴趣的信息和知识,是统计学、数据库技术和人工智能技术的综合. 但一方面,随着数据挖掘工具的使用日渐广泛,人们发现有些工具只有精通数据挖掘算法的专家才能熟练使用.如果对算法不了解,难以得出好的模型.所以迫切需要一类使用简单而又具有针对性、功能良好的数据挖掘软件. 另一方面,国内对数据挖掘方面的算法和理论研究较多,而对数据挖掘软件和工具的设计与实现 方面的研究相对较少.因此,本文结合数据挖掘软件的发展,针对第3代数据挖掘系统的设计,提出一种基于SQL Server 2005的纵向数据挖掘解决方案的设计框架. 1 数据挖掘软件的发展 1.1 数据挖掘软件经历的4个时代 在对数据挖掘技术和数据挖掘软件的探索和开发过程中,很多学者提出了自己独特的观点.对于数据挖掘软件的发展,Robert Grossman 认为,数据挖掘软件经历了或即将经历的时代有4个[1],如表1所示. 表1 数据挖掘软件经历的4个时代 代 特征 数据挖掘算法集成 分布计算模型数据模型1作为一个独立的应用支持一个或多个算法独立的系统单个机器向量数据 2 和数据库以及数据仓 库集成 多个算法,能挖掘一次不能进入内存的数据数据管理系统,包括数据库和数据仓库同质、局部区域的计算机群集 有些系统支持对象,文本和连续的媒体数据 3和语言模型系统集成多个算法数据管理系统Intranet/extranet 网络计算 支持半结构化和Web 数据 4 和移动数据以及各种计算设备的数据联合 多个算法 数据管理系统 移动和各种计算设备 普遍存在的计算模型 1.2 数据挖掘工具经历的3个阶段 目前在整个数据挖掘技术的发展过程中,数据挖掘工具一共经历了3个阶段,分别是: 1)独立的数据挖掘软件.该阶段对应第一代数据挖掘系统,出现在数据挖掘技术发展早期,研究人 员开发出一种新型的数据挖掘算法,就形成一个软件.这类软件要求用户对具体的算法和数据挖掘技术有相当的了解,还要负责大量的数据预处理工作. 2)横向的数据挖掘工具集.此类工具集的特点是提供多种数据挖掘算法,包括数据的转换和可视

Sqlserver2005远程连接问题

与SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问 服务器。请验证实例名称是否正确并且SQL Server 已配置为允许远程连接。(provider: 命名管道提供程序, error: 40 - 无法打开到SQL Server 的连接) 说明: 执行当前Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关 该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 在与SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server 已配置为允许远程连接。(provider: 命名管道提供程序, error: 40 - 无法打开到SQL Server 的连接) 当出现这个问题时,其实很简单,是不同的数据库版本,地连接方法个一样;注意以下红字部分。我以前是用Server=.;database=jtj;User ID=sa;Password= 改成了Data Source=.\\SQLEXPRESS;Initial Catalog=jtj;User ID=sa;Password= 折腾了好久才搞好。 1.开启sql2005远程连接功能,开启办法如下: 配置工具->Sql Server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine节点,先择“远程连接”,接下建议选择“同 时使用TCP/IP和named pipes”,确定后重启数据库服务就可以了。 2.登陆设置改为:Sql Server 和Windows 身份验证模式,具体设置如下: SQL Server Management Studio管理器->Windows 身份验证连接服务器->对象资源管理器中选择你的数据服务器->右键->属性->安全性->Sql Server 和Windows 身份验证模式选中。 3.设置一个Sql Server方式的用户名和密码,具体设置如下: (1)SQL Server Management Studio管理器->Windows 身份验证连接服务 器->对象资源管理器中选择你的数据服务器->展开服务器上的“安全性”->登陆名-> 在sa帐号上点右键->“选择页”选择常规->更改sa登陆帐号的密码。这样就设置了一个 用户名为sa,密码为:sa123456的用户。 (2)“选择页”选择状态->登陆修改为启用 4.数据库连接字符串 数据库连接字符串有好几种,相信你自己也见过,都被搞晕了 Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456 Data Source=服务器名\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456 Data Source=localhost\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456 Data Server=.;Initial Catalog=Northwind;User ID=sa;Password=sa123456 Data Source=服务器名;Initial Catalog=Northwind;User ID=sa;Password=sa123456

熟悉SQLserver2005系统

西北师范大学计算机科学与工程学院学生实验报告 学号201271040109 专业软件工程班级软件工程1班姓名郭宏乐 课程类型 课程名称熟悉SQLserver2005系 统 实验名称熟悉SQLserver2005系统 实验目的:1:熟悉SQLserver2005系统. 2:学会安装SQLserver2005系统。 3学会运用SQLserver2005系统。 实验内容: 1实验步骤: (1)SQLserver2005安装: 安装过SQL Server的人可能知道,它的有些服务要依赖于IIS,所以为了保证数据库的顺利安装,先启用IIS服务吧!Win7比XP好的一点是:启用IIS功能无需借助系统安装盘了,只要在控制面板里启用即可,如图: step1

step2 第三步需要注意的是,选中红框中的复选项,分别为“Internet Information Services 可承载的Web 核心”、“Web 管理工具”和“万维网服务”,这里我不确定“Web 管理工具”是否需要,因为我选中它们的父节点“Internet 信息服务”后选中了它的一些子项,多选总比少选全面,需要将它们的子项全部选中才显示为“√”,否则显示为“■”,记住,一定要显示为“√”才行,效果就和step3一样就可以了!点击确定后会出现线面的框框

如果我们不启用IIS功能,在后续安装SQL Server时会遇见如图画面 到此,IIS功能就算启用完成了,下面开始安装SQL Server 安装文件解压后是一个ISO的镜像,其实是一个DVD文件,将两张光盘合并到一起了,所以你的电脑需要安装虚拟光驱,虚拟光驱不会用请先百度一下,我就不在这里赘述了。 首先启动虚拟光驱软件,把SQL Server的镜像加载进来,如图

SQLserver高可用方案设计

SQL server高可用方案 一、高可用的类型 ●Always On 高可用性解决方案,需要sql server 版本在2012以上 SQL Server Always On 即“全面的高可用性和灾难恢复解决方案”。客户通过使用Always On 技术,可以提高应用程序可用性,并且通过简化高可用性的部署和管理方面的工作。 SQL Server Always On 在以下2个级别提供了可用性。 *数据库级可用性 是一种“热备份”技术。在同步提交模式下,主副本的数据被同步更新到其他辅助副本,主副本与辅助副本之间可以保持实时同步。当系统监测到主副本发生故障时,辅助副本可以立即成为新的主副本。 *实例级可用性 Always On 故障转移群集实例(Failover Cluster Instance,简称FCI)可以在多个16个节点之间实现故障转移(Failover)。企业版最多支持16个节点,标准版只支持2个节点。 当主节点发生故障时,辅助节点提升为主节点并获取共享存储中的数据,然后才在这个新的主节点服务器中启动SQL Server 服务。 FCI 是一种“冷备份”技术。辅助节点并不从主节点同步数据,唯一的一份数据被保存在共享存储(群集共享磁盘)中。 ●日志传送 日志传送依赖于传统的Windows 文件复制技术与SQL Server 代理。 主数据库所做出的任何数据变化都会被生成事务日志,这些事务日志将定期备份。然后备份文件被辅助数据库所属的实例复制到它的本地文件夹, 最后事务日志备份在辅助数据库中进行恢复,从面实现在两个数据库之间异步更新数据。 当主数据库发生故障时,可以使辅助数据库变成联机状态。可以把每一个辅助数据库都当作“冷备用”数据库 ●其它辅助技术 对数据库进行备份,当出现故障时,手动将数据还原到服务器,使得数据库重新联机,这也可以算作实现高可用性的一种技术手段。 复制(Replication)并不算是一个高可用性解决方案,只是它的功能可以实现高可用性。复制通过“发布-订阅”模式,由主服务器向辅助服务器发布数据,使这些服务器间实现可用性。 SQL server复制 定义及应用:数据库间复制和分发数据和数据库对象,然后在数据库间进行 同步操作以维持一致性。使用复制,可以通过局域网和广域网、拨号连 接、无线连接和Internet 将数据分配到不同位置以及分配给远程或移动用户sql server复制分成三类:

清除SQLServer数据库日志(SqlServer2005)

今天把服务器上的论坛数据库附加到本地,附加过程中就觉得不对劲,速度奇慢,附加完一看,日志文件整整占了23G。必须清除掉,不然太占空间了。上网找了个清除日志的方法。我在清除过程中用了第1,2,3,5步骤,顺利将日志文件BBS_log.ldf从23G变为了1M。 我执行如下: 1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志: BACKUP LOG 数据库名 WITH NO_LOG 3.收缩数据库文件(如果不压缩,数据库的文件不会减小) 右键数据库->任务->收缩->数据库->确定 4.将数据库设为自动收缩 右键数据库->属性->选项->自动->自动收缩设为True 原文如下: --压缩日志及数据库文件大小 1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志: BACKUP LOG 数据库名 WITH NO_LOG 3.收缩数据库文件(如果不压缩,数据库的文件不会减小 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 也可以用SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(客户资料) --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1) 4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行) a.分离数据库:

SQLServer2005函数大全

SQL Server 2005 函数大全 字符串函数 (2) 日期和时间函数 (3) 日期部分 (5) 数学函数 (6) 数据类型转换函数 (7) 日期类型数据转换为字符数据类型的日期格式的部分样式表 (8) 系统函数 (11) 排名函数 (11) 聚合函数 (12)

字符串函数 表达式:是常量、变量、列或函数等与运算符的任意组合。以下参数中表达式类型是指表达式经运算后返回的值的类型 函数名称参数示例说明 ascii (字符串表达式) select ascii('abc') 返回 97返回字符串中最左侧的字符的ASCII码。 char(整数表达式) select char(100) 返回 d 把ASCII 码转换为字符。 介于0 和255 之间的整数。如果该整数表达式不在此范围内,将返回NULL 值。 charindex (字符串表达式1,字符串表达式 2[,整数表达式]) select charindex('ab','BCabTabD')返回3 select charindex('ab','BCabTabD',4)返回6 在字符串2中查找字符串1,如果存在返回第一个匹配的 位置,如果不存在返回0。如果字符串1和字符串2中有一个 是null则返回null。 可以指定在字符串2中查找的起始位置。 difference (字符串表达式1,字符串表达式2) select difference('Green','Greene')返回4 返回一个0到4的整数值,指示两个字符表达式的之间的相似程度。0 表示几乎不同或完全不同,4表示几乎相同或完全相同。注意相似并不代表相等 left (字符串表达式,整数表达式) select left('abcdefg',2) 返回 ab返回字符串中从左边开始指定个数的字符。 right (字符串表达式,整数表达式) select right('abcdefg',2) 返回fg返回字符串中从右边开始指定个数的字符。 len(字符串表达式) select len('abcdefg')返回 7 select len('abcdefg ') 返回7 返回指定字符串表达式的字符数,其中不包含尾随空格。lower (字符串表达式) select lower('ABCDEF')返回 abcdef返回大写字符数据转换为小写的字符表达式。 upper (字符串表达式) select upper('abcdef')返回 ABCDEF返回小写字符数据转换为大写的字符表达式。 ltrim (字符串表达式) select ltrim(' abc')返回 abc返回删除了前导空格之后的字符表达式。 rtrim(字符串表达式) select rtrim('abc ')返回 abc返回删除了尾随空格之后的字符表达式。 patindex (字符串表达式1,字符串表达式2) select patindex('%ab%','123ab456')返回4 select patindex('ab%','123ab456')返回0 select patindex('___ab%','123ab456')返回1 select patindex('___ab_','123ab456')返回0 在字符串表达式1中可以使用通配符,此字符串的第一个 字符和最后一个字符通常是%。 %表示任意多个字符,_表示任意字符 返回字符串表达式2中字符串表达式1所指定模式第一次出现 的起始位置。没有找到返回0 reverse (字符串表达式) select reverse('abcde')返回 edcba返回指定字符串反转后的新字符串space (整数表达式) select'a'+space(2)+'b' 返回 a b返回由指定数目的空格组成的字符串。

SQL Server2005数据库应用技术

《SQL Server2005数据库应用技术》习题参考答案 习题 1 一、选择题 1.数据库是在计算机系统中按照一定的数据模型组织、存储和应用的(B )。 A. 命令的集合 B. 数据的集合 C. 程序的集合 D. 文件的集合 2.支持数据库的各种操作的软件系统是(D )。 A. 数据库系统 B. 文件系统 C. 操作系统 D. 数据库管理系统3.(C )由计算机硬件、操作系统、数据库、数据库管理系统以及开发工具和各种人员(如数据库管理员、用户等)构成。 A. 数据库管理系统 B. 文件系统 C. 数据库系统 D. 软件系统 4.在现实世界中客观存在并能相互区别的事物称为(A )。 A. 实体 B. 实体集 C. 字段 D. 记录 5.在数据库设计的需求阶段中,业务流图一般采用(B )表示。 A. 程序结构图 B. 数据流图 C. 程序框架 D. E-R图 6.在数据库设计的(B )阶段中,用E-R图来描述信息结构。 A. 需求分析 B. 概念结构设计 C. 逻辑结构设计 D. 物理结构设计1.SQL Server2005的操作中心是(A )。 A. Management Studio B. Enterprise Management C. Visual https://www.doczj.com/doc/7813738607.html,2005 D. 查询编辑器窗口2.注册至某服务器,表示该服务器(B )。 A. 已启动但未连接 B. 已启动并且已连接 C. 还未启动 D. 还未连接 3.对于大型企业而言,应该采用(A )版本的SQL Server2005。 A. 企业版 B. 工作组版 C. 开发者版 D. 精简版 1.一个数据库至少有(A )个文件。 A. 2 B. 3 C. 4 D. 5 2.若要使用多个文件,为了便于管理,可以使用(B )。 A. 文件夹 B. 文件组 C. 复制数据库 D. 数据库脱机 3.在SQL Server中,用来显示数据库信息的系统存储过程是(D )。 A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 4.在SQL Server中,下列关于数据库的说法正确的是(B )。 A.一个数据库可以不包含事务日志文件 B.一个数据库可以只包含一个事务日志文件和一个数据库文件 C.一个数据库可以包含多个数据库文件,但只能包含一个事务日志文件 D.一个数据库可以包含多个事务日志文件,但只能包含一个数据库文件 1.在Transact-SQL语句中,删除表中数据的命令是(A)。 A.DELETE B.DROP C.CLEAR D.REMOVE 2.在SQL Server2005中,更新表中数据的命令是(C )。 A.USE B.SELECT C.UPDATE D.DROP 3.以下关于外键和相应的主键之间的关系的说法中,正确的是(A )。 A.外键不一定要与相应的主键同名 B.外键一定要与相应的主键同名 C.外键一定要与相应的主键同名而且唯一 D.外键一定要与相应的主键同名,但并一定唯一 4.在Transact-SQL语句中,修改表结构时应使用的命令是(C )。

SQLServer2005完全卸载全攻略

SQLSERVER 2005卸载方法 SQL SERVER 2005不象SERVER 2000所有组件都汇总在一起,所以卸载时特别麻烦,如果不按正常的方法卸载,重新安装是不可能安装上去的。因为SQL SERVER 2005组件都是分散的,所以,必须一个一个的卸载,且要用到两个附加工具(Windows Installer Clean Up.(msicuu2.exe) 文件和SRVINSTW.exe文件),方法如下: 1.如其它软件卸载时一样,打开《控制面板》-新增删除程式 注意:卸载顺序,反向卸载: Microsoft SQL Server VSS Writer Microsoft SQL Server Setup Support Files(English) Microsoft SQL Server Native Client Microsoft SQL Server 2005 Books Online(English) Microsoft SQL Server 2005 Backward compatibillty Microsoft SQL Server 2005

2.安装Windows Installer Clean Up.(msicuu2.exe文件)。安装完后运行 选定下面条目,然后按《Remove》: Microsoft SQL Server VSS Writer Microsoft SQL Server Setup Support Files(English) Microsoft SQL Server Native Client Microsoft SQL Server 2005 Tools Microsoft SQL Server 2005 Books Online(English) Microsoft SQL Server 2005 Backward compatibillty Microsoft SQL Server 2005 3.运行SRVINSTW.exe文件,如图:

SQLServer2005查看所有存储过程

如果你想更好的了解SQL Server 2005列出所有存储过程的实际操作的相关内容的话,如果你想更好的了解SQL Server 2005列出所有存储过程的实际操作的相关内容的话,下面的文章你不妨浏览,望你能会获得自己想要的东西。 对于数据库管理员来说,可以经常想了解一些之前未听说过的存储过程,特别是无文档类型的存储过程。或许是用这些存储过程,能够简化日常的数据管理。 对于数据库管理员来说,可以经常想了解一些之前未听说过的存储过程,特别是无文档类型的存储过程。或许是用这些存储过程,能够简化日常的数据管理。 为了查找这些存储过程,你可以花时间在互联网搜索,查看一些你还未知道的存储过程,也许在一两个小时您可能会发现你想要...也许你很幸运的找到,其他人在他们的文章中列出所有的存储过程,函数和视图,并介绍了如何使用这些存储过程。 但其实,您可以在一分钟之内就可以自己列出这些存储过程、函数和视图的清单!这份名单甚至包括SQL Server中所有无文档的存储过程。通过这个清单,你就可以确定你所想要找的存储过程。 SQL Server 2005实际上保存了所有存储过程的列表,包括有文档的、无文档的,甚至是用户自定义的!所有这些信息,都包含在系统表中。最简单的方法是使用一个系统视图,特别是sys.all_objects这个视图来查阅。 您也可以使用sys.procedures目录视图,但我的测试结果,发现这个视图会过滤掉一些储存过程。 您也可以使用系统储存过程sp_stored_procedures返回当前环境中的存储过程列表,但这个存储过程同样也限制了存储过程返回值。 通过对比,我觉得:如果想获得SQL Server 2005中所有的储存程序,建议使用sys.all_objects 这个系统视图,sys.Procedures或sp_Stored_Procedures这两个视图会因为某些未知原因,过滤掉一些内容,造成信息不全。 存储过程信息是存储在各自用户数据库中的系统表中的。SQL Server 2005保存了存储过程的唯一标识信息,如存储过程的名称、创建时间、修改时间、是否来自微软等等。 如何确保所有的用户数据库都能够自动创建这些存储过程呢? 当SQL Server部署完成后,微软提供的存储过程,是保存在master数据库中的。当您新建一个数据库时,master数据库将作为模板数据库,因此,master数据库中的所有存储过程将自动创建到你所新建的数据库中。 如果你想创建一个存储过程,并希望能够自动分发到所有的数据库中,你可以在master数据库中建立该存储过程,这样之后新创建的数据库中,将自动包含你新建的这个存储过程;但对于之前已经存在的数据库,你仍需要到每个数据库中手动创建这个存储过程。

使用SQLServer2005的链接服务器链接Sybase数据库

使用SQLServer2005的链接服务器链接Sybase数据库 在以前的一篇文章中我讲到了Sybase ASE数据库的安装,接下来本篇就讲一下Sybase数据库与SQL Server2005数据库的同步,准确的说是使用SQLServer2005读取和写入Sybase数据库表。 为什么要这样做拉?因为在项目中有时需要做其他系统的数据接口,而接口中的数据是存放在Sybase数据库中,这个时候就可以使用SQLServer2005中的链接服务器来连接Sybase数据库,在前面我也写过一篇文章讲SQLServer2005与Oracle数据库的同步,大同小异,大家可以参考。闲话休说,言归正传,下面讲一下配置步骤: 1.在SQL Server2005服务器上安装Sybase的驱动,安装界面如图: 2.一直下一步后,到选择安装方式,我们选择自定义安装,在安装选项中一定要勾中ASE Data Provide rs,这就是我们需要的驱动,其他的可选可不选,为了方便测试和管理,其他的选中也没有关系。

3.安装完成后在开始菜单中将出现如下的菜单: 4.点击OLE DB Provider下的Configuation Manager,界面如图:

5.在Data Sources 上右击,选择New Data Source,在弹出的对话框中输入DataSourceName,比如SybaseTest。 6.单击“SetUpDataSource”按钮,系统将弹出链接Sybase数据库的配置对话框,在该窗口中输入Syb as服务器的IP,端口和数据库,如图:

7.单击“Test Connect”按钮,系统将弹出测试链接窗口,在该窗口中输入用户名密码然后单击“Connect”按钮,如果链接成功,将显示Success,说明我们的配置没有问题。 8.单击“确定”按钮,系统回到Configration Manager窗口。如下图,关闭该窗口。

sqlserver2005双机热备

SQL Server 2005 双机热备的实现 摘自:北京洪鑫基业科技发展有限公司 测试环境: 1、宿主机 硬件配置:PIV2.4G/1.5G-DDR400/80G-PATA-7200pm/8139C-NIC 操作系统:Microsoft Windows XP Pro With SP2 ENU 虚拟平台:VMware GSX 3.2.1 2、VirtualHost Microsoft Cluster NodeA 硬件配置:PIV2.4G/512M/10G/vlance-NIC/vmxnet-NIC 操作系统:Microsoft Windows Server 2003 EE With SP1 CHS 网卡信息:vlance-NIC:10M 全速半双工/HeartBeat/IP192.168.236.250 vmxnet-NIC:1000M全速全双工 /Public/IP192.168.199.250/GW192.168.199.2/DNS192.168.199.250/WINS192.168.199.250 承载服务:DC+DNS+WINS+IIS 3、VirtualHost Microsoft Cluster NodeB 硬件配置:PIV2.4G/512M/10G/vlance-NIC/vmxnet-NIC 操作系统:Microsoft Windows Server 2003 EE With SP1 CHS

网卡信息:vlance-NIC:10M全速半双工/HeartBeat/IP192.168.236.251 vmxnet-NIC:1000M全速全双 工/Public/IP192.168.199.251/GW192.168.199.2/DNS192.168.199.251/WINS192.168.199.251 承载服务:DC+DNS+WINS+IIS 4、Virtual 4G Pln:Qdisk500M/Sdisk3500M 注意:本次测试将仲裁盘和资源盘放在了一起,实际中最佳的做法应当单独配置一个物理磁盘作仲裁使用,为提高安全性还应该为仲裁磁盘配置RAID1。 5、MSCS IP 192.168.199.200 目标实现:成功部署SQL Server 2005群集/HostName SQL2005/IP192.168.199.201 群集实施: 1、我手上的SQL2005为企业中文版2CD。首先放入第一张盘,点击“服务器组件、工具、联机丛书和示例”开始SQL2005的群集安装,安装程序会自动检测当前是否为群集环境并为群集安装准备。小提示:MSCS默认环境下,群集组资源中缺少MSDTC组件,所以需要先添加MSDTC后再开始SQL2005的群集安装,否则会出现警告并停止!

sqlserver数据同步

SQLSERVER数据同步之数据复制 复制是一组技术,它将数据和数据库对象从一个数据库复制和分发到另一个数据库,然后在数据库间进行同步,以维持一致性。使用复制,可以在局域网和广域网、拨号连接、无线连接和Internet 上将数据分发到不同位置以及分发给远程或移动用户。 事务复制通常用于需要高吞吐量的服务器到服务器方案(包括:提高伸缩性和可用性、数据仓库和报告、集成多个站点的数据、集成异类数据以及减轻批处理的负荷)。合并复制主要是为可能存在数据冲突的移动应用程序或分步式服务器应用程序设计的。常见应用场景包括:与移动用户交换数据、POS(消费者销售点)应用程序以及集成来自多个站点的数据。快照复制用于为事务复制和合并复制提供初始数据集;在适合数据完全刷新时也可以使用快照复制。利用这三种复制,SQL Server 提供功能强大且灵活的系统,以便使企业范围的数据同步。

环境拓扑

安装下配置步骤: 一、在两台服务器上安装好SQL Server 2008 R2,主要安装的组件:Database Engine(含SQL Server Replication),Management Tools,并且启动Sql Server 代理(发布服务器和订阅服务器均设置) 二、主数据库服务器(发布服务器)的配置 1.设置存放快照的文件夹

2.创建发布之前,先设置一下存放快照的文件夹,创建发布后会在该文件夹生成快照文件,订阅服务器需要在初始化时加载该快照文件。 3.选择Replication》Local Publications》属性,在出现的窗口中选择Publishers,如下图: 点击红框处的按钮,出现设置窗口:

ASP连接SQLServer数据库总结

SQL版系统数据库的链接设置 这里在提示一下,一定记住了安装S Q LServer 软件时,请注意安装过程中的身份验证模式要为“S Q LS e r v e r 和Windows 混合模式”。 1 .依次单击“开始”- >“程序”- >“M i c r o s o f t S Q LServer”->“企业管理器” 2 . 在企业管理器窗口中,选择“数据库”,右键选择“新建数据库”。在出现的“数据库属性”窗口中填写您要的数据库名,再单击“确定”。

3 .选中刚才新建的数据库,单击顶部菜单中的“工具”- >“SQL 查询分析器”在出现的“SQL

查询分析器”窗口中,单击工具栏上的“打开”按钮。然后打开系统所在文件夹中的Database\***.sql查询文件。 4.点工具栏上的“执行查询”按钮,以查询以创建系统需要的表和存储过程。在“查询”窗口中出现“所影响的行数为1行”等成功信息。关闭“SQL 查询分析器”窗口。

5 . 回到S Q L 控制台。单击“安全性”,选择“登录”,右\键选择“新建一个登录”。在出现的“SQL Server登录属性-新建登录”窗口的“常规”选项中,输入名称、S Q L S e r v e r 身份验证密码,并选中您新建的数据库。

6 .在“数据库访问”选项中,勾选您新建的数据库,并勾选“publ ic”和“db _ow ne r”这二个数据库角色。单击确定,再次输入一遍密码以确认。 至此,已经完成了本系统的SQL数据库的安装。您还需要修改本系统文件中的数据库链接设置: 3.我是用《聊湾视频语音聊天网》程序来测试的,在chat目录下没能发现*.SQL文件,但BBS 目下有,这样不知是不是聊天程序没有SQL数据库呢?我试连过BBS目录下的*.SQL文件也不行,提示错误还是和之前没有设置SQL SERVER服务器的一样,ASP连SQL代码如下: 以下代码从文件中复制出来 ----------------------------------------------------------------------------------------------------------------- <% request_ip=("REMOTE_ADDR") re_ip=Split(replace_ip,"|") For i=0 To UBound(re_ip) if right(re_ip(i),1)="*" then if left(re_ip(i),6)=left(request_ip,6) then "很抱歉,本功能暂停开放,请稍后再试"

相关主题
文本预览
相关文档 最新文档