Форум: "Базы";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];
Внизскорость работы MySQL+ODBC+ADO Найти похожие ветки
← →
fidget (2002-02-19 18:56) [0]Есть необходимость написать делфевого клиента для работы с MySQL server. Работать надо обязательно через ODBC. Попробовала использовать компоненты с палитры ADO.
Для проверки скорости работы сделала в цикле от 1 до 1000
select * from my_table
В таблице 3 строки(всего 4 столбца)
С localhost запрос выполняется 33секунды, если запускать с машины, которая в локальной сети находится, то 2мин 54сек
С такой скоростью работать не очень хочется...
Тем более что с API такой запрос за несколько секунд выполняется...
Это оно так тормозит из-за ODBC? Есть варианты работы без использования ADO с MySQL? Может можно как-то ускорить работу?
← →
MetallAdm (2002-02-19 19:18) [1]а зачем собсвенно в цикле выполнять запрос ??
у меня допустим все через ODBS
максимальное время у запроса из 3-x таблиц
с записями около 20000 занимало только
около минуты
так же приблезительно и через ADO
← →
fidget (2002-02-19 19:50) [2](цикл - потому что мой шеф так хочет проверить скорость и производительность :( )
А ты с ODBC через что работаешь?
Можно как то напрямую работать с ODBC?
← →
MetallAdm (2002-02-19 20:04) [3]да и вообше странно что то
хотя мне кажется глуппо так проверять производителность лучше пускай в табличку и из нескольких
полей данных тысяч так на 100 в цикле запишет а потом оттуда запросы делать
← →
fidget (2002-02-19 20:39) [4]шеф аргументирует тем, что мы меряем не скорость работы mysql сервера, а скорость работы делфевого клиента
← →
biocron (2002-02-20 00:34) [5]Почему обязательно ADO
попробуй c DAO
Компонент KaDAO
работать с MDB файлами, имять линки в них на любые базы транслировать, накапливать в них и экспортировать
у меня было 4 базы с 20-50 000 записей
таблицы линкованые к MDB
как только пошел таким путем скорость возрасла в 5-8 раз.
← →
fidget (2002-02-20 16:20) [6]а где можно взять этот компонент?(KaDAO)
← →
fidget (2002-02-20 17:43) [7]Компонент нашла, поставила...
только там даже если устанавливаешь ODBC, то все равно в SystemDatabase оно спрашивает .mdb файл...
Как линковать таблицы к MDB файлам?
← →
biocron (2002-02-20 23:35) [8]Создаеш 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}
там хелп есть в компоненте
← →
Suntechnic (2002-02-21 04:47) [9]>biocron © (20.02.02 23:35)
По-моему вы о разных вешах говорите. Основное предназначение DAO это дуступ к Access, а автору нужен MySQL. Теоретически можно конечно через DAO->ODBC->MySQL, но кому такая головная боль нужна?
>fidget © (20.02.02 17:43)
Тебе какая ф-циональность необходима? Если выполнить пару запросиков и вернуть пару значений, тогда пожалуй несложно будет и на ODBC API написать, ну а если что-то сложнее, то ищи компоненты по для прямого доступа через ODBC, но к сожалению все хорошие платные.
← →
Mike_Goblin (2002-02-21 10:33) [10]Найди компоненты прямого доступа Zeos (или другие) и не мучайся :)))
← →
fidget (2002-02-21 11:54) [11]>Mike_Goblin
Да есть у меня компоненты прямого доступа и через API напрямую с mysql работала, но мне через ODBC надо, ТЗ у меня такое :(((
>Suntechnic
Траффик я не думаю что будет очень большой и запросы в основном select-ы будут, по функциональности то что предоставляет ODBC+ADO меня вполне устраивает, единственное что меня там не устраивает это скорость :(
Среди настроек ODBC не нашла ничего такого, что могло бы существенно повысить данную характеристику...
Меня интересовали альтернативные варианты работы через ODBC с MySQL
Кстати, а ты не мог бы поподробнее про написание API на ODBC?
← →
Suntechnic (2002-02-21 16:14) [12]>fidget © (21.02.02 11:54)
>Кстати, а ты не мог бы поподробнее про написание API на ODBC?
А что именно подробнее тебя интересует? Документация по ODBC API вся на MSDN есть. Я когда то писал обортку из классов для ODBC API и даже исходники где-то валяются, но это было на С++. Если есть конкретные вопросы, спрашивай. Но опять же, если тебе, например, надо данные запросов в DBGrid-е отображать, тот как понимаешь без написания своего компонента через ODBC API это не получится.
← →
biocron (2002-02-22 13:18) [13]???DAO->ODBC->MySQL, но кому такая головная боль нужна? Почему, пусть попробует, ADO, работает через ODBС но очень тяжко,DAO с линком, и крейтом базы, сразу во временную базу на локале в MDB файле ,будет работать в десятки раз быстрее не жели он будет работать напрямую, конечно теряется определенная актуальность, но енто уже технология написания обновления
← →
fidget (2002-02-22 16:09) [14]to biocron>
Я чуть не очень понимаю как линковать таблицы mysql, которые фактически состоят из 3х файлов: *.frm, *.myd, *.myi ?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c