請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月14日 20:22 回復(fù)

我們圖書館圖書查詢系統(tǒng),采用ORACLE+Tomcat,使用servlet+JavaBean通過Tomcat的連接池直接訪問Oracle數(shù)據(jù)庫做查詢。

數(shù) 據(jù)量大約為40萬條圖書信息,(圖書信息采用類似xml的結(jié)構(gòu)存儲(chǔ),每冊圖書的書名、作者等信息作為一個(gè)CLOB字段存儲(chǔ),由于不能直接建立索引,我們把 其中的書名、作者等抽取出來存放在另外一個(gè)表中,這樣查詢時(shí)需要做兩個(gè)表的連接查詢),少量用戶查詢時(shí)還能及時(shí)響應(yīng),但是當(dāng)同時(shí)查詢的讀者多,響應(yīng)就特別 慢。

請問各位大蝦,我這個(gè)系統(tǒng)可以從哪些方面做性能改進(jìn)??
Azure_2003

發(fā)表文章: 95
注冊時(shí)間: 2004年06月14日 23:43
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月15日 19:22 回復(fù)
做cache,把數(shù)據(jù)庫里面的數(shù)據(jù)放到內(nèi)存里面,這樣可以加快查詢速度
banq

發(fā)表文章: 8048
注冊時(shí)間: 2002年08月03日 17:08
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月19日 09:44 回復(fù)
提高查詢性能需要從幾個(gè)方面提升。

首先你選擇的是原始的 Jsp/Servlet + JavaBeans結(jié)構(gòu),jsp/Servlet其實(shí)就是線程,當(dāng)并發(fā)用戶發(fā)生訪問時(shí),就是多線程了,因此,在你的程序中,首先避免多線程訪問同一個(gè)資 源,特別是Singleton方式,這個(gè)問題前面帖子已經(jīng)大量討論,這比如:本來是并行前進(jìn)的,到了一個(gè)獨(dú)木橋,必須串行前進(jìn),那么性能大大折扣了。


最 好的方式是,一個(gè)對象為一個(gè)線程服務(wù),并發(fā)10個(gè)線程就有10對象被訪問,這樣效率最高,但是同時(shí)注意,如果你這個(gè)Javabeans對象每次被訪問都要 new創(chuàng)建,有可能浪費(fèi)性能,特別是Javabeans代碼很多,功能很多時(shí),那么使用pool,在系統(tǒng)啟動(dòng)時(shí),就啟動(dòng)生成這些JavaBeans對象在 內(nèi)存中。

我上面說的這些javaBeans是功能性Javabeans,通過Pool提高功能性JavaBeans的性能。還有一種是數(shù)據(jù)javabeans,專門裝載數(shù)據(jù)的,這部分使用Cache來提高。

EJB 中的無態(tài)Session Bean底層已經(jīng)有Pool支持,如果你將功能性JavaBeans的代碼移植到Session Beans中實(shí)現(xiàn),那么會(huì)提高并發(fā)用戶的處理性能,使用SLSB的Local,關(guān)閉其網(wǎng)絡(luò)性能損耗;關(guān)閉SLSB事務(wù)機(jī)制(如果不需要),這樣將SLSB 變成一個(gè)純的Pool支持的特殊javaBeans了。

由于EJB中實(shí)體bean底層是有Cache支持的,因此可以用實(shí)體bean實(shí)現(xiàn)數(shù)據(jù)javaBeans的緩存,但是一般推薦,最好在Web層自己做一些緩存,這樣離客戶端最近,性能最好。

總 之,性能問題其實(shí)是架構(gòu)選擇不慎帶來的問題,在這個(gè)論壇看到了太多Jsp+JavaBeans的性能問題,為什么我們從系統(tǒng)一開始時(shí),不選擇可伸縮強(qiáng)大的 EJB架構(gòu)呢? 這樣 ,在你的系統(tǒng)擴(kuò)大時(shí),你就不必為系統(tǒng)性能問題頭疼,甚至性能問題導(dǎo)致了你的Jsp+JavaBeans系統(tǒng)失敗。







