一条记录从远程数据库读出到本地服务器(开发)上显示出来用了8秒左右,读出一段数据列表(20条)用了14秒左右,感觉比较慢,连接本地数据库基本就2秒,用了oscache也没有效果(数据读取使用Ajax,缓存不起作用吧?),想问问可能是那里的问题,怎么去查找?这和数据库配置有关系么?SQLServer 2000,远程数据库不是我控制的,不知道会不会是它造成的影响,如果它配置不好,我本地调试是没有作用的.
调试欢乐多
[SQLinfo] SELECT yhid FROM yuloostudy_site.dbo.news_admin where yhm='kaka' and yhmm='123456' ##NewsAdminDAO_isAdmin()
[TIMEinfo] 14:10:07 ##NewsAdminDAO_isAdmin() OUT
[TIMEinfo] 14:10:07 ##InfoManager_newslistinit IN
[TIMEinfo] 14:10:07 ##InfoManagerAction_getNewsListLimit() IN
[TIMEinfo] 14:10:07 ##NewsContentDAO_useSQLServer() IN
[TIMEinfo] 14:10:12 ##NewsContentDAO_useSQLServer() OUT
[TIMEinfo] 14:10:12 ##NewsContentDAO_getNewsListLimit() IN
[SQLinfo] SELECT TOP 20 xwid,xwbt,xwzt,xwmlid,xwcjsj,xwgqsj,xwdjl,xwsx,xwfbr FROM yuloostudy_site.dbo.news_content WHERE (xwid NOT IN(SELECT TOP 0 xwid FROM yuloostudy_site.dbo.news_content ORDER BY xwid)) ORDER BY xwid ##NewsContentDAO_getNewsListLimit()
[TIMEinfo] 14:10:13 ##NewsContentDAO_getNewsListLimit() OUT
[TIMEinfo] 14:10:13 ##InfoManagerAction_getNewsListLimit() OUT
[TIMEinfo] 14:10:13 ##InfoManagerAction_getNewsCount() IN
[TIMEinfo] 14:10:13 ##NewsContentDAO_useSQLServer() IN <=== 一次莫名其妙的进入
[TIMEinfo] 14:10:17 ##NewsContentDAO_useSQLServer() OUT <=== 什么也没做就出去了
[TIMEinfo] 14:10:17 ##NewsContentDAO_getNewsCount() IN
[SQLinfo] select count(xwid) as total from yuloostudy_site.dbo.news_content; ##NewsContentDAO_getNewsCount()
[TIMEinfo] 14:10:18 ##NewsContentDAO_getNewsCount() OUT
[TIMEinfo] 14:10:18 ##InfoManagerAction_getNewsCount() OUT
[TIMEinfo] 14:10:18 ##InfoManager_gnewslistinit OUT发现时间延迟就是耗在了useSQLServer()方法里,这个方法是先new 一个对象,然后用obj.useSQLServer()来指定数据库,判断问题可能是重复调用了数据库连接方法:
public void useSQLServer()
{
LogOut.TimeBreak("##NewsContentDAO_useSQLServer() IN");
dbFlag="SQLServer";
conn=SQLServerConnection.getConn();
dbname=SQLServerConnection.getDBname();
LogOut.TimeBreak("##NewsContentDAO_useSQLServer() OUT");
}
================================================================oscache是起作用的,用Ajax提交数据到数据库保存后,刷列表页面,没有变化
开始认为读页面慢是没有读缓存,实际可能是连接的事情.但是既然缓存了页面,为什么还要使用连接,应该不走业务逻辑了把?Ajax的原因?