Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Сравнение OLE DB провайдеров для DBF-баз (число прочтений - 9233 )
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Сравнение OLE DB провайдеров для DBF-баз
26. Марта 2007 :: 07:49
Печать  
Разбирался на днях с различными провайдерами OLE DB для ДБФ-баз и наткнулся на очень интересные результаты.
Цитата:
Advantage Запрос1scrdoc_НеПустойИД - 28117 (1)
Advantage Запрос1scrdoc_НеПустойИД_Top1 - 5864 (1)
VFP Запрос1scrdoc_НеПустойИД - 4649 (1)
Advantage Запрос1scrdoc_Top1 - 4634 (1)
Advantage Запрос1scrdoc_Счетчик - 1050 (1)
VFP Запрос1scrdoc_НеПустойИД_Top1 - 952 (1)
VFP Запрос1scrdoc_Top1 - 684 (1)
VFP Запрос1scrdoc_Счетчик - 222 (1)
Advantage ЗапросНоменклатура_Top1_UPPER - 159 (1)
VFP ЗапросНоменклатура - 88 (1)
Advantage ЗапросНоменклатураUPPER - 66 (1)
Advantage ЗапросНоменклатура - 54 (1)
VFP ЗапросНоменклатураUPPER - 41 (1)
Advantage ЗапросНоменклатура_Top1 - 29 (1)
Advantage ЗапросНоменклатура_Счетчик - 13 (1)
VFP ЗапросНоменклатура_Top1_UPPER - 11 (1)
VFP ЗапросНоменклатура_Top1 - 7 (1)
VFP ЗапросНоменклатура_Счетчик - 4 (1)

Т.е. видно явное преимущество VFP в 2 или более раз.

Но если использовать отчет Саши Орефкова "Структура/ГрафПодчиненности", то VFP медленнее, чем Advantage, от 3 до 20 раз Печаль

Народ, сравните, пожалуйста, на своих базах.
Может быть, я в чем-то ошибаюсь Печаль

ЗЫ Обработка сравнения приложена.
в ней для подсчета времени используются мои старые классы таймеров, большинство наверняка с ними знакомы.
  

OleDB_diff.rar ( 14 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #1 - 26. Марта 2007 :: 07:57
Печать  
На всякий случай выкладываю и упомянутый выше отчет "Структура/ГрафПодчиненности", в котором добавлено
1) работа с провайдером Advantage OleDB
2) вывод времени выполнения в шапку итоговой таблицы
  

