Mit diesem Script kannst Du das ganz einfach selbst messen:
On Error GoTo ErrorRoutine
'===================================================================================================================================
Dim ses As New NotesSession
Dim db1 As NotesDatabase
Dim db2 As NotesDatabase
Dim strServer As String
Dim strDb As String
Dim dblStart As Double
Dim dblEnd As Double
Dim dblTime1 As Double
Dim dblTime2 As Double
Dim dblTicsPerSecond As Double
dblTicsPerSecond = GetThreadInfo( LSI_THREAD_TICKS_PER_SEC )
strServer = ""
strDb = "apps\Tli\Test.nsf"
dblStart = GetThreadInfo(LSI_THREAD_TICKS)
Set db1 = ses.Currentdatabase
dblEnd = GetThreadInfo(LSI_THREAD_TICKS)
dblTime1 = dblEnd - dblStart
Print "Time 1: " & CStr( dblTime1 ) & " = " & CStr( dblTime1 / dblTicsPerSecond ) & " sec"
dblStart = GetThreadInfo(LSI_THREAD_TICKS)
Set db2 = New NotesDatabase( strServer, strDb )
dblEnd = GetThreadInfo(LSI_THREAD_TICKS)
dblTime2 = dblEnd - dblStart
Print "Time 2: " & CStr( dblTime2 ) & " = " & CStr( dblTime2 / dblTicsPerSecond ) & " sec"
'===================================================================================================================================
EndOfRoutine:
Exit Sub
ErrorRoutine:
Print Error & " in line " & Err
Resume EndOfRoutine
Wenn Du ganz sicher sein willst, dass nicht caching Deine Ergebnisse verfälscht, machst Du halt zwei Agenten, bei denen einmal über CurrentDatabase und einmal über open geöffnet wird...
In meiner Messung mit einer recht grossen Datenbank habe ich tatsächlich einen signifikanten Unterschied festgestellt:
ses.CurrentDatabase = 0 Tics / 0 sec
New Database = 16 Tics / 0,16 sec
Ist auch logisch: Denn ses.CurrentDatabase ist ja schon als Objekt da und wird nur der Variable zugewiesen, während New tatsächlich ein neues Objekt erstellt.
Ob es Sinn macht, sich um diese 0,16 sec Gedanken zu machen... Es gibt sicher schlimmere Performance- bremsen.