[seam-dev] Website performance - help offer
Sebastian Hennebrueder
usenet at laliluna.de
Wed Mar 12 17:45:17 EDT 2008
Sebastian Hennebrueder schrieb:
> Hello,
>
> I would like to offer my help to improve the website performance. Do
> you use the "standard" version of the wiki or should I checkout the
> code from somewhere else?
>
> Best Regards / Viele Grüße
>
> Sebastian
> _______________________________________________
> seam-dev mailing list
> seam-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/seam-dev
>
Hello,
I had a first look at the wiki and resulting queries. Is it possible
that you are using MySQL for your forum?
The queries for the forum results in subqueries -> ForumQuery class.
MySQL (currently) will resolve subqueries as nested queries. So if the
result has 500 entries, we will have 500 calls to the subquery. The more
data we have the slower the wiki will become. There is no real solution
to this problem but replacing the database. I would recommend to use
PostgreSQL instead.
I had this problem half a year ago when doing a performance review on MySQL.
If we are not using MySQL, than let me know.
Best Regards
Sebastian
Here an example for a query:
select
wikidocume0_.NODE_ID as col_0_0_,
count(wikicommen1_.NODE_ID) as col_1_0_,
wikicommen2_.NODE_ID as col_2_0_,
user3_.USER_ID as USER1_110_3_,
wikicommen2_.NODE_ID as NODE1_102_0_,
user3_.USER_ID as USER1_110_1_,
wikicommen2_1_.AREA_NR as AREA2_102_0_,
wikicommen2_1_.CREATED_BY_USER_ID as CREATED11_102_0_,
wikicommen2_1_.CREATED_ON as CREATED3_102_0_,
wikicommen2_1_.LAST_MODIFIED_BY_USER_ID as LAST12_102_0_,
wikicommen2_1_.LAST_MODIFIED_ON as LAST4_102_0_,
wikicommen2_1_.NAME as NAME102_0_,
wikicommen2_1_.PARENT_NODE_ID as PARENT13_102_0_,
wikicommen2_1_.READ_ACCESS_LEVEL as READ6_102_0_,
wikicommen2_1_.OBJ_VERSION as OBJ7_102_0_,
wikicommen2_1_.WIKINAME as WIKINAME102_0_,
wikicommen2_1_.WRITE_ACCESS_LEVEL as WRITE9_102_0_,
wikicommen2_1_.WRITE_PROTECTED as WRITE10_102_0_,
wikicommen2_.FROM_USER_EMAIL as FROM3_105_0_,
wikicommen2_.FROM_USER_HOMEPAGE as FROM4_105_0_,
wikicommen2_.FROM_USER_NAME as FROM5_105_0_,
wikicommen2_.NS_LEFT as NS6_105_0_,
wikicommen2_.NS_RIGHT as NS7_105_0_,
wikicommen2_.NS_THREAD as NS8_105_0_,
wikicommen2_.SUBJECT as SUBJECT105_0_,
wikicommen2_.USE_WIKI_TEXT as USE10_105_0_,
user3_.ACTIVATED as ACTIVATED110_1_,
user3_.ACTIVATION_CODE as ACTIVATION3_110_1_,
user3_.CREATED_ON as CREATED4_110_1_,
user3_.EMAIL as EMAIL110_1_,
user3_.FIRSTNAME as FIRSTNAME110_1_,
user3_.LAST_LOGIN_ON as LAST7_110_1_,
user3_.LASTNAME as LASTNAME110_1_,
user3_.MEMBER_HOME_WIKI_DIRECTORY_ID as MEMBER12_110_1_,
user3_.PASSWORDHASH as PASSWORD9_110_1_,
user3_.USER_PROFILE_ID as USER13_110_1_,
user3_.USERNAME as USERNAME110_1_,
user3_.OBJ_VERSION as OBJ11_110_1_
from
WIKI_DOCUMENT wikidocume0_
inner join
WIKI_FILE wikidocume0_1_
on wikidocume0_.NODE_ID=wikidocume0_1_.NODE_ID
inner join
WIKI_NODE wikidocume0_2_
on wikidocume0_.NODE_ID=wikidocume0_2_.NODE_ID,
WIKI_COMMENT wikicommen1_
inner join
WIKI_NODE wikicommen1_1_
on wikicommen1_.NODE_ID=wikicommen1_1_.NODE_ID,
WIKI_COMMENT wikicommen2_
inner join
WIKI_NODE wikicommen2_1_
on wikicommen2_.NODE_ID=wikicommen2_1_.NODE_ID
inner join
USERS user3_
on wikicommen2_1_.CREATED_BY_USER_ID=user3_.USER_ID
where
wikidocume0_2_.READ_ACCESS_LEVEL <= ?
and wikicommen1_1_.READ_ACCESS_LEVEL <= ?
and wikicommen2_1_.READ_ACCESS_LEVEL <= ?
and (
wikidocume0_.NODE_ID in (
? , ?
)
)
and (
wikicommen1_.NS_THREAD in (
select
wikicommen4_.NS_THREAD
from
WIKI_COMMENT wikicommen4_
inner join
WIKI_NODE wikicommen4_1_
on wikicommen4_.NODE_ID=wikicommen4_1_.NODE_ID
where
wikicommen4_1_.PARENT_NODE_ID=wikidocume0_.NODE_ID
)
)
and wikicommen2_1_.CREATED_ON=(
select
max(wikicommen5_1_.CREATED_ON)
from
WIKI_COMMENT wikicommen5_
inner join
WIKI_NODE wikicommen5_1_
on wikicommen5_.NODE_ID=wikicommen5_1_.NODE_ID
where
wikicommen5_.NS_THREAD in (
select
wikicommen6_.NS_THREAD
from
WIKI_COMMENT wikicommen6_
inner join
WIKI_NODE wikicommen6_1_
on wikicommen6_.NODE_ID=wikicommen6_1_.NODE_ID
where
wikicommen6_1_.PARENT_NODE_ID=wikidocume0_.NODE_ID
)
)
group by
wikidocume0_.NODE_ID ,
wikicommen2_.NODE_ID ,
wikicommen2_.NS_LEFT ,
wikicommen2_.NS_RIGHT ,
wikicommen2_.NS_THREAD ,
wikicommen2_1_.OBJ_VERSION ,
wikicommen2_1_.PARENT_NODE_ID ,
wikicommen2_1_.AREA_NR ,
wikicommen2_1_.NAME ,
wikicommen2_1_.WIKINAME ,
wikicommen2_1_.CREATED_BY_USER_ID ,
wikicommen2_1_.CREATED_ON ,
wikicommen2_1_.LAST_MODIFIED_BY_USER_ID ,
wikicommen2_1_.LAST_MODIFIED_ON ,
wikicommen2_1_.READ_ACCESS_LEVEL ,
wikicommen2_1_.WRITE_ACCESS_LEVEL ,
wikicommen2_1_.WRITE_PROTECTED ,
wikicommen2_.SUBJECT ,
wikicommen2_.FROM_USER_NAME ,
wikicommen2_.FROM_USER_EMAIL ,
wikicommen2_.FROM_USER_HOMEPAGE ,
wikicommen2_.USE_WIKI_TEXT ,
user3_.USER_ID ,
user3_.OBJ_VERSION ,
user3_.FIRSTNAME ,
user3_.LASTNAME ,
user3_.USERNAME ,
user3_.PASSWORDHASH ,
user3_.EMAIL ,
user3_.ACTIVATED ,
user3_.ACTIVATION_CODE ,
user3_.CREATED_ON ,
user3_.LAST_LOGIN_ON ,
user3_.MEMBER_HOME_WIKI_DIRECTORY_ID ,
user3_.USER_PROFILE_ID
More information about the seam-dev
mailing list