DNN Blog

Jun 27

Posted by: Charles Nurse
6/27/2006  RssIcon

Many people have commented that the dotnetnuke.com site is a little slower with the recent upgrade to 4.3.1 (especially for Login).

If your site has a lot of users, you are probably getting the same "poor" performance.  (Note - the problem is not confined to 4.3.1 - it will also be a problem with 3.3.1, as it is due to one of the new User features).

However, there is a simple solution, and here it is.

1. Log in as admin or host
2. Go to the "User Accounts" module (on the Admin menu).
3. Select the "User Settings" module action
4. Click Update to save the Settings.

Savvy users will have by now figured out the problem - The User Settings, which are implemented as Module Settings in the Database do not exist (are null).  Loading the User Settings page loads the default values and clicking "Update" persists them to the database.

Normally, when custom Module Settings are not "set" this does not affect performance but in this case there is a very expensive query that is run when retrieving the default settings.  This query will run every time a setting is needed, because, the GetSetting uses a fallback approach:

a) - try fetching the settings from the Cache
b) - try fetching the settings from the Database
c) - load the default settings (which calls the expensive query GetUserCountByPortal)
d) - get the setting from the collection of settings

On this site, when logging in, 3 different settings are needed, so the query is made 3 times - at a cost of about 800ms each (due to 300,000 users), hence the performance issues.

Now that I have carried out the procedure above (1-4) on this site, the default settings have been persisted to the Database, and the caching mechanism can work -  Login is much faster.

A fix will be added to the next version, so that default values are automaticaly saved to the database on upgrade (or first access).


Tags:
Categories:
Location: Blogs Parent Separator Charles Nurse

8 comment(s) so far...


Re: Improving Performance in 3.3/4.3

Good job Charles!

By rodneyjoyce on   6/27/2006

Re: Improving Performance in 3.3/4.3

How come when I go to
Go to the "User Accounts" module (on the Admin menu).
I do not see
Select the "User Settings" module action

By boatczy on   6/27/2006

Re: Improving Performance in 3.3/4.3

Boatczy: Depending on the skin you're using, you should see the "User Settings" as one of the items in the drop-down list to the left of the "User Accounts" container title bar.

By Rask on   6/27/2006

Managing Profile Properties

Registration form By mombassa on 6/28/2006
Hi,

I've modified the profile properties and added a field. When I add the User Account module to a page, it still shows the old fields. Or am I misunderstanding the purpose of "Manage Profile Properties"?

Thanks for any help,
chris

By mombassa on   6/28/2006

Re: Improving Performance in 3.3/4.3

I don't see the 'User Settings' module action. I only have 'Add User', 'Help' and 'Online Help'. What gives?

By bnsc on   6/28/2006

Re: Improving Performance in 3.3/4.3

mombassa - I think the User Account Module is still configured to use the old registration control. Use Module Definitions and change the User Account to use

Admin/Users/ManageUsers.ascx

instead of

Admin/Security/Register.ascx

By cnurse on   6/28/2006

Re: Improving Performance in 3.3/4.3

Charles, thanks!

By mombassa on   6/29/2006

Users self Managing Profile Properties

I am having the same problem as mombassa (new profile properties do not show up on the User Account module's Manage Profile Properties page) on DNN 4.4.1. I have checked and the module definition already is set to 'Admin/Users/ManageUsers.ascx'.

Thanks for any help...

By RBarryYoung on   5/9/2007
Attend A Webinar
Free Demo Site
Download DotNetNuke Professional Edition Trial
Have Someone Contact Me
Have Someone Contact Me

Like Us on Facebook Join our Network on LinkedIn Follow DNN Corporate on Twitter Follow DNN on Twitter

Advertisers

Sponsors

DotNetNuke Corporation

DotNetNuke Corp. is the steward of the DotNetNuke open source project, the most widely adopted Web Content Management Platform for building web sites and web applications on Microsoft. Organizations use DotNetNuke to quickly develop and deploy interactive and dynamic web sites, intranets, extranets and web applications. The DotNetNuke platform is available in a free Community and subscription-based Professional and Enterprise Editions with an Elite Support option. DotNetNuke Corp. also operates the DotNetNuke Store where users purchase third party apps for the platform.