albert_qhd

發(fā)表文章: 8
注冊時(shí)間: 2002年08月30日 15:30
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月19日 15:03 回復(fù)
EJB并不是萬能的,什么系統(tǒng)都推薦EJB,這是典型的誤人子弟
系統(tǒng)性能出現(xiàn)問題,應(yīng)該先找出瓶頸所在,可用一些性能測試工具來做
本應(yīng)用中,你為什么要把信息存成xml保存在blob中呢?這樣讀起來要解析,肯定性能有問題
如果你把這些信息都獨(dú)立成一個(gè)個(gè)字段,再對數(shù)據(jù)庫進(jìn)行一些性能優(yōu)化,應(yīng)該就沒有問題了。
40萬條記錄很少的
leexhwhy

發(fā)表文章: 2
注冊時(shí)間: 2004年05月28日 09:19
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月20日 09:08 回復(fù)
1:利用cache
2:修改sql,用oracle的特有的sql
3:不要輕易修改架構(gòu),ejb不是萬能的,很討厭那種動(dòng)輒就談ejb,絕對是誤導(dǎo)。
mikesun

發(fā)表文章: 2
注冊時(shí)間: 2004年03月17日 09:59
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月20日 09:49 回復(fù)
對于ejb,我們曾經(jīng)有過痛苦的經(jīng)歷,就是我們目前做的項(xiàng)目,幾千萬的大型集成軟件,當(dāng)初架構(gòu)采用session bean,沒有采用實(shí)體bean,但是目前提供的ejb容器在開發(fā)設(shè)計(jì)之初,總會(huì)測試出這樣那樣的問題(往往都是不可預(yù)知的錯(cuò)誤,由于我們是財(cái)務(wù)項(xiàng)目,異 常情況如果不能很好控制的話,其產(chǎn)品性能可想而知了)....,并且好多問題找供應(yīng)商尋求解決,但是多方尋求結(jié)果未果的情況下,只好采用了比較成熟的 struts(MVC)來進(jìn)行開發(fā)。
對于查詢的性能提高情況,個(gè)人理解有兩個(gè)地方,一:前臺(tái)與數(shù)據(jù)庫之間的控制處理模式(JDBC或其他包裝后處理程序)是至關(guān)重要的,這不僅僅影響查詢的性 能,同時(shí)還決定著系統(tǒng)的可擴(kuò)充性和健壯性,提個(gè)很現(xiàn)實(shí)的問題:對于多數(shù)據(jù)庫的支持,不僅要有通用性,還要有各自的相關(guān)優(yōu)化措施才可以。
二:對于查詢后的數(shù)據(jù)如何進(jìn)行有效的處理,這也是影響查詢性能的重要因素,如何進(jìn)行高效準(zhǔn)確的展示,當(dāng)然包括一些中間駐留信息的保存、刪除等處理,這些也可以規(guī)劃為一種展示模式的設(shè)計(jì)。
以上兩點(diǎn)為個(gè)人陋見,請大家一塊討論!!
dabb

發(fā)表文章: 238
注冊時(shí)間: 2004年04月21日 15:02
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月20日 20:05 回復(fù)
40萬的記錄并不大,這樣就不行了,肯定是設(shè)計(jì) 有問題.不明白你們?yōu)槭裁匆脁ml存儲(chǔ),然后再存成block字段?感覺象為了使用xml而用xml!
hb_nj

發(fā)表文章: 3
注冊時(shí)間: 2004年07月20日 23:19
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月20日 23:27 回復(fù)
Javabean以及Singleton與性能關(guān)系不大,使用純的javabean時(shí),因?yàn)闆]有遠(yuǎn)程調(diào)用,性能比EJB要好,但是javabean中有synchronized關(guān)鍵字的另當(dāng)別論,這個(gè)時(shí)候的Singleton成為了“獨(dú)步橋”,性能會(huì)變得低下


