SQL数据库优化方法_第1页
SQL数据库优化方法_第2页
SQL数据库优化方法_第3页
SQL数据库优化方法_第4页
SQL数据库优化方法_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

SQLSQL数据库优化方法IISQL数据库优化方法名目\l“_TOC_250027“系统优化介绍 1\l“_TOC_250026“外围优化 1\l“_TOC_250025“SQL优化 2\l“_TOC_250024“注释使用 2\l“_TOC_250023“对于事务的使用 2\l“_TOC_250022“对于与数据库的交互 2\l“_TOC_250021“对于SELECT*这样的语句, 2\l“_TOC_250020“尽量避开使用游标 2\l“_TOC_250019“尽量使用count(1) 3\l“_TOC_250018“IN和EXISTS 3\l“_TOC_250017“留意表之间连接的数据类型 3\l“_TOC_250016“尽量少用视图 3\l“_TOC_250015“没有必要时不要用DISTINCT和ORDERBY 3\l“_TOC_250014“避开相关子查询 3\l“_TOC_250013“代码离数据越近越好 3\l“_TOC_250012“插入大的二进制值到Image列 4\l“_TOC_250011“Between在某些时候比IN速度更快 4\l“_TOC_250010“对Where条件字段修饰字段移到右边 4\l“_TOC_250009“在海量查询时尽量少用格式转换。 4\l“_TOC_250008“ISNULL与ISNOTNULL 4\l“_TOC_250007“建立临时表, 4\l“_TOC_250006“Where中索引的使用 5\l“_TOC_250005“外键关联的列应当建立索引 5\l“_TOC_250004“留意UNion和`UNionall的区分 5\l“_TOC_250003“Insert. 5\l“_TOC_250002“orderby语句 5\l“_TOC_250001“技巧用例 6\l“_TOC_250000“Sql语句执行时间测试 6SQLSQL数据库优化方法第第18页系统优化介绍的现象。速度慢的缘由主要是来自于资源缺乏。数据库的优化通常可以通过对序的优化来进展。最常见的优化手段就是对硬件的升级。依据统计,对网络、硬据库系统性能提升的40%左右(我将此临时称之为外围优化);其余大局部系统性能提升来自对应用程序的优化数据库SQL只介绍外围优化及SQL语句的优化码的优化需要相关方面的专家,形成统一的标准。化的本钱最高,收益最小。标准的代码和高性能的语句,功在寻常,利在千秋。外围优化1、将操作系统与SQL数据库的补丁WIN2003SQLSERVER2000SP4(版本号:2039)。2、在效劳器上不要安装与VA程序任何无相关的软件,甚至一些与VA运行SQLVA软件。3、杀毒软件避开对大文件进展扫描,特别是数据库〔MDF和LDF〕文件,肯定要从杀毒软件的范围内排解掉。NTFS5、定时对磁盘进展扫描和磁盘整理,削减系统文件错误及削减磁盘碎片,WINDOWS〔扫描之前肯定要对数据库作异地备份。6、可以考虑设置增大磁盘的缓存区,削减对磁盘的读写次数。7CPU大内存等。8、提高网速。SQL优化注释使用性。对于事务的使用尽量使事务处理到达最短,假设事务太长最好按功能将事务分开执行)。事务太长很简洁造成数据库堵塞,用户操作速度变慢或死机状况。对于与数据库的交互作,最好写成将数据一次读到前端再进展处理或者写成存储过程在数据库端直接处理。SELECT*这样的语句,样的语句,明确指出要查询的列削减数据的通讯量并且这样的代码可读性好,便于维护。尽量避开使用游标row-by-row,如:在客户端循环,用临时表,Table变量,用子查询,用Case语句等等。假设使用了游标,就要尽量避开在游标循环中再进展表连接的操作。尽量使用count(1)count(1)count(*)更有效率。INEXISTSfulltablescanrangescan。INEXISTS的子查询。留意表之间连接的数据类型避开不同类型数据之间的连接。尽量少用视图对视图操作比直接对表操作慢,storedprocedure,嵌套视图增加了查找原始资料的难度。我们看视图的本SQL。对单个表检索数据时,不要使用指向多个表的视图,直接从表检索或者仅仅包含这个表的视图上读,否则增加了不必要的开销,查询受到干扰。没有必要时不要用DISTINCTORDERBY这些动作可以改在客户端执行,它们增加了额外的开销。避开相关子查询子句中的查询中消灭,那么很可能当主查询中的列值转变之后,子查询必需重查询一次。查询嵌套层次越多,效率越低,因此应当尽量避开子查询。假设子查询不行避开,那么要在子查询中过滤掉尽可能多的行。代码离数据越近越好Rules,Triggers,Constraint(约束如外健主健CheckUNIQUE……,数据类型的最大长度等等都是约束),Procedure.这样不仅维护工作小,编写程序质量高,并且执行的速度快。Image列Insert来插入。由于这样应用程序首先将二进制值转换成字符串尺寸是它的两倍成二进制值.存储过程就没有这些动作:方法:Createprocedurep_insertasinsertintotable(Fimage)values(@image),在前台调用这个存储过程传入二进制参数,这样处理速度明显改善。BetweenIN速度更快Between能够更快地依据索引找到范围。用查询优化器可见到差异。select * from chineseresume where title in (”男”,”女”) Select * from所以有时会慢些。Where条件字段修饰字段移到右边查询时要尽可能将操作移至等号右边。在海量查询时尽量少用格式转换。ISNULLISNOTNULLnull值的列都将不会被包含在索引中。即使索引有多列这样的状况下,只要这些列中有一列含有null,该列就会从索引中排解。也就是说假设某列存在空值,即使对该列建索引也不会提isnullisnotnull的语句优化器是不允许使用索引的。建立临时表,selectintocreatetable,lo;createinserttempdb数据库实际的表,没有主键、索引,应当避开在临时表中存储大量的数据。Where中索引的使用WHERE条件挨次尽量把索引字段放在前面〔主键的唯一性最高where条件挨次保持全都。Sql自动查找使用那个索引。外键关联的列应当建立索引如子表id22个表中的MainIDGy_InOutSubInoutMainid增加索引。UNion和`UNionall的区分UNIONall执行效率高。InsertInsertinto表values应当为Insertinto表(字段)valuesorderby语句ORDERBY语句打算了如

温馨提示

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

评论

0/150

提交评论