浅谈SQL的优化方法(1)1

浅谈SQL的优化方法(1)1

ID:42871018

大小:89.50 KB

页数:6页

时间:2019-09-22

浅谈SQL的优化方法(1)1_第1页
浅谈SQL的优化方法(1)1_第2页
浅谈SQL的优化方法(1)1_第3页
浅谈SQL的优化方法(1)1_第4页
浅谈SQL的优化方法(1)1_第5页
资源描述:

《浅谈SQL的优化方法(1)1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、浅谈SQL的优化方法摘要:对于人数据量的数据库査询,SQL的优化是提高系统性能的重要手段。木文介绍了SQL优化的原理和方法,结合SQL优化方法在海关风险平台的实际应川,探讨海关风险平台系统在SQL优化方面的解决方法。关键词:SQL优化;关系型数据库;风险平台1>前言决定DBMS的性能的凶索有两个:硕件和软件。使用频率高的CPU、使用多处理器、加大内存容量、增加Cache.提高网络速度等这些都非常有效的硬件调优方式。不过对映件进行调优对系统性能的提高是有限的,虽然有非常好的硬件条件但是如果编写的SQL质量非常差的话,系统的性

2、能也不会有明显的改善,而如果对SQL语句进行充分的优化,即使硬件条件稍差,系统性能的变化也是非常惊人的。2、SQL调优的基本原则“二八原理”是一个普遍的真理,特别是在计算机的世界中表现得更加明显,那就是20%的代码资源占川了80%的总资源消耗。SQL也是一种代码,因此它也符合这个原理。在进行SQL调优的时候应该把主要的精力放在这20%最消耗系统资源的SQL语句中,不要想把所有的SQL语句都调到最优的状态。很多的DBMS都提供了非常好的用來分析系统中所有的SQL语句资源消耗的工具,借助这些工具发现占用系统资源最多的SQL语句

3、,然厉尝试对它们进行优化。优化后再次执行分析、迭代这一过程,立到系统中没有明显的系统资源消耗异常的SQL语句为止。3、索引索引是数据库调优最根本的优化方法,很多的优化手段都是围绕着索引展开的,可以说索引是一切优化手段的“内功”,而所有的优化手段都是由索引衍生出来的“招式”而己。根据索引的顺序与数据库表的物理顺序是否相同,可以把索引分成两类:聚族索引,物理表的顺序与索引的顺序相同;非聚族索引,数据库表的物理顺序与索引顺序不相同。由于索引需要占据一定的存储空间,而且索引还会降低数据插入、更新和删除的速度,所以应该只创建必耍的索

4、引,一般在检索时用的字段中创建索引。索引还会造成存储碎片的问题。当删除一条记录时将会导致対应索引中该记录的対应项为空,由于索引是采川B树结构存储的,所以对于的索引项并不会被删除,经过一段时I'可的增、删、改操作后,数据库中就会出现人量的存储碎片,这和磁盘碎片、内存碎片产生的原理是类似的。如果发现索引中存在过多的存储碎片,要进行“碎片整理”了,最方便的手段就是重建索引,重建索引是将之询创建的索引删除然后重新创建索引,可以首先用DROPINDEX语句删除索弓I,然后用ALTERTABLE语句重新创建索引。4、全表扫描和索引查找

5、一般地,系统访问数据库中的数据,可以使用两种方法:全表扫描和索引查找。全表扫描,就是指系统必须在数据表中逐条检索表中的的每条记录,以检查该记录是否肚配检索条件。全表扌I描有可能会造成巨大的性能损失,当然也有可能不会影响性能,这取决于表中的数据量,如果表中有上千万条甚至上亿条的记录的话,全表扫描的速度会非常慢,而如果表中只有儿条、儿十条记录的话全表扫描的性能消耗可以忽略不计了。当表中的数据量比较小的吋候,使川全表扫描非常有川。但是随着表屮的数据屋的增加,全表扫描会导致系统性能的严重下降。如果表屮有索引并H待匹配条件符合索引的

6、要求,DBMS不会执行全表扫描,而是育接到索引中杳找,这将大大加快检索的速度。DBMS中都有杳询优化器,它会根据分布的统计信息生成该杏询语句的优化执行规划,以提高访问数据的效率为口标,确定是使川全表扫描还是索引查找。注意并不是表屮存在索引,在进行检索的时候就会使川到索引查找,如果使川不当,检索的过程仍然会采川全表扫描,这样索引就起不到作用了。5、优化的方法下面将列出一些常用的优化手段,并结合海关风险平台系统的数据表进行实际的应用说明,在海关风险平台经常使用到衣ENTRY_HEAD(报关单衣头)、ENTRY_L1ST(报关单

7、表体)和ENTRY_WORDFLOW(工作流表),ENTRY_HEAD衣中有记录三千多万条,ENTRY.LIST表中有记录一亿多条,ENTRY_WORDFLOW表中有记录三亿多条,这三个表保存着从海关总署分发到黄埔海关的报关单信息。三个表屮的记录数都比较大。三个表都在报关单字段ENTRY.ID上建有索引。5.1、创建必要的索引在经常需耍进行检索的字段上创建索引,比如经常耍按照企业代码进行检索,那么就应该衣企业代码字段上建立索引;如杲经常要按照报关单的申报时间进行检索,就应该在申报时间字段上建立索引。如ENTRY_HEAD表

8、在企业代码OWNER_CODE字段上就建立了索引。创建索引会给检索带来冃人的性能提升,因此在发现检索速度过慢的时候应该首先想到的就是创建索引。5.2、使用预编译查询程序通常根据用八的输入來动态执行SQL语句,这时应该尽量使用参数化的SQL,这样不仅可以避免SQL注入漏洞攻击,最重要的是数据库会对这些参数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。