import java.util.*;
import org.apache.log4j.*;

public class ThreadImpl extends Thread
{
public void run ()
{
BizTask.getInstance().run();
}

public static void main(String[] args)
{
for (int i = 0; i < 100; i++)
{
ThreadImpl t = new ThreadImpl ();
t.start();
}
}
}

class BizTask
{
private static final Category logger = Category.getInstance (BizTask.class);
private static BizTask instance = null;

private BizTask()
{
super();
}

public static BizTask getInstance()
{
if (instance == null)
instance = new BizTask();
return instance;
}

public synchronized void run ()
{
try
{
Thread.sleep(1000);
logger.debug(new Date());
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}



代碼中BizTask是一個(gè)Singleton實(shí)例,但是
public synchronized void run ()方法的synchronized 將嚴(yán)重的影響性能,如果沒有這個(gè)synchronized ,性能和不使用Singleton實(shí)例基本一致
hb_nj

發(fā)表文章: 3
注冊時(shí)間: 2004年07月20日 23:19
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月20日 23:36 回復(fù)
一點(diǎn)淺見,請大家指正:
個(gè)人認(rèn)為,Javabean以及 Singleton與性能關(guān)系不大,使用純的javabean時(shí),因?yàn)闆]有遠(yuǎn)程調(diào)用,性能可能比EJB更好,但是javabean的方法中有 synchronized關(guān)鍵字或者javabean調(diào)用了一個(gè)synchronized方法時(shí)的另當(dāng)別論,這個(gè)時(shí)候的Singleton成為了“獨(dú)步 橋”,性能會(huì)變得低下
也就是說
Singleton + synchronized 將形成瓶頸
兩者如果不在一起,不會(huì)形成瓶頸


import java.util.*;
import org.apache.log4j.*;

public class ThreadImpl extends Thread
{
public void run ()
{
BizTask.getInstance().run();
}

public static void main(String[] args)
{
for (int i = 0; i < 100; i++)
{
ThreadImpl t = new ThreadImpl ();
t.start();
}
}
}

class BizTask
{
private static final Category logger = Category.getInstance (BizTask.class);
private static BizTask instance = null;

private BizTask()
{
super();
}

public static BizTask getInstance()
{
if (instance == null)
instance = new BizTask();
return instance;
}

public synchronized void run ()
{
try
{
Thread.sleep(1000);
logger.debug(new Date());
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}


代碼中BizTask是一個(gè)Singleton實(shí)例,但是
public synchronized void run ()方法的synchronized 將嚴(yán)重的影響性能,如果沒有這個(gè)synchronized ,性能和不使用Singleton實(shí)例基本一致

個(gè)人認(rèn)為:
使用EJB的好處是可以得到可以縮放的體系結(jié)構(gòu),業(yè)務(wù)實(shí)現(xiàn)可以部署在多個(gè)服務(wù)器中,形成分布式的體系結(jié)構(gòu)。系統(tǒng)的容量可以動(dòng)態(tài)的增加。
同時(shí),使用javabean的時(shí)候,需要考慮線程安全,并且因?yàn)楹瘮?shù)重入,在大量并發(fā)的時(shí)候,可能會(huì)出現(xiàn)內(nèi)存空間不夠,因?yàn)橐獎(jiǎng)討B(tài)的分配臨時(shí)變量。
在小系統(tǒng)的情況下,javabean+jsp的性能應(yīng)該高于ejb的系統(tǒng)

chenzhongshan

發(fā)表文章: 13
注冊時(shí)間: 2004年04月13日 14:31
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月21日 12:33 回復(fù)
數(shù)據(jù)庫
-------------------------------------------------------------
1、重新整理數(shù)據(jù)庫的結(jié)構(gòu),盡量減少數(shù)據(jù)表之間的關(guān)聯(lián);

2、創(chuàng)建索引,增強(qiáng)查詢的速度;

