Запрос к БД MS SQL из Excel — какой драйвер применять?

Здравствуйте!

Есть Azure MS SQL Database (одна таблица 103 столбца х 2,7 млн строк). К ней нужно обращаться за выборками из MS Excel 2010 x32.
Вопросы:
1 - какой драйвер лучше использовать - в DataConnections много вариантов (SQL Server/NativeClient/ODBC/...).
Чем правильнее (быстрее/надёжнее/менее требовательно) обращаться к БД?
2 - Excel x32 не справляется с более чем 2 млн строк. Поможет ли создание индексов для преодоления этого ограничения?
Чаще всего в результате запроса нужно получить не более 1/10 строк. В запросах в качестве фильтров могут участвовать не более 5-ти столбцов (типичных, я думаю - дата/товар/цена/город/продавец)

Спасибо,
Глеб

1ca09ced15fb464fa1b4a87d9b840135.png6b874db2c6ce4fbc920ce1c1f78b1e80.png
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 1
honor8
@honor8
Принципы быстродействия VBA в описании
Использовал эти драйвера для файловых баз небольших объёмов (MS Excel 2010). У первого версия может быть уже свежее, поэтому не на каждом ПК будет по умолчанию. Второй должен быть универсальный.
Private Type GUIDs
  Data1 As Long
  Data2 As Integer
  Data3 As Integer
  Data4(0 To 7) As Byte
End Type

Private Declare Function CLSIDFromProgID Lib "ole32" (ByVal lpszProgID As Long, rclsid As GUIDs) As Long

Public Function IsOLEObjectInstalled(Name As String) As Boolean
Dim mGuid As GUIDs
  On Error Resume Next
    IsOLEObjectInstalled = CLSIDFromProgID(StrPtr(Name), mGuid) = 0
End Function

Private Sub GetOLEObjects()
Dim msg As String
  msg = "Microsoft.ACE.OLEDB.12.0 = " & IsOLEObjectInstalled("Microsoft.ACE.OLEDB.12.0") & vbCrLf
  msg = msg & "Microsoft.Jet.OLEDB.4.0 = " & IsOLEObjectInstalled("Microsoft.Jet.OLEDB.4.0") & vbCrLf
  MsgBox msg
End Sub

Субъективно лучше первый.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы