J'ai récupéré hier les drivers les plus récents dispo chez MS, OLEDB et ODBC.
(avec comme surprise la renaissance d'OLEDB, alors qu'il était obsolescent).
Je développe en C/C++ et j'utilise de préférence ODBC car il est plus performant qu'OLEDB (et pas rien qu'un peu...).
Dans la ConnectionString j'utilise Provider=SQLNCLI11 pour les accès OLEDB et Driver={SQL Server Native Client 11.0} pour les accès ODBC.
J'ai donc fait quelques tests simples avec les nouveaux drivers Provider=MSOLEDBSQL pour les accès OLEDB et Driver={ODBC Driver 17 for SQL Server} pour les accès ODBC.
La perte de performance est de l'ordre de 10% à 20%. C'est franchement décevant...
Pour ce test j'ai écrit un programme compilé sous VS2015, la DB étant sous SQL Server 2014. Seule la ConnectionString est différente.
En bref, pourquoi utiliser ces nouveaux drivers s'ils sont moins performants ?
Par ailleurs, j'utilise aussi les fonctions bcp_xxxx qui sont déclarées dans #include "sqlncli.h".
Je ne retrouve pas ces fichiers pour les nouveaux drivers.
EDIT: je l'ai (re)trouvé, c'est #include "msodbcsql.h" qu'il faut (ré)utiliser, comme par le passé.
Partager