网站性能优化 - 数据库及服务器架构篇[转载

2025/12/19 4:54:45Posted by Gufang

我先前曾写过三篇有关网站系统、ASP.NET 性能优化的文章,分别从 SQL 语句、数据库设计、ASP.NET 功能、IIS 7 的套件,来探讨此一性能议题。本帖算是系列作的第四篇,整理了一些我看过的书籍和文章,改从「负载均衡、服务器架构、数据库扩展」的角度,提出一些性能优化的建议,以供有建设中大型网站需求的网友们作为参考。

小弟我先前写过的三篇帖子:

(一) 30 分钟快快乐乐学 SQL Performance Tuninghttp://www.cnblogs.com/WizardWu/archive/2008/10/27/1320055.html

(二) 网站性能越来越差...

IIS最大并发连接数

2025/12/19 4:51:58Posted by Gufang

最大并发连接数 = 队列长度 + 工作线程数

【工作线程数】

IIS实际可以第一时间处理的请求数。比如,工作线程数 = 100,一万个连接请求同时涌过来,那么只有100个可以被处理,其余9900个进入等待队列等待,或者直接以503错误(服务器不可用)返回。

工作线程可以通过Machine.config的maxWorkerThreads修改

【队列长度】

除了IIS工作线程数可以第一时间进行处理外,其余的请求可以进入等待队列进行等待的数量。比如:

工作线程数 = 100

队列长度 = 5000

那么一万个连接请求同时涌过来,将有1...

深入理解IIS的多线程工作机制

2025/12/19 4:50:45Posted by Gufang

首先让我们来看看IIS里面的这2个数字:最大并发连接数,队列长度。先说这2个数字在哪里看。

最大并发连接数:在IIS中选中一个网站,右键网站名称,在右键菜单中找到并点击【管理网站】->【高级设置】。打开对话框如下图:

 

队列长度:在IIS中选中【应用程序池】,在应用程序池列表中,右键你想查看的,在右键菜单中选择【高级设置】。打开如下对话框:

 

这两个数字表面上看是影响我们站点的并发处理能力的,但是具体是如何影响一个网站的并发处理能力的呢?要完全理解IIS的并发处理能力,除了这2个数字,实际上还有一个非常关键的数字:II...

如何设置IIS程序池的回收时间,才能最大程度

2025/12/19 4:47:56Posted by Gufang

作为.Net开发人员,其实对IIS的应用程序池知之甚少,在工作中我也有几次遇到过网站无故打不开的情况,找了半天原因也找不到是怎么造成的,有一次我给网站换了一个应用程序池后发现就能正常访问了,这也让我对辨别是问题产生了好奇和疑问,于是开始找这方面的一些资料,原来IIS的应用程序池一般默认都会自动回收的,默认有29个小时回收一次,所以很多时候因为不是上班时间我们没有遇到过,那么对于互联网web应用,如何在用户毫无感知的情况下回收程序池?(对用户产生最小的影响)

简单理解IIS应用程序池应用程序池可以看成是装载计算机分配给Web应用程序的内存的容器。

网络上有人这样比喻...

SQL统计每科前三名的学生的语句

2025/12/19 4:44:06Posted by Gufang

偶然在论坛看到一个网友的帖子,关于他遇到一个面试题的,网站写了很多,我看了一下,结果应该是没问题的,但是为何面试官还是不满意,我想面试官可能并不是想考你真能把这道题做出来,而是看你如何简洁的通过一个sql语句就完成,重点我想是面试官想看到"row_number"  "partition"这样的关键字吧

下面说下具体分析做法

有个成绩表 StuScore(StuId,Subject,Score)分别为学号,课程名,成绩。

问题:用语句查询出每科的前三名学生的学号

1.创建测试sql语句

create&n...