Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDNN Open Source...DNN Open Source...Module ForumsModule ForumsRepositoryRepositoryPerformance issue with 600 entriesPerformance issue with 600 entries
Previous
 
Next
New Post
10/10/2011 1:59 PM
 
I took a look through the code and stored procedures to see why performance is such an issue. 
The primary issue is categories, the more categories you setup, the slower the stored procedures run
I have added some indexes that I think will improve the module's performance with a large number of categories

First it would help me if you could do some baseline timings so that we can see how effective the indexes are

1) back up your databases (especially if it is a production site)
2) log in using the Host account
3) go to the Host -> SQL Page
4) paste the sql script below into the text box
5) check the "Run as script" checkbox
6) Click Execute

Now go back and re-run your timings and compare them to the baseline 

Let me know if you see an improvement, and if the performance is now acceptable

/* SQL SCRIPT STARTS HERE*/

/* grmRepositoryCategories */
if exists (select * from dbo.sysindexes
where name = 'IX_{objectQualifier}grmRepositoryCategories')
DROP INDEX {databaseOwner}[{objectQualifier}grmRepositoryCategories].[IX_{objectQualifier}grmRepositoryCategories]

CREATE INDEX [IX_{objectQualifier}grmRepositoryCategories]
ON {databaseOwner}[{objectQualifier}grmRepositoryCategories]([ModuleID])

/* grmRepositoryCategories_1 */
if exists (select * from dbo.sysindexes
where name = 'IX_{objectQualifier}grmRepositoryCategories_1')
DROP INDEX {databaseOwner}[{objectQualifier}grmRepositoryCategories].[IX_{objectQualifier}grmRepositoryCategories_1]

CREATE INDEX [IX_{objectQualifier}grmRepositoryCategories_1]
ON {databaseOwner}[{objectQualifier}grmRepositoryCategories]([Parent])

/* grmRepositoryObjectCategories */
if exists (select * from dbo.sysindexes
where name = 'IX_{objectQualifier}grmRepositoryObjectCategories')
DROP INDEX {databaseOwner}[{objectQualifier}grmRepositoryObjectCategories].[IX_{objectQualifier}grmRepositoryObjectCategories]

CREATE INDEX [IX_{objectQualifier}grmRepositoryObjectCategories]
ON {databaseOwner}[{objectQualifier}grmRepositoryObjectCategories]([CategoryID])

/* grmRepositoryCategories_1 */
if exists (select * from dbo.sysindexes
where name = 'IX_{objectQualifier}grmRepositoryObjectCategories_1')
DROP INDEX {databaseOwner}[{objectQualifier}grmRepositoryObjectCategories].[IX_{objectQualifier}grmRepositoryObjectCategories_1]

CREATE INDEX [IX_{objectQualifier}grmRepositoryObjectCategories_1]
ON {databaseOwner}[{objectQualifier}grmRepositoryObjectCategories]([ObjectID])

/* grmRepositoryObjects_1 */
if exists (select * from dbo.sysindexes
where name = 'IX_{objectQualifier}grmRepositoryObjects_1')
DROP INDEX {databaseOwner}[{objectQualifier}grmRepositoryObjects].[IX_{objectQualifier}grmRepositoryObjects_1]

CREATE INDEX [IX_{objectQualifier}grmRepositoryObjects_1]
ON {databaseOwner}[{objectQualifier}grmRepositoryObjects]([Approved])

/* END OF SCRIPT */

 
New Post
10/11/2011 2:21 AM
 
Steve, good to hear from you.

While experimenting with what other people said, I come to the following:

- I removed the dashboard (had two of them on the same page as my repo) and now the page loads fast.
- But: a user who is not allowed to Edit the module is not able to select a category for display.
- Even a user who is allowed, when out of Edit mode - can not change category for display.
- Also I can not edit the repo Title text in the settings of the module.
- Sometimes I get a page load exception and the eventlog tells me about some viewstate problem. I have no idea when exactly that comes up, but I will investigate further to find out. It seems when switching from Edit to View mode and then navigating the category dropdown this happens.

- I have two other smaller repos on my site (73 items, 5 categories and (5 items, 2 categories) that work fine with dashboard. (Dashboard mode: Categories single column, 5 items to be displayed for one, unlimited for the other) Also they do not require edit mode to be able to filter by category.

- I already thought about some database problem but as two repos are running fine,that seems some kind of weird.

Would you still suggest to test with the SQL patch you gave ? As the repo is fast without dashboard I would have to show that up first again and measure, then add the indices and measure again ?
I'll try to do that.

*** Addendum:
did the measurement: with dashboard and the repo loads in about 12-13 seconds after a shrink of the database and cleaning up the transaction log.
then I applied your SQL script, but there is no difference in time that I can measure.
The categories selection problem still exists.
***


If you need more detailed information, please let me know. I'm very interested in helping with the solution as we urgenly need the functionality back. This is a support website and I'm getting a lot of complains that users can't find necessary information.

Best regards
Thomas
 
New Post
10/11/2011 11:04 AM
 
Seems like DNN 6.0.1 has dramatically affected the performance of the module (and it looks like it's mainly the Dashboard). Not sure what the issue is yet, but I'm confident we'll figure it out.

Thomas, what version of DNN are you using?
and what verison of the Repository?
 
New Post
10/11/2011 11:11 AM
 
Looking into the Dashboard code, it might not be a DNN 6.0.01 issue. I added some logic in the dashboard to implement the 'personal' repository and to re-calc category counts. I'm beginning to suspect the 're-calc' function is the root cause of the performance issues. ... I'm going to refactor the method and do some timings .. stay tuned.
 
New Post
10/11/2011 12:29 PM
 
If someone is willing to test this for me....

*NOTE*  For now I need someone running Repository 3.5.4 on DNN 5.X but NOT DNN 6.X just yet.

So if you're are NOT running DNN 6.X yet and are having the performance issue

1) backup the DotNetNuke.Modules.Repository.dll file in your bin folder
2) down a new .dll from here http://www.gooddogs.com/files/dotnetn...
3) place it in your bin folder
4) recycle your application

now, try your site and see if the performance is now acceptable

I will have a similar test for those of you running 6.X in a short while

thanks
 
Previous
 
Next
HomeHomeDNN Open Source...DNN Open Source...Module ForumsModule ForumsRepositoryRepositoryPerformance issue with 600 entriesPerformance issue with 600 entries


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out