3、優(yōu)化你的sql語句,有個(gè)人使用SQL語句N強(qiáng),關(guān)聯(lián)了3--4個(gè)表,中間用到了UNION,LIKE,IN,執(zhí)行查詢,4萬條記錄,時(shí)間為25秒;

應(yīng)用服務(wù)器
--------------------------------------------------------------
1、適當(dāng)?shù)脑黾訑?shù)據(jù)庫連接池的連接,檢查是否存在資源未釋放的情況;

2、可以采用集群,增強(qiáng)并發(fā)訪問量;

JavaBean
--------------------------------------------------------------
1、減去一些臃腫的代碼,但是這樣勢必要造成代碼的可讀性差;

2、釋放你沒有關(guān)閉的資源,例如:IO資源、數(shù)據(jù)庫連接等;

3、采用多線程;

chenzhongshan

發(fā)表文章: 13
注冊時(shí)間: 2004年04月13日 14:31
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月21日 12:35 回復(fù)
提議:最好能夠自己檢查一下,找到出現(xiàn)性能瓶頸的真正所在:)
starry

發(fā)表文章: 9
注冊時(shí)間: 2002年11月11日 10:58
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月21日 15:11 回復(fù)
個(gè)人認(rèn)為你的系統(tǒng)的瓶頸大部分是因?yàn)閿?shù)據(jù)庫設(shè)計(jì)不良造成的。

40多萬條的數(shù)據(jù)用不到索引將是比較慢的,尤其當(dāng)并發(fā)數(shù)很多的時(shí)候。
建議你:
首先對數(shù)據(jù)庫做壓力測試,找出幾個(gè)典型的數(shù)據(jù)庫操作。用測試工具進(jìn)行壓力測試。有條件的話可以用Loadrunner,qaload比較優(yōu)秀的測試工具進(jìn) 行測試。這樣可以清楚的看到你的數(shù)據(jù)庫的最大負(fù)載,以及在并發(fā)數(shù)很高的情況的得系統(tǒng)響應(yīng)速度。找出瓶頸,優(yōu)化你的數(shù)據(jù)庫設(shè)計(jì)。如果改優(yōu)化的地方都優(yōu)化了還 是不信給就需要做數(shù)據(jù)庫集群了。
再次;把一些頻繁訪問的數(shù)據(jù)放到內(nèi)存中。盡量減少與數(shù)據(jù)庫之間的操作,減少數(shù)據(jù)庫壓力。這樣很容易提高系統(tǒng)響應(yīng)速度,增加訪問量
chenzhongshan

發(fā)表文章: 13
注冊時(shí)間: 2004年04月13日 14:31
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月21日 15:41 回復(fù)
>>>>>> 把一些頻繁訪問的數(shù)據(jù)放到內(nèi)存中。盡量減少與數(shù)據(jù)庫之間的操作,減少數(shù)據(jù)庫壓力。這樣很容易提高系統(tǒng)響應(yīng)速度,增加訪問量

有前提,應(yīng)該是頻繁訪問的、不進(jìn)行頻繁修改的數(shù)據(jù)放在內(nèi)存,同時(shí)希望摟主能夠提供更多的信息,以幫助更好的解決問題:)感覺我正在盲人摸象
cnwinds

發(fā)表文章: 4
注冊時(shí)間: 2004年07月22日 17:40
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月22日 17:44 回復(fù)
我個(gè)人認(rèn)為 圖書信息采用類似xml的結(jié)構(gòu)存儲(chǔ) 是影響性能的關(guān)鍵, 根本就沒有用到數(shù)據(jù)庫的處理能力, 而利用虛擬機(jī)去解析龐大的xml.

應(yīng)該把這個(gè)改掉
chenzhongshan

發(fā)表文章: 13
注冊時(shí)間: 2004年04月13日 14:31
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月23日 10:33 回復(fù)
>>我個(gè)人認(rèn)為 圖書信息采用類似xml的結(jié)構(gòu)存儲(chǔ) 是影響性能的關(guān)鍵, 根本就沒有用到數(shù)據(jù)庫的處理能力, 而利用虛擬機(jī)去解析龐大的xml.

