秋色园QBlog技术原理解析:性能优化篇:打印页面SQL,全局的SQL语句优化(十三)

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介:

文章回顾:

复制代码

1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用

2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程

3: 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三) --介绍如何实现无后缀URL

4: 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍URL如何定位到处理程序

5: 秋色园QBlog技术原理解析:Module之页面基类设计(五) --介绍创建基类和自定义生命周期

6: 秋色园QBlog技术原理解析:Module之页面基类-生命周期流程(六) --介绍基类生命周期内部业务

7: 秋色园QBlog技术原理解析:Module之基类生命周期-页面加载(七) --介绍界面html加载原理

8: 秋色园QBlog技术原理解析:Web之页面处理-内容填充(八) --介绍html的内容是如何填充

9: 秋色园QBlog技术原理解析:独创的多语言翻译机制(九) --介绍html多语言翻译原理

10: 秋色园QBlog技术原理解析:页面内容填充及多语言翻译流程演示示例(十) --总结演示示例代码

11:秋色园QBlog技术原理解析:页面Post提交机制(十一) --介绍如果Post提交数据

12: 秋色园QBlog技术原理解析:性能优化篇:字节与缓存与并发(十二) --介绍性能优化:字节,并发及缓存

附章:

1:秋色园QBlog技术原理解析:博客一键安装工具技术实现[附源码下载] --开源秋色园安装工具原理

2:如何安装部署秋色园CYQBlog站点

3:Windows7下如何安装部署秋色园CYQBlog站点

复制代码

 

PS:秋色园QBlog下载地址http://www.cyqdata.com/download/article-detail-427

 

上节回顾:

上一节中,介绍了  秋色园QBlog 在性能优化方面所做的基础工作,包括字节输出大小,写并发控制,缓存控制等。特别是对缓存的处理,做到全局把握,优化内存资源,合理调优化。 CYQ.Data 在性能调优方面表现出一定的优势。

 

本节介绍:

本节将介绍秋色园  QBlog 更进一步的网站优化方式:全局的SQL语句优化。

       

        在传统的软件(网站)开发中,几乎离不开数据库,而且数据库占据了绝对性的重要性,其数据库性能不断考验着每一位开发者,对数据库调优也成了每一个开发者的必备技能,其重要性不言而喻。

 

既然SQL调优如此重要,那平时这又是一种什么情况呢?

 

一:SQL,你在哪里?出来让我优化优化?

 

情况1:新手型SQL,何处寻优化?

有一些开发的站点,SQL在页面满天飞,快速开发之后,上线了,之后大乎网站打开很慢,自己束手无策,于是发贴求优化。你说,你这让你咋优化?都不知道你SQL在哪里,看你源码每个页面找一找?不能吧!

 

情况2:经验驱动型的索引优化

有一些有经验的开发者,在开发前后,会根据经验对数据库建立一些索引,以提高查询性能,但是往往它都是受经验驱动,而不是受实际执行的SQL驱动在优化。其实本质上,它也不知道哪条语句是什么情况,只是觉得应该,应该加个索引,通常效果都不会太差。

 

情况3:DBA热爱存储过程

一些公司有DBA的,通常会建议弄成存储过程,图个啥?性能高?也许不是,也许只因这样能够掌握所有SQL,方便他们做SQL语句优化。但不是每个公司都有DBA或者不是每个项目都把SQL折腾全是存储过程的。

 

情况4:统一的SQL语句

有些开发者,习惯把SQL语句配置到Xml中,是方便统一管理,还是方便修改SQL语句时不用重新编绎,还是为了展示下高级的应用而使用,各有各目的,不好说,说不好,不说好。但是这些Xml,通常都是配置完写完就扔一边,无奈一个系统最终产生的SQL实在是太多了,到最后你没事都懒的去看xml文件,而且调试代码转到SQL这来,还要看Xml,特纠结,优化别找我,把Xml扔给DBA?

 

情况5:高手寻瓶颈SQL

