惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy & Cybersecurity Law Blog
V
V2EX
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Register - Security
The Register - Security
MongoDB | Blog
MongoDB | Blog
P
Privacy International News Feed
The Last Watchdog
The Last Watchdog
Security Archives - TechRepublic
Security Archives - TechRepublic
美团技术团队
Stack Overflow Blog
Stack Overflow Blog
博客园 - 司徒正美
博客园 - 三生石上(FineUI控件)
V
Visual Studio Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
K
Kaspersky official blog
S
Secure Thoughts
T
Tenable Blog
Security Latest
Security Latest
The Cloudflare Blog
S
Security @ Cisco Blogs
H
Heimdal Security Blog
aimingoo的专栏
aimingoo的专栏
TaoSecurity Blog
TaoSecurity Blog
Blog — PlanetScale
Blog — PlanetScale
Microsoft Security Blog
Microsoft Security Blog
Schneier on Security
Schneier on Security
Webroot Blog
Webroot Blog
G
Google Developers Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Scott Helme
Scott Helme
IT之家
IT之家
Latest news
Latest news
The Hacker News
The Hacker News
C
Check Point Blog
T
The Exploit Database - CXSecurity.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
C
CERT Recently Published Vulnerability Notes
NISL@THU
NISL@THU
N
News | PayPal Newsroom
Forbes - Security
Forbes - Security
P
Palo Alto Networks Blog
S
Security Affairs
S
Securelist
Google Online Security Blog
Google Online Security Blog
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
C
Cybersecurity and Infrastructure Security Agency CISA
A
About on SuperTechFans

博客园 - 阿斌

[导入]シャンハイ(上海) [导入]日语流行口语极短句888个(42) [导入]功能日语句型精解2 [导入]日语流行口语极短句888个(41) [导入]日语流行口语极短句888个(40) [导入]功能日语句型精解1 [导入]日语流行口语极短句888个(39) [导入]日语流行口语极短句888个(38) [导入]加班 [导入]Community Server 1.0 Source Release [导入]CommunityServer 1.1 源码及汉化文件 [导入]CnForums2.x体验 [导入]CommunityServer架构分析ppt [导入]CommunityServer实例分析——注册新用户(1) [导入]写一个给按钮、链接等控件增加快捷键的控件 [导入]CommunityServer 2.0 RTM 发布 [导入]将asp.net1.1的应用程序升级到asp.net2.0的一点心得 [导入]CommunityServer2.0 Beta1发布 [导入]Community Server 2.0中如何调试项目?我告诉你! [导入]关于Community Server开发日内容的安排 [导入]Community Server2.0专注细节专题Doc下载(2006-3-9更新) [导入]Community Server2.0专注细节一 邮件提醒按钮实现(上) [导入]Community Server 2.0 (SDK) 发布了 [导入]CommunityServer 2.0中Files 与 Reader 项目的授权机制
[导入]CommunityServer系统性能优化
阿斌 · 2008-01-04 · via 博客园 - 阿斌

发现CommunityServer(以下简称CS)系统在数据量多和访问量大的情况下对资源的占用还是比较厉害,尤其是Sqlserver,于是尝试进行对其进行优化,以下是对其优化的一个过程和参考方案,算是抛砖引玉:

针对SQLServer资源占用较高的情况,开始具体分析到底是哪些存储过程比较占用资源,在服务器上启动SQLServer的Profiler工具,对所有执行的存储过程、SQL进行记录,在记录了两个小时的日志后,下载到本地进行分析,分析结果发现,对于最新图片、分页读取帖子、最新Blog这类的存储过程执行较为频繁,且执行时间较长,尤其是其中的“最新图片”的存储过程,因为join了若干table,所以执行时间特别长,如果重启SQLServer后执行甚至有时超过20秒,所以在第一次打开首页时特别慢,当缓存更新后也是特别慢。

因为这部分内容都更新相对比较频繁,所以即使Cache也效果不是很理想。以其中论坛部分为例,首先要从cs_Threads表的几十万条记录中找到符合条件的ThreadID,再从中取出第一页所需要的最新N(假设为20)个ThreadID,然后根据这20个ThreadID从cs_Threads和cs_Posts表进行Join取得最新20篇新帖子,对于第一步:“从cs_Threads表的几十万条记录中找到符合条件的ThreadID”这个的SQL进行优化的难度比较大,而且效果也不是很明显。

对Logo再次分析,发现对于大多数用户来说,一般关注的是最新的帖子,所以大部分对于分页读取帖子的请求多数集中在第一页,就如我们进入一个板块,往往只看第一页的帖子,同样的也包括“最新图片”、“最新Blog”和“最新帖子”。于是有了个初步的想法,对cs_Threads表中,每个SectionID对应的Thread记录都用一个专门的表例如cs_CachedThreads,Cache上M条(M>=N),这个表中每个SectionID对应的Thread只保留最新的M条,并且和cs_Threads表保持同步,这样,cs_CachedThreads表记录一般保持在几千条以内。当需要读取最新的第一页数据时,就从cs_CachedThreads表读取,相对于从几十万记录的cs_Threads表读取来说,执行时间要少很多。

在这样优化一次以后,网站首页和各版面首页的执行效率还是提高不少,SQLServer的性能也有所提高。


文章来源:http://blog.joycode.com/dotey/archive/2005/10/31/66070.aspx