клаша тут "не виноватая"

ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Итак,

Скорость выборки у библиотек типа DirectODBC на порядок выше, чем у клашиных "акселераторов".

Я заявил, что клаша тут "не виноватая". Она в ODBC&MSSQL намеренно использует более надежные и актуальные серверные курсоры. Получается в ущерб скорости. DirectODBC же библиотеки используют так называемые ODBC курсоры.
Кардинальное их отличие - при первом же чихе вся выборка переливается по сетке на клиента, в кэш ODBC Cursor Library. Это не всегда есть хорошо, зато работает быстро. Так вот что интересно, "быстрая" работа с серверными курсорами MsSQL тоже возможна, но одновременно не более одного активного запроса в пределах одного коннекта, что неприемлемо для нормальной работы нормального приложения. Досадное ограничение. Как я хорошо понимаю автора фильма "Убить Билла..."!!!

Чтобы не быть голословным, обладателям MsSQL/MSDE предлагаю прогнать тесты на чтение отсюда:
http://www.ingasoftplus.com/cgi-bin/top ... atdemo.exe
Потом скачать пропатченные C5ODBCX.DLL и C5MSSX.DLL драйверы отсюда http://www.fomintools.com/C5accelerator.zip и почувствовать разницу на этом же тесте. Результат - ускорение работы клашиных драйверов в 10-12 раз. От MAV DirectODBC теперь практически не отличается.

"Папа, а быстрые акселераторы существуют?" (c) мой.
"Нет, Сынок, это фантастика..." (с) рекламный ролик.

А может все-таки...

Как я уже сказал выше, такой ускоренный акселератор не даст нормально работать нормальному приложению, где одновременно открываются и читаются несколько VIEW/FILE. Прекрасно работают только тесты, подобные данному. Речь идет о приложении на базе MsSQL. Что касается прочих баск-ендов, например Firebird, то данный вариант акселератора C5ODBCX.DLL может оказаться весьма интересным. Но я лично другого сиквела, кроме MsSQL пока не использую. Даже и протестировать под рукой не на чем. Посему отдаю указанный драйвер общественности. Интересны результаты тестов на различных SQL/ODBC платформах, кроме MsSQL. Стабильна ли работа приложений с Browse/Form и есть ли ощутимое ускорение в тестах на множественное чтение записей?

С уважением,
---
Oleg Fomin oleg@fomin.info
Написал: ClaList(2)
Гость

Сообщение Гость »

Извините, Олег.

А для С55 и/или С61 драйверы у Вас существуют ? С5, к сожалению, уже не используем.

С Уважением, Марина.

И, не в тему, FRB для С61 перестал понимать в файл-схеме Custom-Join. Это
навсегда, или поправится (в смысле, вернется на место) ?


(Добавление)

Дык написано же вроде - это тестовые патчи, для реальной жизни не применимы. Олег просто написал это письмо дабы показать, что велосипидисты в старые годы не были дураками и многие вещи делали по уму, а не через анус (как сейчас).

--
Best regards,
Vadym mailto:vadim@softcreator.com
ICQ: 82308757
Написал: ClaList(2)
Гость

Сообщение Гость »

Честно говоря, глядя в логи MSSQL акселератора, закралась мысль, что велосипедисты лохи - выставляют атрибут CONCURRENCY стейтмента в значение ROWVER, заставляя сервер напрасно пыхтеть и тормозить, создавая на tempdb копию всей выборки текущего запроса. Вот и полез с дизассемблером в бинарник акселератора, исправил атрибут конкуренции на READONLY, легко получил выигрыш в скорости на порядок. Как побочный эффект - мягкософтспецифичную ошибку "Connection is busy with results for another hstmt" при попытке например PUT(UPDATE...) при одновременно открытой в Browse VIEW(SELECT...).
Это не ошибка велосипедистов. На нее, как выяснилось, плачутся давно и очень-очень многие. А велосипедисты просто нашли для себя workaround этой проблемы ценой потери скорости работы.

Повторяю, ошибка эта мягкософтспецифичная, т.е. присуща исключительно MsSQL серверу, начиная с версии 6.5. Предполагаю, что с прочими ODBC/SQL платформами цель будет достигнута и клашин ODBC драйвер/акселератор станет работать по-прежнему стабильно но ничуть не медленнее DirectODBC.

Выложил драйвер для С5, т.к. пример Андрея Мялина на C5. Если надо, завтра "поколдую" hex-едитором и выложу подправленный C55ODBCX.DLL/C6ODBCX.DLL.

С уважением,
---
Oleg Fomin
Выложил драйвер для С5, т.к. пример Андрея Мялина на C5. Если надо, завтра "поколдую" hex-едитором и выложу подправленный C55ODBCX.DLL/C6ODBCX.DLL.
Было бы просто замечательно :)

Best regards,
Andrew Listiev mailto:andrewl@inbox.lv

Было бы очень здорово, небольшое увеличение скорости не помешает.

--
С уважением,
Евгений г.Дубна mailto:deesoftprog1@list.ru
Написал: ClaList(2)
Гость

Сообщение Гость »

Здравствуйте уважаемый Oleg Fomin.

А как быть с версиями ?
Может просто сообщите какую комбинацию надо заменить , а нех редактор мы
сами найдем ?

домашний soft2@mail.redcom.ru
Написал: ClaList(2)
Гость

Сообщение Гость »

Пропатченные DLLки для С55 и С61 можно скачать здесь:
http://www.fomintools.com/accelerator.zip

Для обладателей hex-редакторов собственно патч ниже:

C55 (C55ODBX.DLL, C55ODBXL.LIB)
------------------------------------------------------
Serch for hex 74DFEB1783F800751AEB2383F800740BC784248100000003000000
Replace with 740EEB1783F800751AEB2383F800740BC784248100000001000000

C61 (C60ODBX.DLL, C60ODBXL.LIB)
------------------------------------------------
Serch for hex 74DFEB1483F8007517EB1D83F8007408C744242B03000000
Replace with 740EEB1483F8007517EB1D83F8007408C744242B01000000

С уважением,
---
Oleg Fomin
Написал: ClaList(2)
Ответить