Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Native Client mit und ohne Versionsangabe? (https://www.delphipraxis.net/167449-sql-native-client-mit-und-ohne-versionsangabe.html)

Bernhard Geyer 30. Mär 2012 09:21

Datenbank: MS-SQL-Server • Version: 200-2012 • Zugriff über: ADO/OLE DB

SQL Native Client mit und ohne Versionsangabe?
 
Auf unseren Test-DB-Server gibt es die OLE DB-Provider
  • SQL Native Client
  • SQL Server Native Client 10.0
  • SQL Server Native Client 11.0
Lokal habe ich nur
  • SQL Server Native Client 10.0
Ich gehe mal davon aus das
SQL Native Client = Version 2005
SQL Server Native Client 10.0 = Version 2008(R2)
SQL Server Native Client 11.0 = Version 2012
Gibt es Nachteile wenn ich z.B. einen 2012 SQL-Server habe und den SQL Native Client habe?
Oder sollte man immer die passende Provider-Version auf allen Client ausrollen (höherer Administrationsaufwand sowas zu machen)?

mkinzler 30. Mär 2012 09:23

AW: SQL Native Client mit und ohne Versionsangabe?
 
Sicherer wäre es eine passende Version auf dem Client installiert zu haben

sx2008 30. Mär 2012 09:36

AW: SQL Native Client mit und ohne Versionsangabe?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1159357)
Gibt es Nachteile wenn ich z.B. einen 2012 SQL-Server habe und den SQL Native Client habe?

Allgemein kann man sagen, dass ein neuerer Datenbanktreiber mit einem älteren Server gut funktioniert während ein älterer Treiber mit einem neueren Server weniger zu empfehlen ist.

Grund:
ein älterer OLE-DB Provider kennt natürlich nur sein veraltetes Protokoll, obwohl der Server ein neueres Protokoll anbieten möchte.
Daher muss der neuere Server mit dem älteren Protokoll arbeiten, was natürlich wie Leistung verringert.

Bernhard Geyer 30. Mär 2012 10:04

AW: SQL Native Client mit und ohne Versionsangabe?
 
Zitat:

Zitat von sx2008 (Beitrag 1159364)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1159357)
Gibt es Nachteile wenn ich z.B. einen 2012 SQL-Server habe und den SQL Native Client habe?

Allgemein kann man sagen, dass ein neuerer Datenbanktreiber mit einem älteren Server gut funktioniert während ein älterer Treiber mit einem neueren Server weniger zu empfehlen ist.

Grund:
ein älterer OLE-DB Provider kennt natürlich nur sein veraltetes Protokoll, obwohl der Server ein neueres Protokoll anbieten möchte.
Daher muss der neuere Server mit dem älteren Protokoll arbeiten, was natürlich wie Leistung verringert.

So würde ich es erwarten. Dann könnte ich checken welche maximalversion von Client instaliert ist un diese dann entsprechend auswählen.

Aber mit dem 2008er Native Client ist die Performance eher schlechter als mit dem SQLOLEDB-Provider (jedenfalls bei meinen Testprogramm) :-(

Bernhard Geyer 30. Mär 2012 10:17

AW: SQL Native Client mit und ohne Versionsangabe?
 
Müsste ich bei Verwendung des Native Client auch auf eine höhere ADO-Intefaceversion springen.

In D6 wird ja Command, Connection etc auf die 1.5er Interfaceversionen gemappt.
In XE2 wären es hier die 2.5er Interfaceversionen.

Es läuft auch mit dem Mapping der D6-Version, jedoch ist der native Client (nach meinen Messungen) etwas langsamer.

shmia 30. Mär 2012 13:09

AW: SQL Native Client mit und ohne Versionsangabe?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1159377)
... jedoch ist der native Client (nach meinen Messungen) etwas langsamer.

Bei meinen Messungen war es gerade anderstrum; der Native-Client war 5 - 10% schneller.
Hast du bei deinen Messungen auch die Caches gelöscht?
SQL-Code:
DBCC FREEPROCCACHE
DBCC DROPCLEANBUFFERS


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz