Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Microsoft Jet лучше ODBC?????? / 2 сообщений из 2, страница 1 из 1
15.03.2004, 11:51
    #32441589
Rem
Rem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft Jet лучше ODBC??????
Использую след. запрос для удаления повторяющихся записей :

AnsiString sSQL = "DELETE *\r\nFROM SubscribersCalls AS C\r\nWHERE C.ID IN (SELECT A.ID\r\n";
sSQL +="FROM SubscribersCalls AS A, SubscribersCalls AS B\r\n";
sSQL +="WHERE A.ID>B.ID AND A.SubscribersID=B.SubscribersID AND A.Data=B.Data AND A.Time=B.Time AND A.Type=B.Type AND A.SecondNumber=B.SecondNumber AND A.Duration=B.Duration\r\n";
sSQL +="GROUP BY A.ID)";
ADOCommand1->CommandText = sSQL;
ADOCommand1->Execute();

У ADOCommand1 Connection - ADOConnection1.
Так вот если я у ADOConnection использую Provider=Microsoft.Jet.OLEDB.4.0
то все удаляется довольно быстро. Если же использовать Provider=MSDASQL.1
(Microsoft Ole DB Provider for ODBC driver's) то начинаются тормоза.
Например если таблица содержит 6000 записей, то в случае с Jet выполняется 3 секунды, а во втором случае - 40 секунд. А если записей больше то вообще...

Кто-нить может это объяснить??
...
Рейтинг: 0 / 0
15.03.2004, 17:14
    #32442304
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft Jet лучше ODBC??????
старые драйвера к акцесным базам очень не любят выражение IN

попробуй заменить на LEFT JOIN с проверкой правой части на NULL, должно начать работать быстрее
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Microsoft Jet лучше ODBC?????? / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]