项目17 数据库性能优化_第1页
项目17 数据库性能优化_第2页
项目17 数据库性能优化_第3页
项目17 数据库性能优化_第4页
项目17 数据库性能优化_第5页
已阅读5页,还剩3页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目17数据库性能优化专业核心课程精品课程1

17.1数据库设计17.1.1 规范化与非规范化

规范化(normalization)就是让数据库中无序的数据变得更加有条理,表中的数据都在合理的位置。范式的规则有很多种,这里主要介绍3种常用的范式:第一范式(1NF)的规则要求为:数据表中的字段只包含一种数据类型,每种数据只存放在一个地方。第二范式(2NF)的要求是保证表中包含一个唯一的实体数据。第三范式(3NF)要求表中所有非关键字段相互独立,表中任意字段内容进行更改不会影响其他字段。17.1.2 选择适当的数据类型

选择可以存储数据的最小数据类型尽量使用简单的数据类型精品课程2

17.1数据库设计17.1.2 选择适当的数据类型

尽量避免NULL17.1.3 索引的选择建立索引是以最小的消耗(包括各种资源的消耗,如内存、数据库10资源等)得到所需数据的有效方法。对于每一个查询,SQLServer优化器将确定是否有相关的索引可以用于数据访问。一个利用索引的访问与全表扫描相比,可以大大减少查询时间。索引可分为聚集索引与非聚集索引两种,前者对数据进行物理排序,速度快,但一个表只能建立一个;后者仅对数据进行逻辑排序,速度相对聚集索引慢,但一个表可以建立多个。精品课程3

17.2查询优化17.2.1 避免使用“*”在具体应用中,查询语句SELECT是使用最为频繁的一类操作。虽然SELECT语句有许多参数,但目标列是必不可少的,许多用户为了节省时间或为了方便,不考虑需要查询的数据表有多少列,在目标列处直接以通配符“%”代替。这类操作在查询数据量小的表或视图时对性能的影响非常小,但一旦数据量较大时,以通配符“%”代替所有目标列名将大大降低SQLServer2016的查询性能。17.2.2 避免负逻辑任何负逻辑(如!=、<>或notin)都将导致SQLServer2016用表扫描来完成查询。当表较大时,这会严重影响性能。精品课程4

17.2查询优化17.2.3 列操作

WHERE子句中列旁边的任何操作都将导致SQLServer2016用表扫描来完成查询。17.2.4 避免使用DISTINCT使用DISTINCT是为了保证在结果集中不出现重复值,但是DISTINCT关键字会产生一张工作表,并进行排序以删除重复记录,这会大大增加查询时间和VO的次数。因此应尽量避免使用DIST1NCT。17.2.5 存储过程存储过程使分析和编译后的SQL程序包含巨大而复杂的查询或SQL操作,经过编译后存储在SQL数据库中,客户应用程序通过引用其名称进行调用。存储过程在第一次执行时建立优化的查询方案,SQLServer将查询方案保存在高速缓存中,在接下来的运行中就可以直接从高速缓存执行。精品课程5

17.3考虑并行17.3考虑并行

数据库系统的并发控制也是影响性能的一个重要方面。为了避免多个用户同时操作可能导致的数据不一致,SQLServer采用了封锁机制。SQLServer中的锁可分为以下3种:共享锁(SharedLock):由读取页的进程所使用。共享锁只在特定页的读取过程中有效。修改锁(UpdateLock):用于将要修改数据的进程,当数据发生变化时,修改锁自动改为独占锁。独占锁(ExclusiveLock):用于当前正在修改数据的进程。独占锁作用于所有影响到的页上,直至事务结束。精品课程6

17.4索引操作17.4.1 避免在索引列上进行运算

虽然建立索引后对表或视图的检索操作将不需要全表扫描了,但是如果在SELECT语句的WHERE子句中,索引列是函数的一部分,或者在索引列上进行了运算,Oracle优化器将不使用索引而仍将使用全表扫描,此时索引将不起作用。17.4.2 避免在索引列上用OR运算符如果在SELECT语句中需要对索引列进行OR(逻辑或)操作,此时索引将不会被引用。也就是说,对索引列使用OR运算符将造成全表扫描。17.4.3 避免在索引列

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论