自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

转载 表组织和索引组织

表和索引作为 8 KB 页的集合存储。本主题介绍表页和索引页的组织方式。  表组织 下图显示了表的组织。表包含在一个或多个分区中,每个分区在一个堆或一个聚集索引结构包含数据行。堆页或聚集索引页在一个或多个分配单元中进行管理,具体的分配单元数取决于数据行中的列类型。  分区 在

2008-09-12 15:19:00 529

转载 sql Server 索引优化

聚集索引 , 表中存储的数据按照索引的顺序存储 , 检索效率比普通索引高 , 但对数据新增 / 修改 / 删除的影响比较大   非聚集索引 , 不影响表中的数据存储顺序 , 检索效率比聚集索引低 , 对数据新增 / 修改 / 删除的影响很小   如何让你的 SQL 运行得更快 ---- 人们在使用 SQL 时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略 了不同的

2008-09-10 17:41:00 452

转载 如何提高数据库性能,减少数据库服务器压力瓶颈一两个小方法

树立的观念:一个SQL语句,如果在压力测试时CPU占有率达到100%,此语句肯定存在问题。    在大多数程序员的心里,一直认为数据库加索引,在查询中使用索引,就可以提高数据库性能。其实这种观点有一点的局限性,如果不好好的利用已经建立好的数据库索引,有时反倒给数据库增加更大的处理压力。现在我们举例说明一下:    在现有的个人信息管理系统登录处的查询中,有这么一个SQL语句:   

2008-09-10 17:40:00 879

转载 数据库设计原则

数据库设计   实现sql server数据库的优化,首先要有一个好的数据库设计方案。在实际工作中,许多sql server方案往往是由于数据库设计得不好导致性能很差。实现良好的数据库设计必须考虑这些问题:   1. 逻辑数据库规范化问题   一般来说,逻辑数据库设计会满足规范化的前3级标准:   第1规范:没有重复的组或多值的列;   第2规范: 每个非关

2008-09-10 17:12:00 823 1

转载 再议SQL Server临时表和表变量

今天在我和一家软件公司的开发人员讨论数据库设计调优的时候又讨论到了表变量和临时表的问题,觉得这个问题确实是一个争议比较大的问题  今天在我和一家软件公司的开发人员讨论数据库设计调优的时候又讨论到了表变量和临时表的问题,觉得这个问题确实是一个争议比较大的问题。  其实从上次发表了表变量和临时表的一个帖子http://database.ctocio.com.cn/tips/442/8206

2008-09-10 16:34:00 418

转载 SQL Server中的临时表和表变量

在SQL Server的性能调优中,有一个不可比拟的问题:那就是如何在一段需要长时间的代码或被频繁调用的代码中处理临时数据集?表变量和临时表是两种选择。document.write();  在SQLServer的性能调优中,有一个不可比拟的问题:那就是如何在一段需要长时间的代码或被频繁调用的代码中处理临时数据集?表变量和临时表是两种选择。记得在给一家国内

2008-09-10 16:32:00 417

转载 临时表vs.表变量以及它们对SQLServer性能的影响

--王成辉翻译整理,转贴请注明出自微软BI开拓者www.windbi.com--原帖地址在临时表create table #T (…)和表变量declare @T table (…)之间主要有3个理论上的不同。第一个不同使事务日志不会记录表变量。因此,它们脱离了事务机制的范围,从下面的例子可显而易见:create table #T (s varchar(128)) declare @T table

2008-09-10 16:03:00 525

转载 SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY的区别(比较)

SQL Server 2000中,有三个比较类似的功能:他们分别是:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。 IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用

2008-09-10 14:41:00 543

转载 PIVOT用法详解

     PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。 PIVOT 提供的语法比一系列复杂的 SELECT...CASE 语句中所指定的语法更简单和更具可读性。     在我们进行复杂的查询统计的时候,特别是销售统计、处理大量数据的时候,PI

2008-09-10 10:41:00 3109 1

转载 [翻译]在Visual Studio 2005中调试SQL Server 2005的存储过程

原文地址:http://aspnet.4guysfromrolla.com/articles/051607-1.aspx[原文源码下载][翻译]在Visual Studio 2005中调试SQL Server 2005的存储过程原文发布日期:2007.05.16作者:Scott Mitchell翻译:webabcd介绍SQL Server 2

2008-09-10 10:32:00 431

转载 一句T-SQL语句引发的思考

**********************************************************Author:黄山光明顶mail:leimin@jxfw.comversion:1.0.0date:2004-1-30(如需转载,请注明出处!,如果有问题请发MAIL给我:-))*****************************************

2008-09-09 15:20:00 553

转载 SQL中获取一个长字符串中某个字符串出现次数的简单方法