有一些高手,他们会利用性能跟踪调试器,在一堆又一堆的SQL语句中寻找性能瓶颈的SQL语句。这个相当的考验脑力和眼力,就一个字,厉害。

 

        以上的方式,各有各方式,但都是一种情况,难以简单化的对SQL重点语句进行定位分析。

 

那秋色园又是如何对SQL进行调优的呢?按F5一步一步断点看语句?

No,受到缓存全局掌控的启示,决定让SQL也做到全局掌握,该出来时就出来?往下看:

 

二:SQL,该出来时就出来,全面掌控SQL

 

秋色园在性能优化上,虽然在缓存上面做了全局优化,但缓存总有失效时,操作数据库是逃不开的事实。

 

缓存能全局掌控,SQL语句,我也要。为此,思索了不少时间:

 

于是,细分下产生了这么三条要求:

1:必须知道每个页面执行的SQL,

2:需要知道每一条的语句的执行时间

3:过滤出执行时间大于N(ms)的语句,把执行时间多的优化了先。

 

如何能做到这一点?缓存可以,SQL也可以。

1:所有执行的SQL语句有一个共同点,都是通过 CYQ.Data 来执行。

2:对执行的SQL进行统一管理,本身MAction.DebugInfo能输出执行的SQL语句,只要加以控制,即可任意输出页面的SQL。

 

于是,这么一个强大的打印页面SQL功能就出来了:

 

测试地址:http://demo.cyqdata.com

 

测试说明:

为了更好的展示效果,把秋色园QBlog,Copy一份放到另一台服务器,用上了sql2000数据库,同时关闭了缓存等效果,保证每次访问都执行原生的SQL语句并输出。

 

截图说明:

为了避开以后示例取消语句输出时,上面测试网址看不到测试结果,特别截图一张,打印>1ms的页面语句出来。

 

如下图:

 

实现调优:

如果你顺手打开上面的测试站点,你已经发现,可以看到任意一个页面执行的SQL输出,同时还有语句的执行时间,站点慢不慢,一看就知道。SQL语句优化,变的可控而且轻松很多,索引该怎么加,心中多了几分把握。

 

如此功能:

CYQ.Data 已经具备,如果你已经在使用CYQ.Data开发项目,而且也希望在新版本中体验这个功能,可以与作者联系。

 

 

总结:

本节介绍了秋色园QBlog 的SQL优化策略,下节继续介绍优化策略的再后续部分,敬请关注。

 

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2011/05/16/2047512.html

相关文章
|
2月前
|
SQL 存储 关系型数据库
如何巧用索引优化SQL语句性能?
本文从索引角度探讨了如何优化MySQL中的SQL语句性能。首先介绍了如何通过查看执行时间和执行计划定位慢SQL,并详细解析了EXPLAIN命令的各个字段含义。接着讲解了索引优化的关键点,包括聚簇索引、索引覆盖、联合索引及最左前缀原则等。最后,通过具体示例展示了索引如何提升查询速度,并提供了三层B+树的存储容量计算方法。通过这些技巧,可以帮助开发者有效提升数据库查询效率。
137 2
|
16天前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
25天前
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
82 10
|
24天前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
2月前
|
SQL 资源调度 分布式计算
如何让SQL跑快一点?(优化指南)
这篇文章主要探讨了如何在阿里云MaxCompute(原ODPS)平台上对SQL任务进行优化,特别是针对大数据处理和分析场景下的性能优化。
|
2月前
|
SQL 监控 数据库
慢SQL对数据库写入性能的影响及优化技巧
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生显著的不利影响
|
2月前
|
SQL 关系型数据库 PostgreSQL
遇到SQL 子查询性能很差?其实可以这样优化
遇到SQL 子查询性能很差?其实可以这样优化
98 2
|
2月前
|
SQL 存储 数据库
慢SQL对数据库写入性能的影响及优化技巧
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生显著的不利影响
|
2月前
|
SQL 数据处理 数据库
SQL语句优化与查询结果优化:提升数据库性能的实战技巧
在数据库管理和应用中,SQL语句的编写和查询结果的优化是提升数据库性能的关键环节
|
2月前
|
SQL 存储 数据库
慢SQL对数据库写入性能的影响及优化策略
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生不利影响