请提建议:如何最大限制地提升WEB服务器和SQLSERVER2000企业版数据库的性能,使网站进入速度更快!(300分)

  • 主题发起人 dingbaosheng
  • 开始时间
D

dingbaosheng

Unregistered / Unconfirmed
GUEST, unregistred user!
如题!!!
建议有效,分数不限。提前、灌水者都有分!!!
 
K

Kingron

Unregistered / Unconfirmed
GUEST, unregistred user!
抱歉,没有做过WEB Server,用过SQL Server,但是不精通。
 
J

jobsxy

Unregistered / Unconfirmed
GUEST, unregistred user!
1、最好是Web服务器与MSSQL数据库服务器分成不同的机器
2、尽量用静态网页。比如“个人信息”,新注册或个人资料发生修改后,自动生成静止页面
这样可以减少服务器负荷。
一点点经验。
 
Y

yhaochuan

Unregistered / Unconfirmed
GUEST, unregistred user!
开发为多层结构。在中间层封闭操作。
然后将IIS和中间层、数据库分别放在不同服务器上,分担运作负担。
 
S

snjat

Unregistered / Unconfirmed
GUEST, unregistred user!
减少一些不必要的FLASH动画。
设定“踢人机制”,时间可设少一点,如发呆不响应为3分钟。
Web服务器与MSSQL数据库服务器分成不同的机器
 
D

dingbaosheng

Unregistered / Unconfirmed
GUEST, unregistred user!
To:jobsxy等
Web服务器与MSSQL数据库服务器就是用的两台机器,但性能还是不太行。两台服务器
系统都是Windows Server2000。
是不是还要配置一些别的东东啊?
 
C

Chenlili

Unregistered / Unconfirmed
GUEST, unregistred user!
timeout是肯定要的
把server和iis配在不同的机器上效果可能会好一点。
 
D

dingbaosheng

Unregistered / Unconfirmed
GUEST, unregistred user!
TO:Chenlili
timeout设为多少合适呢?
 
C

Chenlili

Unregistered / Unconfirmed
GUEST, unregistred user!
看你的网络状况阿。
 
D

dingbaosheng

Unregistered / Unconfirmed
GUEST, unregistred user!
TO:Chenlili
怎么说呢 ?看网络情况有点笼统阿?网速快是设大一点呢还是小一点好?
我们的主机是在电信托管的!!!
 
W

wlmmlw

Unregistered / Unconfirmed
GUEST, unregistred user!
分分分!!
服务器分开,数据库分开,还有什么可分的都分开!!
 
T

t1122

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库服务器和Web服务器分开是第一步,然后还有:
网站进入的速度跟内存有很大的关系,加大个服务器的内存。
如果数据量特别大,采用多个物理服务器,这样可以减少io瓶颈。
尽可能的多使用静态网页,谨慎使用图片,不用大的图片(可以分成几个小的图片分别下载)。
需要检索的时候尽力不要用asp,采用isasp技术,这样可以使用一个连接多次访问用来节约资
源,可以在启动的时候调入dll到内存中,减少程序装载、运行时间。
采用数据库缓冲池和应用程序缓冲池,尽量提高命中率。
如果需要asp,那么采用asp缓冲技术。
分帧下载图片,先出现图片的概貌,再下载。
如果不是十分擅长java,就不要用他,因为访问需要先下载java程序。
 
D

dingbaosheng

Unregistered / Unconfirmed
GUEST, unregistred user!
To:t1122,
恕我愚昧,请问isasp技术是什么东东?asp缓冲技术如何使用呢?
我们的数据库服务器和Web服务器是分开的!服务器内存也有256M以上!
没有用到JAVA ^_^
 
T

t1122

Unregistered / Unconfirmed
GUEST, unregistred user!

使用ASP中的缓存技术可以很大程度上提高你的网站性能,其实这些实现方法是非常的简单,
它将说明如何在服务器上的缓存是如何工作以及你如何使用一种被称为断开连接的ADO连接技
术。
在介绍这些技术之前先说明一下到底什么是ASP的缓存技术。
所谓缓存其实就是在内存中开辟一个用来保存数据的空间,使用缓存你就不用频繁的访问
你保存在硬盘上的数据了,灵活的使用缓存你就免去了心疼的看着可怜的硬盘饱受读数据时的
折磨了。当你一旦执行了一个查询动作,并且将查询结果放入缓存中后,你就可以很迅速的重
复访问这些数据了。而如果你不把数据放入缓存的话,当你再次执行这个查询时,服务器会
将进程耗费在从数据库中获取并排序上了。
  当数据保存在缓存中时,再次查询时耗费的时间主要是在显示数据的时间上了。也就是说,
我们不应该把经常需要改变的数据放到服务端的缓存中,我们应该把改变少,但是又需要经常访
问的数据放到缓存中。
  现在我们先讨论ASP在服务端使用缓存的技术,过会再讨论ASP如何在客户端使用