比如有个字符串:aaaavddsdfegfdsdsffaaffffffef iksdnfgk我想知道其中 aa出现的次数,可以用下面的方法实现,而不需要复杂的一个个字符分析。declare @a varchar(100)set @a=aaaavddsdfegfdsdsffaaffffffef iksdnfgkselect len(replace(@a,aa,aaa))-

2008-09-09 11:39:00 1637

转载 @@ERROR @@ROWCOUNT 返回的都是上一条SQL 语句后的执行信息。

比如下面的SQL 语句:select EmployeeID from employees  -- 这条SQL 语句返回9条记录print(@@error)print(@@ROWCOUNT)返回的结果是:(9 row affected)00而select EmployeeID from employees  -- 这条SQL 语句返回9条记录print(@@ROWCOUNT)

2008-09-09 11:29:00 592

转载 不要错误使用聚集索引

原来分析为啥慢的原因分析错误,不是因为索引大的原因,而是错误的使用聚合索引,造成查询频繁的访问数据,进而磁盘I/O很大。        这里错误的使用聚合索引,就是因为在聚合索引中,错误的把Time字段放到前面了。       “索引本身就很大了,大的要遍历这个索引就要频繁的磁盘I/O” 这句话是错误的,对指出这句话错误的色盲 、文盲 、李颖 深表感谢。 以下是修改过的原因分析。   

2008-09-09 11:05:00 701

转载 初学T-SQL笔记之 ON PRIMARY

这些天什么都没做。年前似乎有忙不完的事,年后了却又有了好逸的毛病。。。。 D)J&A!_$YuW"m }*`0k:}(M&]0o&O3ZX:K+f  今天才开始看学校实验指导的数据库开发实例。以前一直没有时间来看。。。7Z$[4R9q,n,n;w+F#R:oP#W.N6d3K创建表的语句中,最后总来一句on[primary],这是什么意思?tech.techweb.com.

2008-09-09 10:23:00 1640

转载 TSQL中 Count() 函数使用的一点小技巧

