摘要: MDX : Non Empty v/s NonEmptyUser Rating:/50PoorBestWritten by Jason Thomas Friday, 07 May 2010 00:44Reposted fromJason Thomas blogwith the author's pe... 阅读全文
posted @ 2014-08-20 13:53 honkcal 阅读(806) 评论(1) 推荐(1) 编辑
摘要: 这篇文章是转发的,因为没读过RAID原理以及为什么要做RAID的文章,第一次看到解释的比较清楚的,所以转发。感谢原作者。原文地址如下:“http://www.cnblogs.com/CareySon/archive/2012/05/08/HowRAIDImpactSQLServer.html”简介 我们都听说过RAID,也经常作为SQL DBA、开发人员或构架师在工作中讨论RAID。但是,其实我们很多人都对RAID的原理,等级,以及RAID是如何影响SQL Server性能并不甚了解。 本篇文章就是为了补上这一课。磁盘构架 今天的磁盘,和70年代45rpm(转/分钟)的唱片机很像(你还能记得吗 阅读全文
posted @ 2012-12-17 17:34 honkcal 阅读(352) 评论(0) 推荐(1) 编辑
摘要: 转之前注释:之前不知道merge的作用,是2008新增的功能,也没有使用过,去网站搜索得到这个比较好的有解释的。而这个关键字的最终用途,应该是在两个表之间有数据差异的时候,进行操作使用的,比如两个工资表不同,需要整合同时修改,这个时候用这个关键字会比较好,而不再麻烦的区写if else 等等。不知道还有没有其他更好的例子来形容这个 关键字,如有,请留言,感谢。(------------------------转发内容----------------------------------------------)简介 Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引 阅读全文
posted @ 2012-11-26 09:25 honkcal 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 1、建立数据库的SQL语句:use mastergouse mastergoif exists(select * from sys.databases where [name]='edu') --判断该数据是否存在 print '该数据库已经存在'else create database edu --创建数据库名为:eduonprimary(name='edu_data',filename='F:\edu\data\edudataa.mdf',size=20,maxsize=40,filegrowth=10%), --创建主文件组 阅读全文
posted @ 2012-11-23 09:38 honkcal 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 简介 分区表是在SQL SERVER2005之后的版本引入的特性。这个特性允许把逻辑上的一个表在物理上分为很多部分。而对于SQL SERVER2005之前版本,所谓的分区表仅仅是分布式视图,也就是多个表做union操作. 分区表在逻辑上是一个表,而物理上是多个表.这意味着从用户的角度来看,分区表和普通表是一样的。这个概念可以简单如下图所示: 而对于SQL SERVER2005之前的版本,是没有分区这个概念的,所谓的分区仅仅是分布式视图: 本篇文章所讲述的分区表指的是SQL SERVER2005之后引入的分区表特性.为什么要对表进行分区 在回答标题的问题之前,需要说明的是,表分区这个特性只有.. 阅读全文
posted @ 2012-11-23 09:10 honkcal 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能。但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索引的概念,需要了解大量原理性的知识,包括B树,堆,数据库页,区,填充因子,碎片,文件组等等一系列相关知识,这些知识写一本小书也不为过。所以本文并不会深入讨论这些主题。索引是什么 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 精简来说,索引是一种结构.在SQL Server中,索引和表(这里指的是加了聚集索引的表)的存储结构是一样的,都是B树,B树是一 阅读全文
posted @ 2012-11-22 14:36 honkcal 阅读(256) 评论(0) 推荐(0) 编辑
摘要: delete dbo.GI_Rep_Qty_Emp_Combine from dbo.GI_Rep_Qty_Emp_Combineleftjoin dbo.qGI_INP_EMP_CCSDON dbo.qGI_INP_EMP_CCSD.Employee=dbo.GI_Rep_Qty_Emp_Combine.Employeewhere GI_Rep_Qty_Emp_Combine.LedgerYear='2010'and GI_Rep_Qty_Emp_Combine.Quarter='1'andisnull(qGI_INP_EMP_CCSD.Employee,&# 阅读全文
posted @ 2012-11-21 11:55 honkcal 阅读(735) 评论(0) 推荐(0) 编辑
摘要: 分类: Sql Server 2008 2009-08-10 09:28 206人阅读 评论(0) 收藏 举报在SQL Server中使用rollback会回滚所有的未提交事务状态,但是有些时候我们只需要回滚部分语句,把不需要回滚的语句提到事务外面来,虽然是个方法,但是却破坏了事务的ACID。其实我们可以使用SQL Server中的Savepoints来解决上述问题。示例如下:1.先建立测试表: CREATE TABLE [dbo].[ttt]( [Id] [int] NULL, [mark] [int] NULL ) 2.SQL 语句 begin tran insert into tt... 阅读全文
posted @ 2012-11-19 13:53 honkcal 阅读(363) 评论(0) 推荐(0) 编辑
摘要: SQL Server的性能主要取决于磁盘I/O效率,提高I/O效率某种程序上就意味着提高性能。SQL Server 2008提供了数据压缩功能来提高磁盘I/O。数据压缩意味着减小数据的有磁盘占用量,所以数据压缩可以用在表,聚集索引,非聚集索引,视图索引或是分区表,分区索引上。数据压缩可以在两个级别上实现:行级别和页级别。页级别压缩包括行级别压缩。表和索引在创建的同时就可以压缩,也可以使用Alter Table Rebuild With 或是 Alter Index Rebuild With语法压缩已存在表或是索引。当堆(Heap)上的压缩状态改变时,所有的非聚集索引也会重建。下面让我们看看压缩 阅读全文
posted @ 2012-11-19 13:52 honkcal 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 分类: Sql Server 2008 2010-03-04 11:42 1264人阅读 评论(4) 收藏 举报优化存储过程有很多种方法,下面介绍最常用的7种。1.使用SET NOCOUNT ON选项我们使用SELECT语句时,除了返回对应的结果集外,还会返回相应的影响行数。使用SET NOCOUNT ON后,除了数据集就不会返回额外的信息了,减小网络流量。2.使用确定的Schema在使用表,存储过程,函数等等时,最好加上确定的Schema。这样可以使SQL Server直接找到对应目标,避免去计划缓存中搜索。而且搜索会导致编译锁定,最终影响性能。比如select * from dbo.Tes 阅读全文
posted @ 2012-11-19 13:43 honkcal 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 问题重现:--建表语句,测试数据 create table TestTable(Id int, Name nvarchar(20),CreateTime datetime) go declare @Count int = 1 while(@Count<1000) begin insert into TestTable select @Count,'Name '+CAST(@Count as nvarchar(10)),DATEADD(day,@Count,GETDATE()) set @Count = @Count+1; end go --建索引 create clust 阅读全文
posted @ 2012-11-19 09:33 honkcal 阅读(4698) 评论(0) 推荐(0) 编辑
摘要: 今天使用Merge语句时遇到了一个问题,当源表数据集为空时,merge就不工作了。下面举一个例子来具体说明一下:有两个表SourceTable为登陆表,TargetTable为授权表,如果访问用户在登陆表中,更新授权表的授权级别,否则授权0表示游客。sql语句如下:--SourceTable为登陆表,TargetTable为授权表--如果访问用户在登陆表中,更新授权表的授权级别,否则授权0表示游客。create table SourceTable(UserName nvarchar(10),Pwd int,[Level] int)create table TargetTable(UserNam 阅读全文
posted @ 2012-11-19 09:30 honkcal 阅读(897) 评论(0) 推荐(0) 编辑
摘要: 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters)。运行下面的脚本,建立测试数据库和表值参数。[c-sharp] view plaincopyprint?--CreateDataBasecreatedatabaseBulkTestDB;gouseBulkTestDB;go--CreateTableCreatetableBulkTestTable(Idintprim. 阅读全文
posted @ 2012-11-19 09:29 honkcal 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 熟练使用SQL Server中的各种用法会给查询带来很多方便。今天就介绍一下EXCEPT和INTERSECT。注意此语法仅在SQL Server 2005及以上版本支持。EXCEPT是指在第一个集合中存在,但是不存在于第二个集合中的数据。INTERSECT是指在两个集合中都存在的数据。测试如下:[c-sharp] view plaincopyprint?createtablet1(idint,markchar(2))gocreatetablet2(idint,markchar(2))goinsertintot1select1,'t1'unionallselect2,'t 阅读全文
posted @ 2012-11-19 09:28 honkcal 阅读(2313) 评论(0) 推荐(0) 编辑
摘要: 数据集结元数据:数据需要的信息:数据传输计划和特殊的传输结果;数据传送区的文件用法,包括持续时间消耗的所有者信息维度表管理:规范化维度的定义和规范化事实的定义;关联job的规范,剥除域,查找属性;降低每一个引入描述属性维度规则的变化速度,每一个生产键所分配的当前代理键,也包括在内存中执行映射的查找表;前一天生产维度的复本,作为比较差异基础;换换和聚合:数据清洗规范;数据增加和映射转换;为数据挖掘所准备的数据转换;目标计划设计,源和目标数据流,和目标所有权;数据库管理系统的导入脚本;聚合定义;聚合用法统计,基础数据表使用统计,以及潜在的聚合;聚合更改日记;审计,工作日志和文档:数据沿袭和审计记录 阅读全文
posted @ 2012-10-23 20:38 honkcal 阅读(591) 评论(0) 推荐(0) 编辑