缓存的技术。
  当你有大量的数据(静态的,就是说变动比较少的)需要显示给客户端时,你就可以考
虑使用服务端的缓存技术了。这种技术尤其适用于那些显示风格一致性比较强的网站(呵呵,
对于非主流的网站可不好用的说。)
  其实实现方法特别的简单,大家只要看看下面这个简单的例子就明白了。
  这是一个用来显示书籍分类的例子程序
DisplayBooks.ASP文件:
< %@ LANGUAGE=JavaScript % >
< html >
< body >
< form method=post >
书籍分类; < %= getBooksListBox() % >
< p>
< input type=submit >

< %
function getBooksListBox()
{
BooksListBox = Application("BooksListBox")
if (BooksListBox != null) return BooksListBox;
crlf = String.fromCharCode(13, 10)
BooksListBox = "< select name=Books>" + crlf;
SQL = "SELECT * FROM Books ORDER BY Name";
cnnBooks = Server.CreateObject("ADODB.Connection");
cnnBooks.Open("Books", "Admin","");
rstBooks = cnnBooks.Execute(SQL);
fldBookName = rstBooks("BookName");
while (!rstBooks.EOF){
BooksListBox = BooksListBox + " < option>" +
fldBookName + "" + crlf;
rstBooks.MoveNext();
}
BooksListBox = BooksListBox + ""
Application("BooksListBox") = BooksListBox
return BooksListBox;
}
% >
  很简单把,其实就是用了很简单的Application技术,而且就一句话的不同:
  Application("BooksListBox") = BooksListBox
  你可以验证一下你就会发现服务器上的请求数量会降低不少的。这种情况尤其适合与那
些更新不是很频繁的网站内容,例如你一天(或则很长时间)只更新一次。
  下面再讨论一种客户端的缓存技术这种技术也叫断开连接的ADO连接技术(翻译水平太次
,听上去怎么这么别扭)。这种技术主要使用在用来保存用户个人信息,例如用户的密码,
代号等等上面。它主要使用了ADO的一些属性。同时也回答了一些网友曾经提到过的能否在
Applocation中使用ADO对象的问题。解释不清楚,下面让代码来发言:
文件GLOBAL.ASA:
< !--METADATA TYPE="TypeLib" FILE="C:/Program Files/Common Files/system/ado
/msado15.dll"-- >
< SCRIPT LANGUAGE=VBScript RUNAT="Server" >
Sub Application_OnStart
SQL = "SELECT UserName, Password FROM UserInfo"
cnnUsers = "DSN=User"
Set rsUsers = Server.CreateObject("ADODB.Recordset")
'注意下面这两句话,就是用来实现那个叫可用的断开连接的ADO技术
rsCustomers.CursorLocation = adUseClient
rsCustomers.Open SQL, cnnAdvWorks, adOpenStatic, AdLockReadOnly
' 断开RecordSet的和数据库的连接
rsCustomers.ActiveConnection = Nothing
Set Application("rsCustomers") = rsCustomers
End Sub

文件Users.ASP
< %
'Clone方法使得每个用户拥有自己的一个RecordSet集合
Set yourUsers = Application("rsUsers").Clone
Set UserName = yourUsers("UserName")
Set Password = yourUsers("Password")
Do Until yourUsers.EOF
% >
用户姓名:< %= UserName % > 用户密码:< %= Password % >
< %
yourUsers.MoveNext
Loop
% >
 
T

t1122

Unregistered / Unconfirmed
GUEST, unregistred user!
见过这种访问吗:http://www.msn.com/custom/page1.dll?CUST=on
这就是isapi协议,就是使用动态连接库来访问动态页面。当然,使用动态连接库需要你的编程水平
有一定的层次,不然很容易出问题。动态连接库访问数据库的速度是最快的,也是功能最强大的。
不过一定要有服务器支持,要设置可执行权限。还有,最好在连接数据库是如果是tcp/ip协议
会慢一些,使用管道或者微软自己的协议快一些。如果一定要使用tcp/ip,那么要定义局域网
地址如:192.128.……,这样会快一点也安全的多。
 
D

dingbaosheng

Unregistered / Unconfirmed
GUEST, unregistred user!
To:t1122
哦,谢谢!!!我用的是SESSION保存的连接 ^_^
 
D

dingbaosheng

Unregistered / Unconfirmed
GUEST, unregistred user!
还有别的大虾要发表的吗?
 
K

kehua

Unregistered / Unconfirmed
GUEST, unregistred user!
利用WINDOWS 2000的网络载量平衡
 
D

dingbaosheng

Unregistered / Unconfirmed
GUEST, unregistred user!
To:kehua
如何 利用WINDOWS 2000的网络载量平衡???
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部