Roger,
I'm one of the people who had horrendous load times on DMX until I did some performance tuning through indexes on the UserRoles table in DNN/SQL. The reason why the site cach-ing makes little difference is the performance cost is in the database. My DNN instance is set to light cache, and after changes to the datastructure it is working well.
Depending on your comfort level with SQL, we can check into these 2 things:
What is the clustered index on your UserRoles table at this point?
Let's run a SQL Profiler trace while that page loads and see how long the query takes. We're specifically looking for the procedure 'DMX_GetEntryByTitleInCollection' as it can be a real bear.
This is the script I keep saved as a record of the most significant change I made:
IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[UserRoles]') AND name = N'PK_UserRoles')
ALTER TABLE [dbo].[UserRoles] DROP CONSTRAINT [PK_UserRoles]
GO
/****** Object: Index [PK_UserRoles] Script Date: 05/24/2013 08:30:54 ******/
ALTER TABLE [dbo].[UserRoles] ADD CONSTRAINT [PK_UserRoles] PRIMARY KEY NONCLUSTERED
(
[UserRoleID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
CREATE CLUSTERED INDEX DMX_IDROLE
ON dbo.UserRoles (UserID, RoleID)
Drew