Slow Startup - Can you diagnose why this is taking forever to load the first time (1 minute+)
Main thread (UI)
Here Here is my /Profiler log:Here is my /Profiler log:Main thread (UI)Main thread (UI)Main thread (UI)
It's unfortunate that we don't see
Main thread (UI)
----------------------------------------
vRefreshConnections...
LoadConnections UI - [Microsoft SQL Server : torched] - ReadOnly - 64-bit...
OfflineManager.GetDataSourceSettings : 2 ms
Engine.Clear - DisposeInternalList : 0 ms
HasSecurityChanged...
ConnectionManager.RefreshDataSourceSettings...
GetDataSourceSettings : 31 ms
ConnectionManager.RefreshDataSourceSettings : 31 ms
HasSecurityChanged : 64 ms
Reload: True - HasSecurityChanged: True - HasChanged: True
Engine.Clear - DisposeInternalList - ClearRoot : 0 ms
LoadConnectionsFromDataSource...
GetDataSourceSettings : 29 ms
GetConnections...
Database.GetConnections...
ReadConnections...
Reading connections from database : 23 ms - Run count : 0 - Count : 134
ReadConnections : 57 ms
DecryptAndDeserializeConnections...
DecryptData : 0 ms - Count : 134
DeserializeData : 4 ms - Count : 134
DecryptAndDeserializeConnections : 5 ms
Database.GetConnections : 62 ms
GetConnections : 62 ms
DoMergeConnections - ReadOnly : 2 ms
LoadConnectionsFromDataSource : 442 ms
Load connection overrides...
Has changes : 35 ms
Load connection overrides : 35 ms
LoadConnections [Microsoft SQL Server : torched - Global Vault] - ReadOnly - 64-bit : 66 ms
FavoriteManager.LoadFolders : 30 ms
LoadConnections UI - [Microsoft SQL Server : torched] - ReadOnly - 64-bit : 930 ms
RefreshConnections : 930 ms
Connection States: Refresh...
GetOpenedConnections...
Opened - by process...
PowerShell (Local) : 9 ms
Opened - by process : 17 ms
GetOpenedConnections : 18 ms
Connection States: Refresh : 86 ms
TreeView.LoadConnectionList...
BeginUpdate...
LoadConnectionInTreeNode : 1 ms
PreCreateGroups : 0 ms - Run count : 1
BeginUpdate : 3 ms
TreeView.LoadConnectionList : 3 ms
Load Expand States...
Expanded: 5 - Nodes : 134
Nodes...
Expand : 0 ms - Run count : 1
Collapse : 0 ms - Run count : 13
Nodes : 0 ms
Load Expand States : 0 ms
RootDashboardOverviewManager.LoadRootDashboardOverView - Quick Load...
Set DocumentText : 31 ms
RootDashboardOverviewManager.LoadRootDashboardOverView - Quick Load : 469 ms
SelectionChanged - Default...
RootDashboardOverviewManager.LoadRootDashboardOverView - Quick Load : 479 ms
SelectionChanged - Default : 491 ms
LoadConnectionsFromOfflineFile...
DeserializeData : 0 ms - Count : 1
ReadFromOffline : 1 ms
LoadConnectionsFromOfflineFile : 1 ms
PrivateConnectionManager.Refresh...
LoadConnections [Microsoft SQL Server : torched - User Vault] - ReadOnly - 64-bit : 2148 ms
PrivateConnectionManager.Refresh : 2225 ms
RootDashboardOverviewManager.LoadRootDashboardOverView - Quick Load : 175 ms
Thread : 7
----------------------------------------
7 - OfflineManager.SaveMeta...
7 - SaveSecurityInfo...
7 - 760efb88-7f69-4dd7-ace8-596309d67de2
7 - SaveSecurityInfo : 335 ms
7 - Repository : 2 ms
7 - Expiration : 13 ms
7 - DataSourceSettings : 13 ms
7 - OfflineManager.SaveMeta : 365 ms
7 - Connection States: Refresh...
7 - GetOpenedConnections...
7 - Opened - by process : 8 ms
7 - GetOpenedConnections : 8 ms
7 - Connection States: Refresh : 84 ms
7 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 430 ms
7 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 255 ms
7 - Connection States: Refresh...
7 - GetOpenedConnections...
7 - Opened - by process : 5 ms
7 - GetOpenedConnections : 5 ms
7 - Connection States: Refresh : 62 ms
7 - Connection States: Refresh...
7 - GetOpenedConnections...
7 - Opened - by process...
7 - PowerShell (Local) : 7 ms
7 - Opened - by process : 14 ms
7 - GetOpenedConnections : 14 ms
7 - Connection States: Refresh : 124 ms
7 - Connection States: Refresh...
7 - GetOpenedConnections...
7 - Opened - by process : 4 ms
7 - GetOpenedConnections : 4 ms
7 - Connection States: Refresh : 59 ms
Thread : 11
----------------------------------------
11 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 328 ms
11 - Connection States: Refresh...
11 - GetOpenedConnections...
11 - Opened - by process...
11 - PowerShell (Local) : 15 ms
11 - Opened - by process : 21 ms
11 - GetOpenedConnections : 21 ms
11 - Connection States: Refresh : 156 ms
11 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 260 ms
11 - Connection States: Refresh...
11 - GetOpenedConnections...
11 - Opened - by process...
11 - Cisco ASDM : 1 ms
11 - Opened - by process : 8 ms
11 - GetOpenedConnections : 8 ms
11 - Connection States: Refresh : 67 ms
Thread : 12
----------------------------------------
12 - Sync to Offline : 13 ms - Count : 134
12 - Sync to Offline : 78 ms
Thread : 20
----------------------------------------
20 - OfflineManager.SaveMeta...
20 - SaveSecurityInfo...
20 - 760efb88-7f69-4dd7-ace8-596309d67de2
20 - SaveSecurityInfo : 464 ms
20 - Repository : 2 ms
20 - Expiration : 13 ms
20 - DataSourceSettings : 8 ms
20 - OfflineManager.SaveMeta : 488 ms
20 - Connection States: Refresh...
20 - GetOpenedConnections...
20 - Opened - by process : 19 ms
20 - GetOpenedConnections : 19 ms
20 - Connection States: Refresh : 80 ms
20 - OfflineManager.SaveMeta...
20 - Expiration : 13 ms
20 - OfflineManager.SaveMeta : 14 ms
20 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 245 ms
Thread : 21
----------------------------------------
21 - OfflineManager.SaveMeta...
21 - SaveSecurityInfo...
21 - 760efb88-7f69-4dd7-ace8-596309d67de2
21 - SaveSecurityInfo : 12 ms
21 - Repository : 2 ms
21 - Expiration : 14 ms
21 - DataSourceSettings : 11 ms
21 - OfflineManager.SaveMeta : 41 ms
21 - Connection States: Refresh...
21 - GetOpenedConnections...
21 - Opened - by process...
21 - SmartFTP : 1 ms
21 - Opened - by process : 6 ms
21 - GetOpenedConnections : 6 ms
21 - Connection States: Refresh : 88 ms
21 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 270 ms
21 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 378 ms
21 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 299 ms
21 - Connection States: Refresh...
21 - GetOpenedConnections...
21 - Opened - by process : 10 ms
21 - GetOpenedConnections : 10 ms
21 - Connection States: Refresh : 84 ms
21 - Connection States: Refresh...
21 - GetOpenedConnections...
21 - Opened - by process...
21 - PowerShell (Local) : 8 ms
21 - Opened - by process : 17 ms
21 - GetOpenedConnections : 17 ms
21 - Connection States: Refresh : 80 ms
Thread : 22
----------------------------------------
22 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 816 ms
22 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 311 ms
22 - Connection States: Refresh...
22 - GetOpenedConnections...
22 - Opened - by process : 5 ms
22 - GetOpenedConnections : 5 ms
22 - Connection States: Refresh : 61 ms
22 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 395 ms
22 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 390 ms
22 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 270 ms
22 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 192 ms
Thread : 23
----------------------------------------
23 - OfflineManager.SaveMeta...
23 - Expiration : 16 ms
23 - OfflineManager.SaveMeta : 16 ms
23 - Connection States: Refresh...
23 - GetOpenedConnections...
23 - Opened - by process...
23 - PowerShell (Local) : 20 ms
23 - Opened - by process : 28 ms
23 - GetOpenedConnections : 29 ms
23 - Connection States: Refresh : 96 ms
23 - Connection States: Refresh...
23 - GetOpenedConnections...
23 - Opened - by process...
23 - PowerShell (Local) : 23 ms
23 - Opened - by process : 31 ms
23 - GetOpenedConnections : 31 ms
23 - Connection States: Refresh : 90 ms
Thank you for your profile trace, a few observations.
But first, for the slow startup time, can you please go to Help > Diagnostic > Startup time, what do you see? This is the time it takes to "load" from the start of RDM to RDM ready to work. We are working at getting this number down see here.
As for the profiler output, we see that the shared, global & user vault were loaded, here are the load times.
LoadConnections UI - [Microsoft SQL Server : torched] - ReadOnly - 64-bit : 930 ms
LoadConnections [Microsoft SQL Server : torched - Global Vault] - ReadOnly - 64-bit : 66 ms
LoadConnections [Microsoft SQL Server : torched - User Vault] - ReadOnly - 64-bit : 2148 msThe user vault is somewhat slow @ 2148ms.
Can you perform the same test but with /Profiler -2228227 and send us the profiler trace. The trace will be much more detailed, you can upload here or via private message if you like.
Other observations, we see the the overview is somewhat slow to load 200-800ms, I see 40-80ms here.
RootDashboardOverviewManager.LoadRootDashboardOverView - Quick Load : 479 ms
...
22 - RootDashboardOverviewManager.LoadRootDashboardOverViewAsync - Full Load : 270 msCan you check to see that these 4 settings are checked? File > Settings > Advanced > ...

