针对性地对一些耗资源严重的具体应用进行优化
出现效能问题时,首先要做的是什么?这个问题我问过不少同事,有人说凭经验对出问题的sql进行优化,如我们一般说的要合理使用索引,尽量不要使用前面带*号的Like语句,不要再比较操作符前边进行计算或使用函数等等,这些道路都是对的,但经验有时候不一定能解决问题。问题出现时,首先要做的是确定问题点是什么,只有正确的找到问题后才能有针对性的解决问题。下面简单介绍我们一般从哪些角度入手,来确定问题所在。
1.首先从业务上理解该处功能,理解用户的真正意图,用户真正关注的是什么,想要的是什么数据,是否有变通简洁的方法达到用户要求。而非使用复杂sql查询。其实有些时候进行变通的修改,同样能达到目的,但是采用的sql语句已经极大地简化了。这是解决效能问题的优先要考虑的。
2.对固定的sql进行优化时,一定要关注查询相关的数据量,关注数据量的大小,有些时候用户进行一个查询,若没有处理好查询条件的话,返回的记录集合太大,这对用户来说,其实意义不大,关键是这样必然会导致较多的磁盘IO,效能问题是必然的。除非是用户真的需要这么多数据,但事实证明,多数都不是的,所以着眼点是怎样限制返回的记录集的大小或查询中使用的临时中间数据集合的大小。这样才能使你的优化达到效果,起到作用。
下面简单介绍几种常用的检查问题sql的方法。
当然其中是有些技巧的,如:
使用 set statistics io on 检查实际的磁盘IO信息,物理读、逻辑读等信息,这个是一个简单有效的参考数据,在笔者以往的经验中,也是主要的参考数据。
在查询分析器中贴出问题sql,使用set statistics io 为on,也可以在空白处点击右键,选择<查询选项>,
参考当前语句的估计的执行计划或实际的执行计划,分析当前语句执行时SQL Server 查询优化器所选择的数据检索方法。
分享到:
相关推荐
9. 让 SQL 语句用上合理的索引,合理让 SQL 语句使用索引的原则如下: 首先,看是否用上了索引,对于该使用索引而没有用上索引的 SQL 语句,应该想办法用上索引。 其次,看是否用上正确的索引了,特别复杂的 ...
本书适合于专业数据库开发者、BI开发者、DBA和以SQL Server作为后台数据库的一般应用程序开发者,读者可以通过书中的最佳实践、高级技巧和代码示例来掌握查询调整和优化的技巧,以针对不同问题开发出切合实际的高...
详细描述了informix数据库中如何对sql进行性能分析的方法
MySQL 的 SQL 語法調整主要都是使用 EXPLAIN , 但是這個並沒辦法知道詳細的 Ram(Memory)/CPU 等使用量. 於 MySQL 5.0.37 以上開始支援 MySQL Query Profiler, 可以查詢...效能分析主要分下述三種(轉載自上篇): Bottl
缺点: 1.会产生脏读 ... 要提升SQL的查询效能,一般来说大家会以建立索引(index)为第一考虑。其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环
什么是 MySQL优化? MySQL作为当下最为时兴的数据库 之一,在自身的高效能执行任务的同时也会消耗着系统的资源,因业务需求的差异,执行的任务 所消耗的资源也大大不同。...SQL语句 字段设计优化 数据的精度:
基于.NET C#4.0 分层开发。自主的模板引擎(类标签式)、独有的插件扩展...数据库支持:MS SQL Server 2000及以上(注:系统内所使用的SQL语句支持Access数据库,您可自行对源码数据库链接方式部分进行修改即可!)。
数据库支持:MS SQL Server 2000及以上(注:系统内所使用的SQL语句支持Access数据库,您可自行对源码数据库链接方式部分进行修改即可!)。 2012/05/03 V1.3 1.将原.Net4.0框架降为2.0,以适应更多需要; 2.网站...
系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高 度优化的SQL 语句(或存储过程)才能达到系统性能设计指标。 面对这样的需求,再次举起Hibernate 大刀,却发现刀锋不再锐利,甚至...
2.4.1 怎样查找产生锁的 SQL 语句 2.4.2 怎样释放锁 2.4.3 怎样删除用户会话 2.4.4 怎样从数据字典中提取视图创建 命令 2.4.5 怎样从数据字典中提取索引定义 2.5 回顾 第3章 导出和导入技术 3.1 导出/导入...
iNethinkCMS网站内容管理系统源码版 v1.3.6,iNethinkCMS基于.NET2.0 C#...数据库支持:MS SQL Server 2000及以上(注:系统内所使用的SQL语句支持Access数据库,您可自行对源码数据库链接方式部分进行修改即可!)。
JDBC是用于执行SQL语句的Java应用程序接口,由一组用Java语言编写的类与接口组成。在JSP中将使用JDBC来访问数据库。JDBC是一种规范,它让各数据库厂商为Java程序员提供标准的数据库访问类和接口,这样就使得独立于...