Har det någon betydelse ur prestandasynvinkel hur man ansluter till databasen (i detta fall Access)? Jag brukar köra med ODBC men har hört sägas att det skulle vara sämre än att ange en drivrutin vilket man väl annars kan göra. Har det någon betydelse? Om du använder ODBC använder du en en extra lager/drivrutin:nån betydelse hur databasen kopplas?
Min connect-sträng lyder:
<code>set Conn = server.createobject("ADODB.Connection")
Conn.Open "DSN=dbnamn" </code>Sv: nån betydelse hur databasen kopplas?
ADO objektet är gjort för att komunicera med en OLE DB drivrutin vilket läser och skriver till databasen:
ADO -> JET OLE DB DRivrutin -> MDB fil
ODBC är ett öppet gränssnit för databaser som konkurerar och av microsoft "ersatts" med OLEDB.
Om du använder ODBC måste du ha en drivrutin mellan OLEDB gränssnittet och ODBC drivrutinen.
ADO -> OLEDB ODBC Drivrutin -> Access Drivrutin -> MDB fil
Du kan få bättre prestanda mot access med DAO, vilket komunicerar med MDB filen direkt. Tyvär kan den inte DAO användas på ASP sidor. DAO är också gjort för att komunicera med ODBC. JAg vet dock inte vilken prestanda DAO har mot ODBC i förhållande till ADO.
Personligen föredrar jag ADO och OLEDB drivrutin. Det känns som ett bättre val. Då microsfot i princip överget DAO och ODBC.
I .NET så kan man komunicera med OLEDB drivrutinen rätt direkt. Det finns basklasser vilket drivrutinen ärver. Detta ger en högre prestanda då man inte behöver gå igenom ett så djupt lager av ADO.
Du kodar altså mycket nära databasdrivrutinen. Så ju närmare databasdrivrutinen du är, ju bättre prestanda får du.
Det talar emot att använda ODBC drivrutinen då det finns ett bra OLEDB alternativ.
Sedan innebär DNS anrop till registret för att kolla upp anslutningssträngen. Deta seker över processgränsen. Vilket innebär att det gör anropet lite långsammare. Vet inte om detta bara är vid första anropet då anslutningar "poolas" i ADO.
Denna information är mestadels egna slutsatser. Så den tål väl att kritiseras.