Best regards,
Stéfane Lavergne
I cannot find almost everything you told me... I don't see the Startup time option... and none of the 4 options neither.
But I don't have the latest version (I'm on 2023.3.31.0) and I just ask our IT and they will update later this year... apparently the database we use have to follow... I think I should have the latest version before we investigate further right?
Thanks for the quick response though.
My bad, yes, all these options are in the latest RDM, I'm not sure if any are in the 2023.3.31 version.
With 2023.3.31 /Profiler -2228227 won't work either. You could try /Profiler -3 and send me the result we might see something that could help you.
Yes, if you upgrade your RDM you will need to upgrade your database schema (RDM will do it for you) but it needs to be done by an admin user..
Best regards,
Stéfane Lavergne
Tell me that my slow start problems are fixed in the latest version though 😁 because that's the major issue we have now. We need to open the app first thing in the morning to deal with this.
It should keep the server list in cache somehow, and the app should open super-fast and update the servers list after the app refresh the cache in the background.
Thanks again
I still don't know what is slow, so no I can't guarantee things will be faster.
From the profiler trace you provided, it looks like your SQL Server is responding to the request relatively fast. The dashboard looks to be loading somewhat slow versus my setup, but other than that I have nothing to base an opinion on at this time.
If you want more analysis, I would need the other profiler trace (/Profiler -3) and maybe a video of the startup. How slow are we talking about? 5 second startup or 30 seconds?
You could also test with a local data source (XML or SQLite) with only a single entry set it to be the startup data source and see if RDM starts faster this way. This would eliminate SQL Server from the equation.
With RDM 2023.3.31, you could run the OptimizeRDM.ps1 (or was it OptimizeRDM.bat with this version). Run it as admin, this might improve startup times. Test with XML or SQLite data source and see.
You could also look here:
Stéfane Lavergne