Struct.rar ( 9 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #2 - 26. Марта 2007 :: 08:52
Печать  
А что за провайдер такой "Advantage"?
У меня вылазиет следующая ошибка:
Цитата:
ОлеДБ.Соединение(СтрокаСоединения);
{D:\OLEDB ПРОВЕРКА ВЫБОРКИ.ERT(97)}: FAILED! IDataInitialize::GetDataSource(): Класс не зарегистрирован

В процедуре "ВыполнитьAdvantage"
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #3 - 26. Марта 2007 :: 09:45
Печать  
lustin писал(а) 26. Марта 2007 :: 09:09:

Ссылка ведёт "в никуда".
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #4 - 26. Марта 2007 :: 09:49
Печать  
Видимо действует только с cookies  Смущённый - хотел время людей сэкономить на регистрацию...

тады так http://www.advantagedatabase.com - раздел Download / Clients / OleDB 8.1
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #5 - 26. Марта 2007 :: 09:57
Печать  
Ага, спасибо. Вот прямая ссылка.
Я только не понял, это платное удовольствие?
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #6 - 26. Марта 2007 :: 10:00
Печать  
JohnyDeath писал(а) 26. Марта 2007 :: 09:57:
Ага, спасибо. Вот прямая ссылка.
Я только не понял, это платное удовольствие?


Да нет... просто время на регистрацию надо потратить...
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #7 - 26. Марта 2007 :: 10:03
Печать  
Вообщем все как и говрилось

Цитата:
Advantage Запрос1scrdoc_НеПустойИД - 20710 (1)
Advantage ЗапросНоменклатура - 11091 (1)
Advantage ЗапросНоменклатураUPPER - 10864 (1)
VFP ЗапросНоменклатураUPPER - 6554 (1)
Advantage Запрос1scrdoc_НеПустойИД_Top1 - 4186 (1)
VFP ЗапросНоменклатура - 3885 (1)
Advantage Запрос1scrdoc_Top1 - 3285 (1)
Advantage ЗапросНоменклатура_Top1_UPPER - 2526 (1)
Advantage ЗапросНоменклатура_Top1 - 2334 (1)
VFP Запрос1scrdoc_НеПустойИД - 1926 (1)
VFP ЗапросНоменклатура_Top1_UPPER - 489 (1)
Advantage ЗапросНоменклатура_Счетчик - 474 (1)
Advantage Запрос1scrdoc_Счетчик - 461 (1)
VFP ЗапросНоменклатура_Top1 - 372 (1)
VFP Запрос1scrdoc_НеПустойИД_Top1 - 321 (1)
VFP Запрос1scrdoc_Top1 - 230 (1)
VFP Запрос1scrdoc_Счетчик - 28 (1)
VFP ЗапросНоменклатура_Счетчик - 15 (1)



А для графа подчиненности

Структура подчиненности документа Приходная накл. ПЛ-0000496 (15.02.07) - Advantage OLE DB 307 мс                                          
Структура подчиненности документа Приходная накл. ПЛ-0000496 (15.02.07) - VFP 3098 мс                                                                  

PS в файле ТАЙМЕР.prm - надо исправить строку ////#define _LOAD_TIMER
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #8 - 26. Марта 2007 :: 10:09
Печать  
lustin писал(а) 26. Марта 2007 :: 10:03:
Вообщем все как и говрилось

PS Кстати метод ТаймерСКоличеством.ПолучитьКаСтроку() возвращает пустую строку почему то - пришлось переписать с _GetPerformanceCounter


Скорее всего вот это:
Цитата:
если не задана директива _LOAD_TIMER, методы ничего не делают - просто пустышка

  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #9 - 26. Марта 2007 :: 10:12
Печать  
У меня тоже примерно такие же результаты.
Цитата:
Advantage Запрос1scrdoc_НеПустойИД - 10372 (1)
Advantage Запрос1scrdoc_НеПустойИД_Top1 - 6445 (1)
Advantage Запрос1scrdoc_Top1 - 5832 (1)
VFP Запрос1scrdoc_НеПустойИД - 4518 (1)
VFP Запрос1scrdoc_НеПустойИД_Top1 - 1623 (1)
VFP Запрос1scrdoc_Счетчик - 1146 (1)
Advantage Запрос1scrdoc_Счетчик - 1041 (1)
VFP Запрос1scrdoc_Top1 - 744 (1)
Advantage ЗапросНоменклатура_Счетчик - 106 (1)
VFP ЗапросНоменклатура_Счетчик - 70 (1)
Advantage ЗапросНоменклатураUPPER - 20 (1)
Advantage ЗапросНоменклатура_Top1_UPPER - 3 (1)
Advantage ЗапросНоменклатура_Top1 - 3 (1)
Advantage ЗапросНоменклатура - 3 (1)
VFP ЗапросНоменклатура_Top1_UPPER - 2 (1)
VFP ЗапросНоменклатура - 2 (1)
VFP ЗапросНоменклатура_Top1 - 1 (1)
VFP ЗапросНоменклатураUPPER - 1 (1)


Для графа:
1. Структура подчиненности документа Договор 6 (03.01.2006) - Advantage OLE DB 3001 мс                  
2. Структура подчиненности документа Договор 3 (03.01.2006) - VFP 7890 мс
2. Структура подчиненности документа Договор 6 (03.01.2006) - VFP 3857 мс                                                            
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #10 - 26. Марта 2007 :: 10:20
Печать  
JohnyDeath писал(а) 26. Марта 2007 :: 10:09:
Скорее всего вот это:
Цитата:
если не задана директива _LOAD_TIMER, методы ничего не делают - просто пустышка


Именно! Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #11 - 26. Марта 2007 :: 10:25
Печать  
Поправил данные в тесте...  Ужас ну ничего себе.....
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #12 - 26. Марта 2007 :: 10:25
Печать  
JohnyDeath писал(а) 26. Марта 2007 :: 10:12:
У меня тоже примерно такие же результаты.
1. Структура подчиненности документа Договор 6 (03.01.2006) - Advantage OLE DB 3001 мс                  
2. Структура подчиненности документа Договор 3 (03.01.2006) - VFP 7890 мс
2. Структура подчиненности документа Договор 6 (03.01.2006) - VFP 3857 мс                                                            

ОЛЕ по-моему кэширует данные, т.к. запустил второй раз граф подчиненности для Договора 3 и получил вот такой результат:
Цитата:
Структура подчиненности документа Договор 3 (03.01.2006) - VFP 3823 мс                        
Структура подчиненности документа Договор 3 (03.01.2006) - Advantage OLE DB 1484 мс

  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #13 - 26. Марта 2007 :: 10:32
Печать  
Запрос по таблице 1scrdoc специально сделан, чтобы все данные попадали в выборку?
В смысле что
Цитата:
where mdid <> $ПустойИД

где $ПустойИД - это char(9) ('     0   ')
а mdid - char(4)

Может так?
Код
Выбрать все
SELECT mdid
FROM [1scrdoc]
WHERE mdid <> '   0'
ORDER BY mdid
 



  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение OLE DB провайдеров для DBF-баз
Ответ #14 - 26. Марта 2007 :: 10:36
Печать  
1. Да, в общем-то хотел выборку всех данных, но чтобы работала какая-то функция фильтрации.

2. Насчет кеширования нужно проверить.
Попробуйте в обработке сравнения строки ВыполнитьVFP и ВыполнитьAdvantage поменять местами, т.е. сначала VFP, затем Advantage.
Или можно запрос два раза для каждого провайдера выполнять, а время считать только для второго, повторного варианта.

ЗЫ я пока не могу посмотреть, нахожусь на другом месте работы.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать