Ich versuche this Performance tip für MS Access 2007-Datenbank mit ODBC-verknüpften Tabellen zu implementieren und zu testen.Persistente Verbindung zu verknüpften ODBC-Tabellen in Access 2007
Grundsätzlich erstellt es eine dauerhafte Verbindung mit der verknüpften Datenbank. Das Beispiel verwendet eine andere Access-Datei (.mdb).
In meinem Fall verwende ich verknüpfte Tabellen von SQL Server mit einer Datei dsn. Während ich einen Benutzer-/System-DSN verwenden möchte, muss ich zunächst mit der Datei DSN arbeiten. Ich habe Probleme, eine Verbindung über die Datei DSN und die OpenDatabase-Methode zu erhalten.
Frage: Wenn ich nur eine der Tabellen über Recordset öffne und das offen halte, werden die gleichen Vorteile gesehen?
-Code in Beispiel:
Static dbsOpen As DAO.Database
Set dbsOpen(x) = OpenDatabase("H:\folder\Backend1.mdb")
Recordset basierend auf CurrentDB:
Static rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("tablename")
Also denkst du, mit einer ODBC-Verbindung hätte dies negative Auswirkungen oder neutral? Würde es Auswirkungen auf das Connection Pooling haben? –
Es wird nicht sehr positiv sein und könnte schädlich sein, da der SQL Server diese Verbindung offen hält, was Ressourcen an diesem Ende verbraucht. Der allgemeine Rat lautet: Wenn Sie nicht in naher Zukunft (<1 Sekunde) dieselbe Verbindung verwenden, sollten Sie sie schließen. –
Ich bin mir nicht sicher, dass es ein Problem ist, Kevin. Es hängt wirklich davon ab, ob Jet/ACE Verbindungen bündelt oder nicht. Ich denke auch, dass die meisten Server eine Verbindung nach Inaktivität schließen, egal ob Ihre App sie schließt oder nicht, sodass Sie den Vorteil haben, die Verbindung zu schließen, ohne dass Sie dies im Code tun müssen. Ich kann mir nicht vorstellen, dass die Anzahl der Verbindungen ein Problem wäre, außer wenn Ihre Access-App auf hunderten von Desktops ausgeführt wird. Die meisten erweiterten Apps sind nicht in dieser Situation. In der Tat glaube ich nicht wirklich, dass es so viele Access-Apps in dieser Kategorie gibt. –