Различия между драйверами для драйверов ODBC

Я установил Системную DSN (64 бит) для моей базы данных на SQL Server 2016 с Windows 64 64-разрядным профи. В то время как меня попросили выбрать драйвер для настройки источника данных, есть следующие варианты:

  • Драйвер ODBC 13 для SQL Server
  • SQL Server
  • Собственный клиент SQL Server 11.0
  • Собственный клиент SQL Server RDA 11.0

Кажется, я могу настроить источник данных со всеми этими драйверами. Тогда какой из них следует выбирать с точки зрения скорости и эффективности? Какая разница между ними?

Спасибо,

Джейсон

Ответ 1

Драйвер ODBC для SQL Server

ODBC является основным API доступа к данным для приложений, написанных на C, С++, PHP, Python и других для подключения к SQL Server.

Он широко используется в сценариях интеграции данных.

Кроме того, он предпочитает, если вы разрабатываете приложение в Windows и развертываете его в Linux.

SQL Server

Полное имя драйвера SQL Server - это драйвер ODBC SQL Server. Его старый водитель с 2000 года. Вы можете использовать его для подключения к SQL Server 2016, но вы не сможете получить доступ к новым функциям и функциям SQL Server 2016

Собственный клиент SQL Server

Собственный клиент SQL Server содержит как поставщика SQL OLE DB, так и драйвер SQL ODBC для поддержки встроенного подключения к SQL Server и поддержки всех функций SQL Server 2016. Это лучшее в среде Windows

Исходный клиент SQL Server RDA

Удаленный доступ к данным (RDA) в Microsoft SQL Server Compact 3.5 позволяет получить доступ к данным из базы данных удаленной базы данных SQL Server.

Он также может хранить, читать и обновлять эти данные в SQL Server Compact 3.5, а затем обновлять исходную таблицу SQL Server.

RDA будет удалена в будущей версии, поэтому не используйте ее.

Итак, выберите SQL-драйвер, основанный на вышеприведенных критериях.

Ответ 2

Драйвер Microsoft ODBC для SQL Server (MSODBCSQL)

Этот драйвер был объявлен в 2013 году как преемник собственного клиента SQL Server. Он устанавливается с последними версиями SQL Server (13 с 2016 и 2017). Есть также автономные установщики. В истории драйверов для Microsoft SQL Server этот драйвер рекомендуется использовать вместо "SQL Server" и "Собственный клиент SQL Server" для ODBC. По сравнению с "собственным клиентом SQL Server" добавлены функции: пул соединений с учетом драйверов, отказоустойчивость соединений и асинхронное выполнение (опрос). Вы можете следить за текущей разработкой в блоге Microsoft ODBC Driver for SQL Server Team.

Driver={ODBC Driver XX for SQL Server} (XX для установленной версии. См. Системные требования, Установка и Файлы драйверов.)

Собственный клиент SQL Server (SQLNCLI)

Представлен с SQL Server 2005 и поставляется с SQL Server (также устанавливается через sqlncli.msi из пакетов sqlncli.msi SQL Server). По сравнению с SQL Server добавлены функции: несколько активных наборов результатов (MARS), пользовательские типы данных (UDT), уведомления о запросах, изоляция моментальных снимков и поддержка типов данных XML.

Driver={SQL Server Native Client} SQL Server Driver={SQL Server Native Client} (SQL Server 2005)
Driver={SQL Server Native Client 10.0} (SQL Server 2008)
Driver={SQL Server Native Client 11.0} (SQL Server 2012 и более поздние версии)

RDA собственного клиента SQL Server

Удаленный доступ к данным (RDA) - это функция SQL Server Compact, которая "позволяет приложению получать доступ к данным из таблицы базы данных удаленного SQL Server". Я не могу найти много документации, но, похоже, этот драйвер был предназначен для поддержки сценариев репликации в Compact Edition.

SQL Server (SQLSRV32)

Включено в компоненты доступа к данным Microsoft (MDAC) (теперь называется компонентами доступа к данным Windows (WDAC)). Этот драйвер доступен по умолчанию в Windows (начиная с 98 и NT 4.0).

Driver={SQL Server}

Ответ 3

Собственный клиент SQL Server против поставщика данных .NET Framework для ODBC

Похоже, что для последней версии для собственного клиента SQL Server собственный клиент Microsoft® SQL Server® 2012 также назван собственным клиентом SQL Server 11.0. Не поддерживает новую функцию в SQL Server 2014 или более поздней версии

