摘要:
先声明文章非原创,摘自博客园:http://www.cnblogs.com/CareySon/archive/2012/03/06/2381582.html简介 在SQL Server中,数据是按页进行存放的。而为表加上聚集索引后,SQL Server对于数据的查找就是按照聚集索引的列作为关键字进行了。因此对于聚集索引的选择对性能的影响就变的十分重要了。本文旨在从性能角度来谈聚集索引的选择,但这仅仅是从性能方面考虑。对于有特殊业务要求的表,则需要按实际情况进行选择。一、聚集索引所在列或列的组合最好是唯一的 这个原因需要从数据的存放原理来谈。在SQL Server中,数据的存放方式并不是以行(R 阅读全文
摘要:
在分布应用程序中,不可避免的经常会使用到事务控制。事务有一个开头和一个结尾,他们指定了事务的边界,事务的其他边界之内可以跨越进程和计算机。事务边界的所有资源都参与了同一个事务。事务要符合ACID属性,即原子性、一致性、隔离性和持续性。 本地事务和分布式事务 本地事务是其范围为单个可识别事务的数据资源的事务(例如,Microsoft SQL Server数据库或MSMQ消息队列)。例如,当单个数据库系统拥有事务中设计的所有数据时,就可以遵循ACID规则。在SQL Server的情况下,由内部事务管理器来实现事务的提交和回滚操作。 分布式事务可以跨越不同种类的可识别事务的数据资源,并且可以包括多. 阅读全文
摘要:
记录几个简单常用SSIS包常用属性,都是通用属性:1、Disable 设置属性为true是该任务不能执行2、DelayValidation 设置为true只至运行时才验证任务中的属性,在非连接状态下和为任务包输入一个外部参数值但是直到部署时才验证这种情况下会很有用。它的默认设置为false3、Description 该属性描述任务包的情形。默认的值是<task name>,如果多个任务类型相同则设置为<task name 1>(数字1递增)。这个属性不是唯一的,只需要准确描述任务包项目方便其他人理解4、ExecValueVariable 存储任务输出的用户变量,默认的值 阅读全文
摘要:
目的多数数据集必须完成下面几个过程:选择引入多维数据集的事实表数据和维度。在多维数据集向导中,首先要选择一个数据源视图。引入多维数据集中的所有事实表和维度表都包含在这个数据源视图中。接着,要标示用于多维数据集中的所有的事实表和维度表都必须包含在这个数据源视图中。接着,要标识用于在多维数据集中创建度量值的事实表列。对于每个事实表,向导都将创建一个度量值组,包含了由表中各列所创建的度量值组。在每个度量值组中,而度量值组中至少有一个度量值,但大数情况下,我们都会选择在多维数据集中创建多个度量值组。对于相同的多维数据集中的多个度量值组来说,当其中至少有一个相同的维度时最有意义。在选择好要引入多维数据集 阅读全文
摘要:
在SSIS开发ETL(Extract-Transform-Load),数据抽取、转换、装载的过程。我们需要自己定义变量一、SSIS变量简介SSIS(SQL Server Integration Services,SQL Server整合服务)变量分分为两种,一种是系统变量,一种用户定义的变量。系统变量包括有关包、容器、任务或事件处理程序的非常有用的信息。例如,在运行时,MachineName系统变量包含运行包含的计算机的名称,StartTime变量包开始运行的时间。系统变量是只读的。在SSIS中,用户变量是用户在开发的过程中根据需要申明的变量。用户变量可以使用在脚本中,在由优先约束、For循环 阅读全文
摘要:
--sql server 2000SELECT 表名 = case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = a.name, 标识 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' e 阅读全文
摘要:
在我们平常编程中,时间久了有时候会形成一种习惯性的思维方式,形成固有的编程风格,但是有些地方是需要斟酌的,即使是一个很小的错误也可能会导致昂贵的代价,要学会善于总结,从错误中汲取教训,尽量不再犯同样错误,注重编程之美,代码的优雅,总结几个平常经常犯的错误。1、在C#编程中,字符型类型是最容易处理出错的地方,代价是非常昂贵,在.Net Framwork中,字符串是一个相当特别的引用类型,string本省就是一个不可继承的密封类,但是它具有了值类型所应用的特点,但是它在CLR中内存还是保存于托管堆之上,也就是说,当我们每次定义一个字符串类型的时候,就在堆内存中开辟一端内存,而当我们字符串被修改之. 阅读全文
摘要:
首相我们讨论一下并发性问题,然后讨论处理乐观锁的3种方法,乐观锁不能从根本上解决并发问题,由此而产生了悲观锁,我们对各个级别列举了实例进行说明,使概念更清晰。为什么使用锁? 在多用户环境下,在同一时间可能会有很多个用户跟新相同的记录,就会产生冲突。这个就是就是并发性问题,我们图来展示下:并发性问题会造成什么矛盾?并发性一般会造成四种常见的矛盾1、更新丢失(Lost Update) :两个会话都同时更新同一个资源,但是第二个会话却覆盖了第一个会话事务的更新结果。 比如,两个用户A,B同时要修改值5,A将5改成3,B用户将5改成了2,然后A先提交了结果,B后提交,这样就造成了A用户更改丢失了。2、 阅读全文
摘要:
目的前面我们学习了如何创建维度,在本章中,我们将使用多维数据集向导将这些维度与数值在多维数据集中结合起来。接着,将使用多维数据集设计器来修改多维数据集,使其方便使用,并添加度量值和计算,增强其功能。内容在设计器多维数据集之前,应该熟悉包含在事实表中的数据,这些数据将被装载到多维数据集的度量值组中。查看事实数据,并尝试理解组织的业务流程是如何产生这些数据的。您需要知道该用每个事实表中的那些列来创建多维数据集中的度量值。关系型数据库表名称和列名称通常是隐晦的。并且这些列中不包含任何关于数据应该如何被格式化的信息。我们可以给度量值组合度量值添加更加方便使用的名字,并对数据进行格式化。确定每一个事实应 阅读全文
摘要:
目的在许多组织中,管理者有他们个人的工作指标和基于团队的工作指标。在这些情况下,管理者的名字需要在Employees维度中出现两次。同时,还需要判断这两个名字实例中,那个代表管理者自身的工作指标,那个代表他的团队的工作指标。我们通过父子维度来管理好这两种指标。内容下图展示了David Bradley团队的Employee维度的一小部分。David Bradley作为父成员的实例代表了其团队的工作指标。通常情况下,这是团队成员的累加或平均值。David Bradley作为子成员的实例代表了他个人的工作指标。子成员也被称作数据成员。我们可以对他们做标记,使其容易识别。我们此处“(Direct)”作 阅读全文