COUNT( * ) 返回组中项目的数量,这些项目包括 NULL 值和副本。COUNT(ALL expression) 对组中的每一行都计算 expression 并返回非空值的数量。COUNT(DISTINCT expression) 对组中的每一行都计算 expression 并返回唯一非空值的数量。COUNT( expression )  默认是ALL , COUNT( expression

2008-09-08 17:57:00 1510

转载 Guid 和 Int 作为系统编号的取舍

最近一直在做下一代CSDN社区的设计,在帖子编号到底采用Guid,还是自增Int选择的时候,花费了不少心思。最后的确定的方案是采用Guid。原因如下:Guid 虽然在搜索、索引寻找的时候,速度肯定比不上Int型字段。但是,如果帖子编号采用Guid,在提交到中间层之前,就可以知道要增加的这个帖子编号是那个。而如果使用自增Int,如果中间层的应用逻辑需要在增加到数据库之前执行,那么

2008-09-08 17:32:00 446

转载 SQL Server 中调整自增字段的当前初始值

前几天在把一个Communtiy Server 的数据库从SQL 2000升级到SQL 2005 的时候,碰到一个怪异的问题,报如下错误:Violation of PRIMARY KEY constraint PK_cs_Threads. Cannot insert duplicate key in object dbo.cs_Threads.分析进去后,竟然发现这个表的自增字段数

2008-09-08 17:16:00 887

转载 详细讲解SQL Server索引的性能问题(ZT)

在良好的数据库设计基础上,能有效地使用索引是SQL Server取得高性能的基础,SQL Server采用基于代价的优化模型,它对每一个提交的有关表的查询,决定是否使用索引或用哪一个索引。因为查询执行的大部分开销是磁盘I/O,使用索引提高性能的一个主要目标是避免全表扫描,因为全表扫描需要从磁盘上读表的每一个数据页,如果有索引指向数据值,则查询只需读几次磁盘就可以了。所以如果建立了合理的索引,优化器

2008-09-05 17:15:00 387

转载 浅谈查询优化器中的JOIN算法(ZT)

查询优化器都是支持JOIN操作的,而SQL Server 中主要有以下三类JOIN算法:Nested Loop、Sort-Merge以及Hash Join。尽管每种算法都并不是很复杂,但考虑到性能优化,在产品级的优化器实现时往往使用的是改进过的变种算法。譬如SQL Server 支持block nested loops、index nexted loops、sort-merge、hash join

2008-09-05 16:28:00 408

转载 SQL Server 索引基础知识(10)----Join 时的三种算法简介(转自蝈蝈俊.net)

我们书写查询语句的时候,Join 参数之前可以是下面三个 { LOOP | MERGE | HASH } JOIN  。 如果不使用,则系统自己分析那种方式快,使用那种方式。 这其实是SQL Server 联结时候使用的三种算法。尽管每种算法都并不是很复杂,但考虑到性能优化,在产品级的优化器实现时往往使用的是改进过的变种算法。譬如SQL Server 支持block nested loops、

2008-09-05 16:12:00 524

转载 SET SHOWPLAN分析查询计划 (ZT)

如果你需要测量一系列的查询或者存储过程的实耗持续时间,更好的办法是采用程序设计的方式(如下所示)。当你运行多个命令时你不得不进行手工合计,这是因为STATISTICS TIME只报告单个查询的持续时间。想象一下,当你对一个在循环里执行成千上万次查询的脚本进行计时的情况下,将面临大量的输出和大量的手工工作。相反,考虑下面这个脚本在事务的前后分别捕获时间并以秒的形式报告总持续时间(你也可以使用毫秒

2008-09-05 16:06:00 2589

转载 SET STATISTICS IO检查所产生的读和写/SET STATISTICS TIME检查运行时间(ZT)

除调优方法外,我们给你展示了最佳实践,你可应用到你的SQL语句中以提高性能(所有的例子和语法都已在Microsoft SQL Server 2000中验证)。阅读该系列文章后,你应该对Microsoft 工具包中提供的查询优化工具和技巧有一个基本的了解,我们将提供包含各种各样的以提高性能和加速数据读取操作的查询技巧。 Microsoft提供了三种调优查询的主要的方法:  1、使用SET

2008-09-05 16:05:00 722

转载 SQL Server 索引基础知识(9)----Indexing for OR(转自蝈蝈俊.net)

我们仍然是通过例子来理解OR运算符的特征我们仍然使用 http://blog.joycode.com/ghj/archive/2008/01/18/113870.aspx 中的 member 表,这时候,这个表的索引如下:名字描述列member_corporation_linknonclustered located on PRIMARYcorp_no

2008-09-05 16:03:00 565

转载 SQL Server 索引基础知识(8)--- 数据基本格式补充(转自蝈蝈俊.net)

我在SQL Server 索引基础知识系列中,第一篇就讲了记录数据的基本格式。那里主要讲解的是,数据库的最小读存单元:数据页。一个数据页是8K大小。对于数据库来说,它不会每次有一个数据页变化后,就存到硬盘。而是变化达到一定数量级后才会作这个操作。 这时候,数据库并不是以数据页来作为操作单元,而是以64k的数据(8个数据页,一个区)作为操作单元。区是管理空间的基本单位。一个区是八个物理上连续

2008-09-05 15:47:00 415

转载 SQL Server 索引基础知识(7)----Indexing for AND(转自蝈蝈俊.net)

我们通过一个实例来看 有And 操作符时候的最常见的一种情况。我们有下面一个表,CREATE TABLE [dbo].[member]( [member_no] [dbo].[numeric_id] IDENTITY(1,1) NOT NULL, [lastname] [dbo].[shortstring] NOT NULL, [firstname] [dbo].[shortstring] NOT

2008-09-05 15:44:00 435

转载 如何删除 SQL Server 表中的重复行(转自Microsoft)

Microsoft SQL Server 表不应该包含重复行和非唯一主键。为简洁起见,在本文中我们有时称主键为“键”或“PK”,但这始终表示“主键”。重复的 PK 违反了实体完整性,在关系系统中是不允许的。SQL Server 有各种强制执行实体完整性的机制,包括索引、唯一约束、主键约束和触发器。尽管如此,在某些情况下还可能会出现重复的主键;如果出现此类情况,就必须清除重复主键。出现重复主键的情形

2008-09-05 15:34:00 521

转载 SQL Server 索引基础知识(6)----索引的代价,使用场景(转自蝈蝈俊.net)

前几天给同事培训了聚集索引,非聚集索引的知识后,在一个同事新作的项目中,竟然出现了滥用聚集索引的问题。看来没有培训最最基础的索引的意义,代价,使用场景,是一个非常大的失误。这篇博客就是从这个角度来罗列索引的基础知识。 使用索引的意义索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。 使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。使用索引的代

2008-09-05 14:58:00 444

转载 SQL Server 索引基础知识(5)----理解newid()和newsequentialid()(转自蝈蝈俊.net)

在SQL Server 2005 中新增了一个函数:newsequentialid(),MSDN 中对这个函数的描述如下:在指定计算机上创建大于先前通过该函数生成的任何 GUID 的 GUID。NEWSEQUENTIALID() 不能在查询中引用。NEWSEQUENTIALID() 只能与 uniqueidentifier 类型表列上的 DEFAULT 约束一起使用。这个函数的具体用法在下

2008-09-05 14:31:00 722

转载 磁盘 I/O 性能(ZT)

如果将 SQL Server 配置成仅包含几个千兆字节 (GB) 的数据,且不承担繁重的读或写活动,便没有太大的必要关注磁盘 I/O 主题,以及在硬盘之间平衡 SQL Server I/O 活动以获取最佳性能。但是要建立包含成百上千 GB 字节的数据且/或承担繁重的读和/或写活动的大型 SQL Server 数据库,就有必要在多个硬盘之间平衡负荷,以配置最佳的 SQL Server 磁盘 I/O

2008-09-05 14:20:00 408

转载 SQL Server 索引基础知识(4)----主键与聚集索引(转自蝈蝈俊.net)

有些人可能对主键和聚集索引有所混淆,其实这两个是不同的概念,下面是一个简单的描述。不想看绕口文字者,直接看两者的对比表。尤其是最后一项的比较。主键(PRIMARY KEY )来自MSDN的描述:表通常具有包含唯一标识表中每一行的值的一列或一组列。这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。在创建或修改表时,您可以通过定义 PRIMARY KEY 约束来创建主键。

2008-09-04 16:12:00 470

转载 SQL Server 索引基础知识(3)----测试中一些常看的指标和清除缓存的方法(转自蝈蝈俊.net)

之前的两篇博客中有2个例子,来演示要讲述的内容。其中提到了部分查看数据库状态的方法,那里并不是很全面,这篇博客罗列几个我们在后面系列博客中会用到查看这些状态,数据的地方。以及测试中清除缓存的方法。前面两篇博客的链接地址如下:SQL Server 索引基础知识(1)--- 记录数据的基本格式 http://blog.joycode.com/ghj/archive/2008/01/02/11329

2008-09-04 16:02:00 500

转载 SQL Server 索引基础知识(2)----聚集索引,非聚集索引(转自蝈蝈俊.net)

由于需要给同事培训数据库的索引知识,就收集整理了这个系列的博客。发表在这里,也是对索引知识的一个总结回顾吧。通过总结,我发现自己以前很多很模糊的概念都清晰了很多。不论是 聚集索引,还是非聚集索引,都是用B+树来实现的。我们在了解这两种索引之前,需要先了解B+树。如果你对B树不了解的话,建议参看以下几篇文章:BTree,B-Tree,B+Tree,B*Tree都是什么 http://blog.c

2008-09-04 15:51:00 506

转载 JAVASCRIPT----style 中visibility和display之间的区别(ZT)

大多数人很容易将CSS属性display和visibility混淆,它们看似没有什么不同,其实它们的差别却是很大的。visibility属性用来确定元素是显示还是隐藏的,这用visibility="visible|hidden"来表示(visible表示显示,hidden表示隐藏)。当visibility被设置为"hidden"的时候,元素虽然被隐藏了,但它仍然占据它原来所在的位置。

2008-09-04 15:07:00 491

转载 数据库性能优化JOIN(ZT)

看到很多朋友对数据库的理解、认识还是没有突破一个瓶颈,而这个瓶颈往往只是一层窗纸,越过了你将看到一个新世界。 04、05年做项目的时候,用SQL Server 2000,核心表(大部分使用频繁的关键功能每次都要用到)达到了800万数据量,很早以前查过一些相关表,有的达到了3000多万,磁盘使用的光纤盘,100G空间,每周必须备份转移数据,否则100G空间一周会满掉,这个系统几年来,目前仍然保持

2008-09-03 14:49:00 707

转载 SQL Server 索引基础知识(1)--- 记录数据的基本格式(转自蝈蝈俊.net)

由于需要给同事培训数据库的索引知识,就收集整理了这个系列的博客。发表在这里,也是对索引知识的一个总结回顾吧。通过总结,我发现自己以前很多很模糊的概念都清晰了很多。不论是缓存的数据信息,还是物理保存的信息,他们的基本单位都是数据页。所以理解数据页是最最基础的知识点,本篇博客就介绍跟索引有关的数据页的一些基础知识。数据页的基础知识SQL Server 中数据存储的基本单位是页(Page)。

2008-09-03 11:09:00 554

转载 SQL 事务的隔离

为了遵守ACID规则,事务必须与其他事务相隔离。这意味着在一个事务中使用的数据必须与其他事务相隔离。为了实现这种分离,每一个事务会锁住它使用的数据以防止其他事务使用它。锁定义在需要锁定的资源上,这些资源可以是索引、数据行或者表。SQL Server总会尝试精细地锁住资源。在大多数情况下,它会首先基于行级加锁。如果锁住的行太多,会提升锁至在表级。这个过程是自动完成的。在SQL Server中锁定

2008-09-02 15:34:00 556

转载 SQL Server事务全攻略(ZT)

SQL Server事务全攻略(一)   一 事务的属性   事务具有ACID属性,即 Atomic原子性,Consistent一致性, Isolated隔离性, Durable永久性   原子性   就是事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全 回滚,全部不保留   一致性   事务完成或者撤销后,都应该处于一致的状态   隔

2008-09-01 17:53:00 461

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除