Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2009, 13:16   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а запросы выполняются медленнее чем Filter у компонентов
Опаньки... шото новенькое.
Цитата:
ко всему нет возможности вручную просмотривать всю базу
А зачем?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2009, 13:26   #12
avfly
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 11
По умолчанию

soleil@mmc, может это так прозвучало, но я реально тебя хочу поблагодарить, да и всех остальных, кто принимает участие в решении данного вопроса. поблагодарить за то что уделяете время на решение данной проблеммы и обидеть я, тем более, никого не хотел.

а по поводу базы скорее всего так и сделаю как посоветовал soleil@mmc, потому что я выхода больше не вижу

Stilet, народ привык к старой программе, которая еще на кипере была написана, там все записи сразу выводятся. ну да ладно, будем переучивать на новую

Последний раз редактировалось Stilet; 13.10.2009 в 14:34.
avfly вне форума Ответить с цитированием
Старый 13.10.2009, 13:47   #13
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от avfly Посмотреть сообщение
и обидеть я, тем более, никого не хотел
никаких обид - там смайл не зря стоит
а про "как раньше работает" - значит неправильно раньше работало
точнее, на малых объемах тормоза были незначительны и прога не рассчитана на такой объем данных
soleil@mmc вне форума Ответить с цитированием
Старый 13.10.2009, 14:35   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
народ привык
Такие вещи легко решаются приказом со стороны начальства.
Это правильный выход.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2009, 14:40   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а про "как раньше работает" - значит неправильно раньше работало
точнее, на малых объемах тормоза были незначительны и прога не рассчитана на такой объем данных
а вот здесь, уважаемый коллега, позвольте с Вами не согласиться. Дело в том, что старые досовские движки СУБД (например, DBASE4, Клиппер, FoxPro) изначально имели такую конструкцию, как BROWSE - это то, что сейчас называется грид (он же DBGrid так вот, открытие таблицы командой USE Таблица практически любого размера происходит за считанные доли секунды (ну, ещё открываются сопутствующие индексные файлы и они частично грузятся в память). Так вот, когда Вы выполните команду Browsе - то Вам МГНОВЕННО отобразятся те записи, которые помещаются на экран. остальные не будут считываться с диска (они же не нужны). В текстовом режиме на экран помещается два десятка записей... это произойдёт так, что Вы глазом не успеете моргнуть.. не знаю, как там движко СУБД поступает, не исключаю, что используется ещё какой-то опережающий кэш на чтение, но когда Вы будете листать записи - но задержек не будет (СУБД будет подчитывать записи по мере необходимости.) так же мгновенно можно перейти на любую запись в таблице (не забываем, что все записи в DBF имеют строго фиксированную длину, а файловый seek работает очень быстро).
Поэтому пользователи привыкли, что им открыты сразу все записи, с которыми они и работают.

Но в современных СУБД всё абсолютно не так
когда выполняется запрос (хоть Table.Open, хоть Query1.Open) — ВСЕ ЗАПИСИ считываются и передаются в локальный датасет. поэтому читать ВСЮ таблицу смысла нет. Нужно ломать стереотипы/интерфейсы - сначала пользователи пусть решат, какой набор записей им нужен (зададут условия выборки), а потом нужный набор записей считается в датасет.

avfly, и категорически рекомендую Вам отказаться от использования BDE!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.10.2009, 14:47   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что вы тут спорите, у автора провайдер гиблый, и все тут.
Автору просто нужно поставить нормальный пров и через ADO его рулить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2009, 14:51   #17
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Цитата:
Сообщение от avfly Посмотреть сообщение
если использовать where, читая определенный объем записей (например 100 первых), то скорость выполнения запроса резко возрастает,
но програма уже боеготовна, а в это время загрузить базу отдельным потоком.
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 13.10.2009, 14:58   #18
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

2 Serge_Bliznykov
не было у меня опыта работы со старыми (никакой негативной окраски) технологиями субд (хотя нет, как пользователь НЮЛ было - вроде как на фокспро реализован и когда загоняли в декларации много строк от 10 000 (заполняли естественно программно), то грид начинал конкретно глючить - не знаю в чем там у была бага)
из объяснения следует что ТС просто не разобрался каким образом тогда все так шустро работало
soleil@mmc вне форума Ответить с цитированием
Старый 13.10.2009, 15:01   #19
avfly
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
avfly, и категорически рекомендую Вам отказаться от использования BDE!
это конечно хорошо, но есть спецификация которая пришла "сверху" и в ней указано, что база должна иметь формат dbf - тут уж никуда не денешься, база приходит именно в этом формате и использовать ее надо именно так, иначе бы я ее просто перекинул на SQL-сервер и не мучался
avfly вне форума Ответить с цитированием
Старый 13.10.2009, 15:07   #20
avfly
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Speeker Посмотреть сообщение
но програма уже боеготовна, а в это время загрузить базу отдельным потоком.
спасибо, интересная мысль, правда я ниразу не работал с потоками в delphi. Если не затруднит хотя бы грубый пример реализации дайте кто нибудь пожалуйста
avfly вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как ускорить работу этого макроса? Neo007 Microsoft Office Excel 1 22.06.2009 18:14
Как ускорить работу программы SibBear Общие вопросы Delphi 7 27.03.2009 14:40
помогите ускорить работу программы... Pashtet Паскаль, Turbo Pascal, PascalABC.NET 5 25.11.2008 22:12
Как ускорить работу с сетевой БД Ramires БД в Delphi 3 21.08.2008 12:16
Помогите пожалуйста ускорить работу по реконструкции моста Геодезистка Помощь студентам 10 07.10.2007 00:05