![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
скорость работы MySQL+ODBC+ADO [D6, MySQL]
fidget © (2002-02-19 18:56:00)Есть необходимость написать делфевого клиента для работы с MySQL server. Работать надо обязательно через ODBC. Попробовала использовать компоненты с палитры ADO.
Для проверки скорости работы сделала в цикле от 1 до 1000
select * from my_table
В таблице 3 строки(всего 4 столбца)
С localhost запрос выполняется 33секунды, если запускать с машины, которая в локальной сети находится, то 2мин 54сек
С такой скоростью работать не очень хочется...
Тем более что с API такой запрос за несколько секунд выполняется...
Это оно так тормозит из-за ODBC? Есть варианты работы без использования ADO с MySQL? Может можно как-то ускорить работу?
fidget (2002-02-22 16:09:00) [1]to biocron>
Я чуть не очень понимаю как линковать таблицы mysql, которые фактически состоят из 3х файлов: *.frm, *.myd, *.myi ?
biocron (2002-02-22 13:18:00) [2]???DAO->ODBC->MySQL, но кому такая головная боль нужна? Почему, пусть попробует, ADO, работает через ODBС но очень тяжко,DAO с линком, и крейтом базы, сразу во временную базу на локале в MDB файле ,будет работать в десятки раз быстрее не жели он будет работать напрямую, конечно теряется определенная актуальность, но енто уже технология написания обновления
Suntechnic (2002-02-21 16:14:00) [3]>fidget © (21.02.02 11:54)
>Кстати, а ты не мог бы поподробнее про написание API на ODBC?
А что именно подробнее тебя интересует? Документация по ODBC API вся на MSDN есть. Я когда то писал обортку из классов для ODBC API и даже исходники где-то валяются, но это было на С++. Если есть конкретные вопросы, спрашивай. Но опять же, если тебе, например, надо данные запросов в DBGrid-е отображать, тот как понимаешь без написания своего компонента через ODBC API это не получится.
fidget (2002-02-21 11:54:00) [4]>Mike_Goblin
Да есть у меня компоненты прямого доступа и через API напрямую с mysql работала, но мне через ODBC надо, ТЗ у меня такое :(((
>Suntechnic
Траффик я не думаю что будет очень большой и запросы в основном select-ы будут, по функциональности то что предоставляет ODBC+ADO меня вполне устраивает, единственное что меня там не устраивает это скорость :(
Среди настроек ODBC не нашла ничего такого, что могло бы существенно повысить данную характеристику...
Меня интересовали альтернативные варианты работы через ODBC с MySQL
Кстати, а ты не мог бы поподробнее про написание API на ODBC?
Mike_Goblin (2002-02-21 10:33:00) [5]Найди компоненты прямого доступа Zeos (или другие) и не мучайся :)))
Suntechnic (2002-02-21 04:47:00) [6]>biocron © (20.02.02 23:35)
По-моему вы о разных вешах говорите. Основное предназначение DAO это дуступ к Access, а автору нужен MySQL. Теоретически можно конечно через DAO->ODBC->MySQL, но кому такая головная боль нужна?
>fidget © (20.02.02 17:43)
Тебе какая ф-циональность необходима? Если выполнить пару запросиков и вернуть пару значений, тогда пожалуй несложно будет и на ODBC API написать, ну а если что-то сложнее, то ищи компоненты по для прямого доступа через ODBC, но к сожалению все хорошие платные.
biocron (2002-02-20 23:35:00) [7]Создаеш MDB
KADaoDatabase1.CreateAccessDatabase("C:\NewDb.mdb");
потом
какую хош таблицу линк
KADaoTable1.Active := False;
KADaoTable1.TableName := "";
KADaoDatabase1.LinkExternalTable("d:\ExcelTest.xls","Sheet1$",Excel_80_Table,0);
KADaoTable1.TableName := "Sheet1$";
KADaoTable1.Active := True;
для dbf
dBase_III_Table = "dBase III;DATABASE=%s"; {Drive:\Path}
там хелп есть в компоненте
fidget (2002-02-20 17:43:00) [8]Компонент нашла, поставила...
только там даже если устанавливаешь ODBC, то все равно в SystemDatabase оно спрашивает .mdb файл...
Как линковать таблицы к MDB файлам?
fidget (2002-02-20 16:20:00) [9]а где можно взять этот компонент?(KaDAO)
biocron (2002-02-20 00:34:00) [10]Почему обязательно ADO
попробуй c DAO
Компонент KaDAO
работать с MDB файлами, имять линки в них на любые базы транслировать, накапливать в них и экспортировать
у меня было 4 базы с 20-50 000 записей
таблицы линкованые к MDB
как только пошел таким путем скорость возрасла в 5-8 раз.
fidget (2002-02-19 20:39:00) [11]шеф аргументирует тем, что мы меряем не скорость работы mysql сервера, а скорость работы делфевого клиента
MetallAdm (2002-02-19 20:04:00) [12]да и вообше странно что то
хотя мне кажется глуппо так проверять производителность лучше пускай в табличку и из нескольких
полей данных тысяч так на 100 в цикле запишет а потом оттуда запросы делать
fidget (2002-02-19 19:50:00) [13](цикл - потому что мой шеф так хочет проверить скорость и производительность :( )
А ты с ODBC через что работаешь?
Можно как то напрямую работать с ODBC?
MetallAdm (2002-02-19 19:18:00) [14]а зачем собсвенно в цикле выполнять запрос ??
у меня допустим все через ODBS
максимальное время у запроса из 3-x таблиц
с записями около 20000 занимало только
около минуты
так же приблезительно и через ADO