Обратите внимание, что SNAC 11 не поддерживает функции, выпущенные с SQL Server 2014 и SQL Server 2016, которые не были доступны как часть SQL Server 2012, такие как прозрачное сетевое разрешение IP, всегда зашифрованные, аутентификация Azure AD, групповое копирование и параметры табличных значений.

https://blogs.msdn.microsoft.com/sqlreleaseservices/snac-lifecycle-explained/

Вы должны использовать Microsoft® ODBC Driver 11 или 13 для SQL Server, чтобы использовать новую функцию в SQL Server 2014 или более поздней версии.

Ответ 4

Чтобы проверить, какие драйверы вы установили, запустите PowerShell (32/64 бит - в зависимости от того, какую архитектуру драйвера вы хотите использовать) и запустите

OLEDB

(New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION

ODBC

Get-OdbcDriver | select Name,Platform

Обзор

https://docs.microsoft.com/en-us/sql/connect/connect-history#odbc

Существует три разных поколения драйверов Microsoft ODBC для SQL Server.

  • Первый драйвер ODBC "SQL Server" по-прежнему поставляется как часть компонентов доступа к данным Windows. не рекомендуется использовать этот драйвер для новой разработки.
  • Начиная с SQL Server 2005, SQL "Собственный клиент сервера 10.x/11.x/12.x" включает интерфейс ODBC и является драйвером ODBC, который поставляется с SQL Server 2005 через SQL Server 2012. Он не является Рекомендуется использовать этот драйвер для новой разработки.
  • После SQL Server 2012 драйвер Microsoft ODBC для SQL Server - это драйвер, который обновляется с учетом самых последних функций сервера в будущем.

SQL Server

Это старый из пакета MDAC (https://support.microsoft.com/en-us/help/899456), который теперь (начиная с XP/2003) поставляется с Windows-OS. https://docs.microsoft.com/en-us/sql/connect/connect-history#mdacwdac-releases

https://docs.microsoft.com/en-us/sql/relational-databases/native-client/applications/updating-an-application-to-sql-server-native-client-from-mdac

... начиная с Windows Vista, компоненты доступа к данным теперь называются компонентами доступа к данным Windows или Windows DAC). Хотя оба предоставляют собственный доступ к данным к базам данных SQL Server, собственный клиент SQL Server специально разработан для предоставления новых возможностей SQL Server 2005 (9.x), в то же время поддерживая обратную совместимость с более ранними версиями. версии.


Собственный клиент SQL Server

https://docs.microsoft.com/en-us/sql/connect/connect-history#odbc

Собственный клиент SQL Server - это автономная библиотека, которая используется как для OLE DB, так и для ODBC. Собственный клиент SQL Server (часто сокращенно SNAC) был включен в SQL Server 2005 до 2012 года. Собственный клиент SQL Server можно использовать для приложений, которым необходимо воспользоваться преимуществами новых функций , введенных в SQL Server 2005 через SQL Server 2012, (Компоненты доступа к данным Microsoft/Windows не обновляются для этих новых функций в SQL Server.) Для новых функций, кроме SQL Server 2012, собственный клиент SQL Server обновляться не будет. Переключитесь на драйвер Microsoft ODBC для SQL Server или драйвер Microsoft OLE DB для SQL Server, если вы хотите воспользоваться преимуществами новых функций SQL Server в будущем.


RDA собственного клиента SQL Server

Пришел с .NET Compact Framework 3.5


Драйвер ODBC для SQL Server

https://docs.microsoft.com/en-us/sql/connect/connect-history#odbc

После SQL Server 2012 основной драйвер ODBC для SQL Server был разработан и выпущен как драйвер Microsoft ODBC для SQL Server.


MSOLEDBSQL - драйвер Microsoft OLE DB для SQL Server

Этот драйвер был объявлен устаревшим, а затем устаревшим:

https://docs.microsoft.com/en-us/sql/connect/oledb/oledb-driver-for-sql-server#3-microsoft-ole-db-driver-for-sql-server-msoledbsql

Новый поставщик OLE DB называется драйвером Microsoft OLE DB для SQL Server (MSOLEDBSQL). Новый провайдер будет обновлен, и в него будут добавлены самые последние функции сервера. Чтобы использовать новый драйвер Microsoft OLE DB для SQL Server в существующих приложениях, следует запланировать преобразование строк подключения из SQLOLEDB или SQLNCLI в MSOLEDBSQL. https://blogs.msdn.microsoft.com/sqlnativeclient/2018/03/30/released-microsoft-ole-db-driver-for-sql-server/


Резюме

Попробуйте использовать драйверы, рассчитанные на будущее: