Gemini Community Support Site

This Gemini community support site can be used to find solutions to product issues. You can log in using Open Id, Google Profile and even Facebook. Feel free to ask a question or browse FAQs and documentation. Product tour videos are also available along with how-to videos demonstrating key Gemini capabilities.




Issue "Find" Performance

web-app

Find issue performance is extremely slow. It takes a minimum of 30 seconds to find a string (such as "FTP"). We have less than 12,000 total issues, of which less than 1000 are current.

We are using Gemini 3.5.3 (commercial license), with SQL 2008, with NO customizations (other than that allowed via the software), on a 4 core machine.

The web server and database servers are about 2% utilized before a find operations. During the find, the SQL server utilization only goes to 25%. Yet, the query ALWAYS takes 30 seconds.

Upon a detail investigation, and tracing in SQL, the main query is pulling from gemini_issuesview. The tables that this and the find operation use, contain the following record counts:

geminiglobalgroupmembership 520 geminiissuepriorities 7 geminiissuepriorityschemeitems 7 geminiissueresolutions 7 geminiissuerisklevels 4 geminiissues 11482 geminiissueseverity 6 geminiissueseverityschemeitems 6 geminiissuestatus 23 geminiissuetypes 24 geminiissueworkflowitem 35 geminiprojectgroupmembership 90 geminiprojects 25 geminiusers 153 gemini_versions 173

The sql monitor reports that the query is performing 415,852 reads (even with only 11,482 total issues). These appear to be because of all of the left joins, "and" and "or" statements.

When we perform a direct sql query looking for a key word, the operation returns in less than 1 second.

We have the database growth set to 100mb, have run the recommended tuning indexes (from sql), and have run the update statistics operation on all tables, all with no change in performance.

The query operation (below) is highly complex and is doing some type of full table scan, at least 32 times (per the read counters).

Does anyone know what might be causing this or any way to address it?

The offending query is:

exec spexecutesql N'SELECT distinct this.issueid as y0, this.revised as y1_ FROM geminiissuesview this left outer join geminiissuecomments comments1 on this.issueid=comments1.IssueID left outer join geminicustomfielddata customfiel2 on this.issueid=customfiel2.IssueID left outer join geminitimetracking timeentrie3 on this.issueid=timeentrie3.IssueID left outer join geminiaffectedversions affectedve6 on this.issueid=affectedve6.IssueID left outer join geminiissueresources resources4 on this.issueid=resources4.IssueID left outer join geminiissuecomponents components5 on this.issueid=components5.IssueID WHERE ((this.visibilitymembertype=2 and @p0 in (select gg.userid from geminiglobalgroupmembership gg where gg.globalgroupid = this.visibility)) or (this.visibilitymembertype=3 and @p1 in (select pg.userid from geminiprojectgroupmembership pg where pg.projectgroupid = this.visibility))) AND this.projectid in (@p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16, @p17, @p18) and not this.issuestatusid in (@p19, @p20) and (this.summary like @p21 or this.longdesc like @p22 or comments1.comment like @p23 or customfiel2.fielddata like @p24) ORDER BY this.revised desc, this.issueid desc',N'@p0 int,@p1 int,@p2 int,@p3 int,@p4 int,@p5 int,@p6 int,@p7 int,@p8 int,@p9 int,@p10 int,@p11 int,@p12 int,@p13 int,@p14 int,@p15 int,@p16 int,@p17 int,@p18 int,@p19 int,@p20 int,@p21 nvarchar(6),@p22 nvarchar(6),@p23 nvarchar(6),@p24 nvarchar(6)' ,@p0=50,@p1=50,@p2=40,@p3=41,@p4=42,@p5=43,@p6=28,@p7=44,@p8=3,@p9=11,@p10=37,@p11=38,@p12=39,@p13=2,@p14=25,@p15=33,@p16=31,@p17=30,@p18=32,@p19=4,@p20=27,@p21=N'%FTP%',@p22=N'%FTP%',@p23=N'%FTP%',@p24=N'%FTP%'

Thanks!

markrees
· 1
markrees
Replies (5)
helpful
0
not helpful

Is it possible to send us a backup copy of your databse (support at countersoft dot com)?

Also, how many records do you have in the comments table (gemini_issuecomments), did you re-index it?

We have a sample 100k database: http://performance.countersoft.com to show that Gemini can scale up. Can you please try your filter in there?


Saar Cohen
· 5000
Saar Cohen
helpful
0
not helpful

We have 72,352 records in the comment table.

I don't think I can easily post a backup...we use a lot of attachments. Currently the database reports 10,393MB in size!

Here are all of the table counts, in case you notice anything unusual:

tablename rows affectedversion 0 auditcontrol 1 backupbusinessunits 0 backupclients 7 backupcomponents20060815 100 backupcustomfielddata20060815 1840 backupcustomfielddata2006081509 2270 backupcustomfieldgroupdefs 5 backupcustomfieldgroupdefs20071022jp 7 backupcustomfieldgroups 48 backupcustomfieldgroups20071022jp 53 backupissuelinks20060830 604 backupissues20060815 1263 backupissues20060905 1344 backupusers20060120 18 businessunits 2 CFAgileTeam 6 CFBusinessUnit 9 CFCreativeArtworkType 8 CFCreativeBleed 2 CFCreativeColor 4 CFCreativeIndicia 3 CFCreativeJobSize 7 CFCreativeJobType 6 CFCreativeLibraryType 4 CFCreativePriority 4 CFCreativeProof 2 CFCreativeStatus 14 CFIssueCategory 6 CFStoryHours 10 CFStoryPoints 10 clients 55 clientsold 14 components 227 conclusiveholidays 7 customfielddata 20627 customfielddefs 49 customfieldgroupdefs 5 customfieldgroups 46 dtproperties 0 errorlog 180358 errorlogbackup20080109 19917 errorlogbackup20080916 148318 errorlogbak20071022jp 83542 geminiaffectedversions 677 geminiapplicationsettings 60 geminiappointments 0 geminicomponents 263 geminicustomissuests 29813 geminicustomfielddata 31436 geminicustomfielddataaudit 101113 geminicustomfielddefinitions 11 geminicustomfieldusage 60 geminierrorlog 34846 geminierrorlog20100305gem9803 201654 geminifieldvisibilityschemeitemgroups 191 geminifieldvisibilityschemeitems 19 geminifieldvisibilityschemes 1 geminiglobalgroupmembership 520 geminiglobalgroups 10 geminiglobalsecurityschemeroles 261 geminiglobalsecurityschemes 6 geminiinstall 1 geminiissuealerts 0 geminiissueattachments 12474 geminiissuecomments 72352 geminiissuecomponents 11449 geminiissuehistory 314231 geminiissuelinks 4498 geminiissuelinktypes 4 geminiissuepriorities 7 geminiissuepriorityschemeitems 7 geminiissuepriorityschemes 2 geminiissueresolutions 7 geminiissueresources 9087 geminiissuerisklevels 4 geminiissues 11482 geminiissues20090731 7762 geminiissues20090901 8184 geminiissues20100514 11147 geminiissueseverity 6 geminiissueseverityschemeitems 6 geminiissueseverityschemes 2 geminiissuestatus 23 geminiissuesviewbase 0 geminiissuetimetype 0 geminiissuetypes 24 geminiissuetypeschemeitems 38 geminiissuetypeschemes 5 geminiissuevotes 0 geminiissueworkflow 5 geminiissueworkflowitemgroup 35 geminiissueworkflowitemtransition 163 geminimailboxprocessor 0 geminipersonalfilters 65 geminiprojectattributes 19 geminiprojectdefaultvalues 237 geminiprojectgroupmembership 90 geminiprojectgroups 1 geminiprojectlabels 5 geminiprojectrepository 15 geminiprojectresources 0 geminiprojects 25 geminiprojectversionattributes 3 geminiprojectversionattributevalues 9 geminireports 6 geminireportsvisibility 51 geminisavedreports 1 geminisourcecontrolissuefiles 0 geminitimetracking 38 geminiuserissuesviews 1675 geminiusers 153 geminiusersettings 560 geminiversionmilestone 0 geminiversions 173 geminiwatchissues 37040 geminiwatchproject 64 geminiappsettings 52 geminiinstall 1 issuealerts 0 issueattachments 8219 issuecomments 46868 issuecomponent 7730 issuehistory 191962 issuelinks 3166 issuelinktypes 3 issueprioritylut 5 issueresolutionlut 7 issueresource 5899 issuerisklevellut 4 issues 7763 issues20090225 6644 issues20090514jplb 7116 issuesback20080611jp 4994 issuesbackup200806018JP 5024 issuestatetransitionlut 145 issuestatuslut 14 issuetypelut 8 issuevotes 0 personalfilters 27 personalfiltersbeforeupgrade 0 projectattributes 0 projectrepository 20 projectresource 707 projects 17 projectversionattributes 1 projectversionattributevalues 9 qwadminglobalvariables 0 restoregeminiissues 8183 securityschemes 3 severity 5 sourcecontrolissuefiles 0 timetracking 18 userissuesview 355 userroles 1020 users 111 usersettings 175 versions 85 watchissue 22471 watchproject 34 xeventcode 0 xevents 1275 xstatus 143 xstatuscode 0 xtypecode 0


markrees
· 1
markrees
helpful
0
not helpful

Can you please try and run the query via SQL management studio? Does it takes 30 seconds?
If so, try and remove the gemini_issuecomments from the query, does it speed up?


Saar Cohen
· 5000
Saar Cohen
helpful
0
not helpful

I did reindex issuecomments and it had no effect.

I ran the query in sql mgr and it took 23 seconds (i know there is another query that takes 7 seconds, I just haven't documented that one here yet)

Yes, without issuecomments in the query it takes about 1 second! (so, what do you recommend I do?)

Thanks for your assistance, btw!

P.S. doing this: select * from gemini_issuecomments where comment like '%FTP%' took 7 seconds by itself.

Also, the query that adds the additional 7.4 seconds EVERYTIME is on gemini_globalgroupmembership :

exec spexecutesql N'select useren0.userid as userid34, useren0.username as username34, useren0.firstname as firstname34, useren0.surname as surname34, useren0.pwd as pwd34, useren0.emailaddress as emailadd634, useren0.roles as roles34, useren0.created as created34, useren0.lastupdated as lastupda934, useren0.ResetPWD as ResetPWD34, useren0.active as active34, useren0.comment as comment34, useren0.apikey as apikey34, useren0.tstamp as tstamp34, useren0.firstname + '' '' + useren0.surname as formula13 from geminiusers useren0 where (useren0.userid in(select globalgrou1.userid from geminiglobalgroupmembership globalgrou1 where (globalgrou1.globalgroupid in(select globalsecu0.memberid from geminiglobalsecurityschemeroles globalsecu0 where (globalsecu0.schemerole=@p0 )and(globalsecu0.membertype=@p1 )and(globalsecu0.schemeid=@p2 ) group by globalsecu0.memberid)))) order by useren0.firstname+useren0.surname',N'@p0 int,@p1 int,@p2 int',@p0=14,@p1=2,@p2=2


markrees
· 1
markrees
helpful
0
not helpful

What you can try and do is change the clustered index on the commetns table from the commentid column to the issue id column. Easiest way to do so is via SQL management studio.
Let us know the result.

I suggest that you backup the database before the change.


Saar Cohen
· 5000
Saar Cohen