也不一定,采用xml存儲(chǔ)可能會(huì)比采用數(shù)據(jù)庫存儲(chǔ)的性能要好些,舉個(gè)例子:
如果存儲(chǔ)樹形結(jié)構(gòu)的數(shù)據(jù)到數(shù)據(jù)庫中,可能需要進(jìn)行遍歷,當(dāng)進(jìn)行回朔查找上一級(jí)或者根節(jié)點(diǎn)的時(shí)候,是非常的消耗時(shí)間的,而采用xml存儲(chǔ)結(jié)構(gòu),這樣的查詢往往很快,你可以試一下xquery;
而且國內(nèi)現(xiàn)在存在倍多和timano公司的xml數(shù)據(jù)庫,查詢速度很快的,可以與關(guān)系型數(shù)據(jù)庫相媲美;
zhangmingjing

發(fā)表文章: 60
注冊時(shí)間: 2003年07月17日 15:19
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月23日 10:48 回復(fù)
請問“banq”,你上面提到的“最好在Web層自己做一些緩存,這樣離客戶端最近,性能最好。”,請問大概是如何實(shí)現(xiàn)的?
cnwinds

發(fā)表文章: 4
注冊時(shí)間: 2004年07月22日 17:40
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月23日 11:54 回復(fù)
> >>我個(gè)人認(rèn)為 圖書信息采用類似xml的結(jié)構(gòu)存儲(chǔ)
> 是影響性能的關(guān)鍵, 根本就沒有用到數(shù)據(jù)庫的處理能力,
> 而利用虛擬機(jī)去解析龐大的xml.
>
> 也不一定,采用xml存儲(chǔ)可能會(huì)比采用數(shù)據(jù)庫存儲(chǔ)的性能要好?
> ,舉個(gè)例子:
> 如果存儲(chǔ)樹形結(jié)構(gòu)的數(shù)據(jù)到數(shù)據(jù)庫中,可能需要進(jìn)行遍歷,當(dāng)
> 謝廝凡檎疑弦患痘蛘吒詰愕氖焙潁欠淺5南氖奔淶模
> 而采用xml存儲(chǔ)結(jié)構(gòu),這樣的查詢往往很快,你可以試一下xqu
> ry;
> 而且國內(nèi)現(xiàn)在存在倍多和timano公司的xml數(shù)據(jù)庫,查詢速度?
> 快的,可以與關(guān)系型數(shù)據(jù)庫相媲美;

原來新的數(shù)據(jù)庫已經(jīng)集成了對xml的支持了, 真是井底之蛙呀!
cnwinds

發(fā)表文章: 4
注冊時(shí)間: 2004年07月22日 17:40
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月23日 11:57 回復(fù)
> 請問“banq”,你上面提到的“最好在Web層自己做一些緩存?
> 這樣離客戶端最近,性能最好。”,請問大概是如何實(shí)現(xiàn)的?

就是把常用的內(nèi)容存放在內(nèi)容中, 用時(shí)只要訪問內(nèi)存, 不需要訪問數(shù)據(jù)庫或業(yè)務(wù)層, 這樣就快了.
zhangmingjing

發(fā)表文章: 60
注冊時(shí)間: 2003年07月17日 15:19
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月23日 12:28 回復(fù)
> >
> 請問“banq”,你上面提到的“最好在Web層自己做一些緩存?>
> >
> 這樣離客戶端最近,性能最好。”,請問大概是如何實(shí)現(xiàn)的?
>
>
> 就是把常用的內(nèi)容存放在內(nèi)容中, 用時(shí)只要訪問內(nèi)存,
> 不需要訪問數(shù)據(jù)庫或業(yè)務(wù)層, 這樣就快了.
原理我知道,我是指在Web層用什么技術(shù)實(shí)現(xiàn),特別是采用群集的系統(tǒng)。
hb_nj

發(fā)表文章: 3
注冊時(shí)間: 2004年07月20日 23:19
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月23日 23:39 回復(fù)
可以看看jboss cache或者oscache
hallguu

