Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];

Вниз

Не знаю куда вопрос задавать, попробую здесь.   Найти похожие ветки 

 
savva   (2002-03-28 10:11) [0]

бЯда такого плана - при работе с ADO (Access)была замечена такая неприятная вещь: весь (судя по размеру используемой памяти) набор данных загоняется в память, и если на таблице в 10 000 записей это еще терпимо, то при открытии таблицы в 300 000 записей этот процесс занимает весьма и весьма длительное время.
Внимание, а теперь вопрос :))
Это как нибудь лечится?
Использую TADOQuery...


 
Sergey13   (2002-03-28 11:02) [1]

А зачем тебе, если не секрет, такой набор данных в 300 000 записей. Что ты с ним делаешь. Случайно не в грид засовываешь? При таком подходе

select * from здоровая_таблица

какой угодно сервак на какой угодно сетке завалить можно.
Я своим коллегам-подчиненным по башке даю за запрос, возвращающий больше 1000 записей. Ибо не фиг.
Лечится эта болезнь обычно изменением логики приложения.


 
savva   (2002-03-28 11:30) [2]


> Sergey13 © (28.03.02 11:02)
> А зачем тебе, если не секрет, такой набор данных в 300 000
> записей.

надо реализовать инкрементный поиск а записей начинающихся с цифры 1 - довольно много, причем большая часть...

Кстати, если использовать TADOTable то путем комбинирования свойств эта неприятная ситуация исправляется... но не хочу я эту компоненту :)))


 
Sergey13   (2002-03-28 11:53) [3]

А что то типа

select * from здоровая_таблица
where pole like "1%"

не пробовал. Для аксеса не знаю, но для оракула проходит.


 
wicked   (2002-03-28 12:02) [4]

2 savva ©
удивляешь ты меня, чес говоря... :)
проблема решается несколькими путями:
1. Изменением свойства CursorLocation в clUseServer... плюсы: на порядок большая загрузка... минусы: бОльшая часть работы переходит на ole db провайдера, что не есть всегда гуд, например, перестаёт работать такае вещь как Sort, Filter и Locate ужасно тормозят...
2. Использованием асинхронных выборок, см. свойство ExecuteOptions... плюсы: всё чин-чинарём, программа не тормозит, а вежливо показывает градусник типа "сколько-там-еще-до-конца-загрузки"... минусы: надо играться со связкой TADOQuery-TDataSource по причине выскакисающих AV (если попросишь, обьясню, а еще лучше, поспрашивай Delirium"а ;)...
вроде всё....


 
savva   (2002-03-28 12:55) [5]


> wicked © (28.03.02 12:02)
> Изменением свойства CursorLocation в clUseServer...

Менял, (именно это я и имел ввиду говоря "путем комбинирования свойств" :))), но для TADOQuery этот фокус не прошел до тех пор, пока я выставил свойство ExecuteOptions ... и как было обещано - появились AV.. причину я их еще не понял...
Если не трудно - объясни почему и как :)), можно здесь или на мыло (в анкете) или по аське (там же)...
Спасибо за уже оказанную помощь...

> Sergey13 © (28.03.02 11:53)
> А что то типа
>
> select * from здоровая_таблица
> where pole like "1%"

не катит, так как все равно набор данных будет не малым... Да и вроде все налаживаться начало :)) Спасибо за то, что не был я оставлен без внимания...


 
drpass   (2002-03-28 13:26) [6]

А стоит ли использовать Access да еще и через ADO - далеко не самый быстрый интерфейс - с таблицами, размер которых достигает 300000 записей? IMHO, совершенно не стоит. Для этого есть совсем другой класс СУБД, та же Interbase, например.


 
savva   (2002-03-28 13:34) [7]


> drpass © (28.03.02 13:26)

я сним раньше работал, да и отказываться не собирался... просто есть несколько моментов, почему я остановился на Acces"е:
1. BDE не подходит сами знаете почему :))
2. InterBase тоже не сильно подходит, потому как стоять это все будет на одной машине, а она не отличается высокой производительностью, да и к тому же в состав дистрибутива его надо включать (а это +10-15 Мб) и чтоб поставть его скорее всего меня будут дергать - а оно мне надо?? А Access у большинства машин уже есть...


 
drpass   (2002-03-28 13:53) [8]

В общем-то да, вот только системные требования Interbase гораздо меньше, чем у Access, а производительность выше. И еще, учти, что твоя программа сможет работать только на Win98SE и старше. Иначе с ней придется таскать инсталляцию ADO 7MB размером.


 
wicked   (2002-03-28 13:56) [9]

2 savva © (28.03.02 12:55)
при использовании асинхронных опций AV выскакивают от того, что на момент открытия набора данных TDataSource обращается за данными к COM-обьекту recordset (через TADOQuery/TADODataSet), которого в то время еще не существует...
выход в том, чтоб в design time не привязывать TDataSource к TADOQuery, а делать это во время выполнения - в обработчике события OnFetchComplete... можно попробовать привязывать его при первом вызове обработчика OnFetchProgress, хотя я так не пробовал...


 
wicked   (2002-03-28 13:58) [10]

2 drpass ©

> Иначе с ней придется таскать инсталляцию ADO 7MB размером

чисто замечание - ADO проще ставить...
хотя не спорю - jet must die.... :))


 
savva   (2002-03-28 14:25) [11]

> wicked © (28.03.02 13:56)
Спасибо большое за помощь!

Считаю вопрос исчерпанным :)) Ветку можно закрыть со спокойной душой...



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
1-17535
Юляша
2002-04-23 22:53
2002.05.06
удаление формы


1-17567
Masa
2002-04-22 12:34
2002.05.06
Object


6-17658
Viking
2002-02-21 16:58
2002.05.06
Проблема с IdPOP3


1-17553
Taras
2002-04-23 18:09
2002.05.06
Печать TBitmap


1-17598
Сатир
2002-04-22 16:47
2002.05.06
TreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский