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

HomeHomeUsing DNN Platf...Using DNN Platf...Performance and...Performance and...Performance dropped after upgrade to DNN 5.3.1Performance dropped after upgrade to DNN 5.3.1
Previous
 
Next
New Post
4/26/2010 10:43 AM
 
I've discovered that the SP GetDesktopModulesByPortal is taking the most time (average 25 seconds). The SQL is: SELECT DISTINCT DM.* FROM dbo.DesktopModules DM LEFT OUTER JOIN dbo.PortalDesktopModules PDM on DM.DesktopModuleId = PDM.DesktopModuleId WHERE IsPremium = 0 OR (PortalId = @PortalId AND PortalDesktopModuleId IS NOT Null) ORDER BY FriendlyName But I don't know where it's executed (and why) and what I could do to improve the performance.
 
New Post
4/26/2010 11:35 AM
 
Check DesktopModuleId, IsPremium, PortalId, PortalDesktopModules, and FriendlyName to make sure they are indexed. IsPremium being indexed shouldn't make a huge difference, but DesktopModuleId - which is the field the join is occurring on - will make a significant difference. FriendlyName may make a big difference - depending on how many results are returned. Same with PortalId.
 
New Post
4/27/2010 6:13 AM
 

We have been working more on the SProc. This is not efficient SQL, which shows itself when you have a lot of portals and modules.

Outer Joins with a select on not NOT NULL will generate a carthesian product or all row combinations. This very inefficient if you have a lot of modules and portals. We have modified the SProc.

The original one:

ALTER PROCEDURE [dbo].[GetDesktopModulesByPortal]
	@PortalId int
AS
	SELECT DISTINCT 
		DM.*
	FROM dbo.DesktopModules DM
		LEFT OUTER JOIN dbo.PortalDesktopModules PDM on DM.DesktopModuleId = PDM.DesktopModuleId
	WHERE  IsPremium = 0 
		OR (PortalId = @PortalId AND PortalDesktopModuleId IS NOT Null)
	ORDER BY FriendlyName

The modified one:

ALTER PROCEDURE [dbo].[GetDesktopModulesByPortal] @PortalId int
AS 
    SELECT DISTINCT
            DM.*
    FROM    dbo.DesktopModules DM
    WHERE   ( IsPremium = 0 )
            OR ( DesktopModuleID IN ( SELECT    DesktopModuleID
                                      FROM      dbo.PortalDesktopModules PDM
                                      WHERE     PDM.PortalId = @PortalId ) )
    ORDER BY FriendlyName

This SProc performs as needed (still the site does not run OK, but that might be other problems)


XCESS expertise center b.v.
Regards,
Ernst Peter
LinkedIn Profile Ernst Peter Tamminga


XCESS: DNN/Evoq specialist, zie www.xcess.nl

Events 7.0.1 - Released
Reports 6.1.0 - Released
 
New Post
4/27/2010 6:36 AM
 
Ernst-Peter, did you do any performance checks, whether the costs of the sub-query don't supersede the costs of the left join? I can't follow the argumentation that a left join creates a carthesian product, if proper fields are joined - AFAIK performance depends on the indexes being used for join and where.

Cheers from Germany,
Sebastian Leupold

dnnWerk - The DotNetNuke Experts   German Spoken DotNetNuke User Group

Speed up your DNN Websites with TurboDNN
 
New Post
4/27/2010 8:03 AM
 

We made a number of performance improvements in 5.4.  The new 5.4.1 will be released tomorrow barring any unforseen issues.  One of the biggest performance issues we saw in 5.4 was caused by the change to the Human Friendly URL format.  The older friendly URL format is much more performant.  We are looking at making some additional performance enhancements in the next major release.


Joe Brinkman
DNN Corp.
 
Previous
 
Next
HomeHomeUsing DNN Platf...Using DNN Platf...Performance and...Performance and...Performance dropped after upgrade to DNN 5.3.1Performance dropped after upgrade to DNN 5.3.1


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