![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO [D7, XP]
DimOk © (2008-03-03 09:34:00)Доброго времени суток вам мастера. Скажите пожалуйсто как можно ускорить работу ADO. У меня ситуация следующая - таблица имеет около 20 тысяч записей, после того как я пишу ADOTable.Activate := True; сижу и смоотрю в монитор минут пять, при чем на достаточно хорошм железе.... Все настройки компонента по умолчанию, за исключением Connection
DimOk (2008-03-03 11:09:00) [81]
> Такой запрос не должен работать ни на одном движке из-за
> ошибок в синтаксисе
Мог и ошибиться я не копировал а набирал руками, имена таблиц спереди пишутся, но все понял о че реч... :)
DimOk (2008-03-03 11:06:00) [82]БД старая FoxBase в таблице mlabel 4 поля с типом memo может из за этого...? Хотя в фоксе кидаешь грид на форму, устанавливаешь ему в качестве источника данных эту таблици и.. вуаля, грид заполняется практически мнгновенно....
Kolan (2008-03-03 11:03:00) [83]> Сделал Медленно
Чудеса, мож и впрям железо хилое?
ЮЮ (2008-03-03 11:00:00) [84]> Запрос достаточно примитивный...
> select nnum.mlabel, name.mlabel, kolpost.mkart from mlabel
> mkart where nnum.mlabel = nnum.mkart
Такой запрос не должен работать ни на одном движке из-за ошибок в синтаксисе
DimOk (2008-03-03 10:58:00) [85]
> Автор, сделай ка тестовый проект как в [54].
Сделал... Медленно и так и сяк, до секунд не сравнивал но помоему одинаково медленно :(
Сергей М. (2008-03-03 10:56:00) [86]
> Дак он же select * делает
Мало ли чего он еще делает (или не делает), но об этом не договаривает)
Сергей М. (2008-03-03 10:54:00) [87]
> причина этих последствий
Ты пока ни словом не обмолвился о существовании и использованиии индексов по интересующему полю.
Kolan (2008-03-03 10:54:00) [88]> Ты пока ни словом не обмолвился о существовании и использованиии
> индексов по интересующему полю.
Дак он же select * делает
Сергей М. (2008-03-03 10:53:00) [89]
> все равно секунд 20 проходит
Есть стойкое подозрение, что у автора где-то после открытия происходит перемещение к последней записи в неиндексированном НД.
Подобные "чудеса" при этом вполне объяснимы и ожидаемы.
Kolan (2008-03-03 10:53:00) [90]> Эсли у вас в офисе такая машина считается слабой
А у тебя какая машина?
> Хорошо, подскажите тогда что за причина этих последствий
> :)
Причину и пытаемся понять, для чистоты эксперимента сделай новый проект, бо мало ли что там у тебя в рабочем еще делается
DimOk (2008-03-03 10:52:00) [91]
> для примера, на довольно таки слабой сейчас машине (пень
> 3000, 1 гиг памяти)
Эсли у вас в офисе такая машина считается слабой......
> Вариант, который решает не проблемму а последствия.
Хорошо, подскажите тогда что за причина этих последствий... :)
Kolan (2008-03-03 10:50:00) [92]> врядли, это скорее «чудеса» реализации
Автор, сделай ка тестовый проект как в [54].
sniknik (2008-03-03 10:48:00) [93]> Может это чудеса фокс про?
врядли, это скорее "чудеса" реализации...
для примера, на довольно таки слабой сейчас машине (пень 3000, 1 гиг памяти)
полный запрос SELECT * FROM sales
с коннектом
Provider=VFPOLEDB.1;Data Source=D:\;Password="";Collating Sequence=MACHINE
выполняется 17 сек. и возвращает 315883 записей (сколько есть в базе взятой для примера)
"ширина" записи - 20 полей, из них 12 VarChar(32), остальные - даты, числа, деньги (т.е. ничего "массивного").
Kolan (2008-03-03 10:48:00) [94]> и тоже самое
Вариант, который решает не проблемму а последствия.
Так, как пользователю твои 20 тыщ все равно не нужны, ты сначала спроси его что он хочет конкретнно, а потом делалай
select * from mlabel where
Так ты значительно сократиш выборку.
DimOk (2008-03-03 10:47:00) [95]ADODataSet с ним стало побыстрее, но все равно секунд 20 проходит....
DimOk (2008-03-03 10:47:00) [96]
> Это путь к локальному ресурсу ?
Да, диск D: несетевой
Сергей М. (2008-03-03 10:46:00) [97]
> D:\SAFE\BEST\BASE\FILINEW\SCLAD
Это путь к локальномуресурсу ?
DimOk (2008-03-03 10:44:00) [98]
> Убери совсем этот компонент замени на запрос…
Убрал... Написал select * from mlabel и тоже самое...
Kolan (2008-03-03 10:43:00) [99]> пом. TADOTable или TADODataSet
Имхо Сергей описался, он имел ввиду TADOQuery.
Сергей М. (2008-03-03 10:43:00) [100]
> его с пом. TADOTable или TADODataSet
с пом. TADO Queryили TADODataSet