發(fā)表文章: 20
注冊時(shí)間: 2003年07月23日 14:35
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月24日 16:33 回復(fù)
請?jiān)囈辉噋revayler。

http://www.prevayler.org/wiki.jsp
mep

發(fā)表文章: 27
注冊時(shí)間: 2003年10月14日 08:53
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月25日 10:53 回復(fù)
VLDB(Very Large Data Bases) conference 2003中有一篇論文,
Balancing Performance and Data Freshness in Web Database Servers
作者在這片文章中精彩的奉獻(xiàn)了一種web和數(shù)據(jù)庫應(yīng)用對頁面進(jìn)行cache提高性能的方法。
VLDB是數(shù)據(jù)庫領(lǐng)域最著名的學(xué)術(shù)會(huì)議之一。
mep

發(fā)表文章: 27
注冊時(shí)間: 2003年10月14日 08:53
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月25日 10:55 回復(fù)
忘了鏈接:
http://wwwdb.informatik.uni-rostock.de/vldb2003/papers/S13P01.pdf
anonymous

發(fā)表文章: 0
注冊時(shí)間:
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月25日 13:38 回復(fù)
> > 就是把常用的內(nèi)容存放在內(nèi)容中, 用時(shí)只要訪問內(nèi)存,
> > 不需要訪問數(shù)據(jù)庫或業(yè)務(wù)層, 這樣就快了.


胡扯! 圖書館這樣的數(shù)據(jù)庫查詢的離散性很大,加上緩存,只會(huì)導(dǎo)致速度更慢,占內(nèi)存更大!
這是典型的數(shù)據(jù)庫設(shè)計(jì)問題導(dǎo)致的,還是老老實(shí)實(shí)抓取 SQL 語句,放到數(shù)據(jù)庫中仔細(xì)的 Explain 吧!

chenzhongshan

發(fā)表文章: 13
注冊時(shí)間: 2004年04月13日 14:31
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月26日 10:57 回復(fù)
> 最好在Web層自己做一些緩存,
> 這樣離客戶端最近,性能最好

這樣的話,是可以解決一些性能問題的;但是這樣必將帶來一些不必要的麻煩,比如數(shù)據(jù)同步;
zhangmingjing

發(fā)表文章: 60
注冊時(shí)間: 2003年07月17日 15:19
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月26日 13:20 回復(fù)
如果我沒有理解錯(cuò)的話,可能就是指在JavaBeans里自己做緩存。
asdlcj

發(fā)表文章: 22
注冊時(shí)間: 2004年03月19日 23:42
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月26日 14:13 回復(fù)
web層的緩存其實(shí)就是類似jive處理緩存的技術(shù)類似

用一些容器類來放數(shù)據(jù)!直接放在內(nèi)存中!
anonymous

發(fā)表文章: 0
注冊時(shí)間:
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年07月26日 20:36 回復(fù)
問題的關(guān)鍵是:
你要緩存什么東西呢?以及要占用多大的內(nèi)存
windjp

發(fā)表文章: 16
注冊時(shí)間: 2004年02月06日 17:34
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年08月06日 10:52 回復(fù)
大家少談一點(diǎn)設(shè)計(jì)模式好嗎?設(shè)計(jì)模式不是用來解決所有的問題的。
你的問題最重要的是數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計(jì)上,還有sql的優(yōu)化。再說一個(gè)圖書信息系統(tǒng)需要將信息轉(zhuǎn)換成xml村成blob嗎?不理解。
最后慎用cache,除非你對數(shù)據(jù)一致、事務(wù)等問題很清楚。
banq

發(fā)表文章: 8048
注冊時(shí)間: 2002年08月03日 17:08
Re: 請教如何提高查詢系統(tǒng)的性能? 發(fā)表: 2004年08月06日 15:44 回復(fù)
JdonSD框架使用緩存提升性能,可見測試報(bào)告:
http://www.jdon.com/product/performance.htm