`
xiebh
  • 浏览: 612982 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论
文章列表
I/O是决定查询性能的主要因素。数据库设计者的挑战是构建物理数据模型来提供高效的数据访问。在数据库表中创建索引允许SQL Server降低I/O数来访问数据。在逻辑和物理模型阶段定义有用的索引是关键。SQL Server优化器严重依赖 ...
正如第27章所讲的那样,SQL Server2000允许你创建索引视图。一个索引的视图是任意在其上定义了聚集索引的视图。当一个CREATE INDEX语句在视图上执行时,视图的结果集在数据库中的组织和存储与具有聚集索引的数据表是一样的。视 ...
SQL Server提供索引主要有两个原因:其一是作为一种保证数据库表中数据唯一性的方法;其二,提供了一种快速访问表中数据的方法。创建合适的索引是数据库物理设计时最为重要的方面之一。因为你不能在一个表上无限制地创建索引,而且不管怎么说,它也是不可行的。所以,你将想在一些具有高选择性 (high Selectivity )的列上创建索引,这样,查询时系统将会利用这些索引。一个索引的选择性定义如下: 引用选择率  = (唯一索引值的个数)/ (表中所有行数) Selectivity ratio = (Number of unique index values)/ (Total number of ...
主要内容包括: 索引使用标准(Index Usage Criteria) 索引的选择(Index Selection) 索引统计(Index Statistics) 索引设计指南(Index Design Guidelines) 索引视图(Indexed Views) 索引计算列(Indexed on Computed Columns) 索引优化向导(The Index Tuning Wizard) 选择索引:查询 & 修改性能(Choosing Indexes: Query Versus update Performance) 有众多原因导致SQL Server的性能比理想情况差 ...
在SQL Server中主要有有三种方式可以查找数据,分别是: 表扫描(Table scan) 索引扫描(Index scan) 索引查找(Index seek) Index seek中,SQL Server 沿着索引树(index tree)从根级(root level)向下进行索引键值匹配搜索,直到搜索到指定的行,然后使用存储在索引键值中的书签值(bookmark value)直接从数据页中检索匹配的数据行(这个书签值可以是行标识符(RID),或者聚集索引的键值)。 对一个索引扫描(Index scan),SQL Server搜索索引树中所有叶级(leaf level)中的行来 ...
一般而言,影响数据整体性能的因素如图所示。 若数据库设计得宜,注意了切割数据、保留了访问灵活性,有效地使用了SQL语句,数量适当且有用的索引,避免长时间广泛的锁定,充足的硬件资源,则系统将可有效地提供服务,如图所示,各种影响因素中,最重要的是基础设计,但大多数的案例由于时间紧迫、对技术的认知有限、需求不明确等因素,导致系统结构缺少扩充性,仅能一味地升级硬件,但整体性能无法大幅改善。 增加CPU对系统的性能当然会有所帮助,但结果不一定能让人满意,例如,事务锁定过多且长久,数据表字段多且长度大,所属的SQL语句无法有效地平行运算,又不能将工作分成多个批处理同时执行等,则更多CPU也无法解 ...
一个比喻: 小张向小李发送一次请求,想让他完成某项工作,当小李接受到请求时,发现自己完成不了,又请求小王帮忙,小王接收到小李请求之后最终完成了该项工作,并把最后的结果交给了小张。这个过程就是请求转发,在此期间,小张只发送了一次请求,他只知道把任务交给了小李,至于小李是如何完成的,小张并不知道,他只等待最终的结果。 重定向则不同,首先小张向小李发送请求,想让他完成某项工作,当小李接收到这个请求时,发现自己完成不了,他立即通知小张,并推荐小王可以完成任务,于是小张又联系小王,最终小王完成了该项任务。 区别: 1、浏览器地址栏显示不同(表面区别) 无论进行多少次请求,如果使用请求转发来实现,浏览器地址 ...
正如前面提到的,键的选择性是决定当执行一个查询时是否使用索引的重要因素。SQL Server在系统表sysindexs的statblob字段中存储了键的选择性和样本直方图的值。查询优化器正是基于索引键对应于该列中的值和查询中的SARG,来决定使用哪个索引。 Statblob列是一个image类型列,为了看到存储在该列中的统计信息,可使用DBCC SHOW_STATISTICS命令,该命令返回下列信息: 一个直方图。它包含了索引键的第一列的偶数个样本值。SQL Server在直方图中至多存储200个样本值。 索引中的组合列的索引密度。索引密度表明了索引键的唯一性,本节随后将讨论。 计算统计信 ...
SQL Server的索引对用户和T-SQL开发者来说几乎是透明的。除非用户使用表提示(table hints)来强制优化器使用某个具体的索引,否则查询中的索引不能被具体指定。通常情况下,基于索引键直方图的值,SQL Server的基于代价的优化器从I/O角度会选择代价最小的索引。 Chapter35会详细讲述优化器如何评估I/O,并决定采用最有效的查询计划。本节主要讲述一些创建有用索引的主要的指导原则,使得优化器能够有效地使用这些索引。 设计索引的一些通用的指南包括以下几点: 对于组合索引,尽量保持索引的越靠左边的列越具有高的选择性。索引中的第一列应该最具有唯一性(如果可能),并且索引 ...
大家能否给推荐一本 用JAVA语言相关的WEB开发方面的教材。该大学生上课用的教材。 我选择的是《TOMCAT与JAVA WEB开发技术详解(第2版)》,孙卫琴。但是感觉对学生来说有些贵。 大家能否有内容好的,价格适中(<50元)的教材或者书。国内或国外皆可
Java的内置线程支持 关于Java好的方面是它有内置的写多线程的支持。Java的设计者知道多线程编程的价值,所以聪明决定在Java的核心部分就决定直接支持线程。在第7章“并发存取对象和变量”就阐述了在Java语言中,synchronized关 ...
设计程序时候创建更多的线程不总是一个好主意。线程不是免费的;它们会带来一些资源的负担。 每个Thread 对象初始化时需要使用内存资源。除了对象本身使用的内存外,JVM还会为每个线程分配两个执行调用堆栈(call stack)。一个堆栈用来跟踪Java方法的调用和局部变量。另一个堆栈用来跟踪本地代码(native code)(典型是C语言代码)的调用。 每个线程也需要处理器资源,也会给操作系统的线程调度增加负担。当某个线程的执行被挂起,离开了处理器,另一线程进入处理器,它的执行被恢复。这就是所谓的上下文切换(contex switch).CPU时钟需要用来做上下文切换,并且当有许多线程运行时 ...
许多情况下,在一个程序中使用多线程是有益处的。下面是一些深度的观察,为什么是有好处的。 与用户的更好交互(Better Interaction with the User) 如果只有一个线程,那一个程序在同一时刻只能做一件事情。以字处理程序为例 ...
昨天,太原下起来暴雪,从早上开始漫天雪花飞舞,整整一天,省城白皑皑,雾蒙蒙。路上行人明显减少,车辆也减少了,只有公交车在慢悠悠,小心翼翼行驶。自从有车后,一年多也没做公交车了,昨天又开始回复往常状况,等车、挤车、坐车。坐上公交车真踏实! 今天,天气预报说还有暴雪,果不然下午十二点,雪花又纷纷扬扬,飘洒而下。中午,约了几个同事好友,到单位附近饭店里汤壶酒,来一个羊肉锅仔,美美地喝上一顿,热酒下肚,暖乎乎,那叫一个爽啊! 好大一场雪!
概述 浏览网页时,当你等待加载图片时可以阅读和滚动网页中的文本,这种方式不好吗?在字处理软件中,当你打开另一个需要编辑的文档时,可以让一个文档在后台打印又如何呢?也许你已经享受了在回复一封email同时又能下 ...
Global site tag (gtag.js) - Google Analytics