Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

как быстро открыть БД из 130000 зап с небольшой потерей памяти   Найти похожие ветки 

 
Yerbol ©   (2005-02-04 14:01) [0]

Я открываю базу данных Access через ADO и отображаю их в DBGrid.
База моя большая быстро не открывается да и памяти жрет моного на простых компах не работает :). Задача моя такая открыть базу все целиком а по кусочкам их не устраивает :(
Подскажите как можно открыть эту базу без больших потерь памяти и чтоб как можно быстрее (а то у меня она открывается более 1 минут :(
Или есть какой нить компанент типа True DBGrid Pro 6.0 в Visual Basic 6


 
Соловьев ©   (2005-02-04 14:05) [1]


> как быстро открыть БД из 130000 зап

И ты их 130 000 записей просмотришь?
Делаешь обычный запрос и не фитчиш все записи. И будет летать.


 
msguns ©   (2005-02-04 14:51) [2]

>Соловьев ©   (04.02.05 14:05) [1]
>И ты их 130 000 записей просмотришь?

Ну у него монитор с диагональю километр, а смотреть будет из вертолета ;)


 
Соловьев ©   (2005-02-04 15:03) [3]

тогда с того вертолета и прыгнуть надо 8)


 
Desdechado ©   (2005-02-04 15:10) [4]

> по кусочкам их не устраивает
Типичная безголовая юзеркая гигантомания: "Хочу, как хозяин, обозреть свои владения, а уж потом буду думать, что мне нужно выбрать и нужно ли вообще".
А нормальный подход - наоборот. Сформулировать, что надо, а потом уже искать.


 
Плохиш ©   (2005-02-04 15:11) [5]


>Yerbol ©   (04.02.05 14:01)
>Задача моя такая открыть базу все целиком а по кусочкам их не устраивает

Юзер - всегда прав. Хочет, пусть ждёт, тратится на новую технику...


 
Sergey13 ©   (2005-02-04 15:11) [6]

2[3] Соловьев ©   (04.02.05 15:03)
Так на моник упадет и разбьет, а он дорогой наверное - жалко. 8-)


 
Соловьев ©   (2005-02-04 15:14) [7]


> Юзер - всегда прав. Хочет, пусть ждёт, тратится на новую
> технику...

И программисты часто пользуется этим. Рисуют толстых пре ТОЛСТЫХ клиентов :)


 
Соловьев ©   (2005-02-04 15:15) [8]


> Так на моник упадет и разбьет, а он дорогой наверное - жалко.
> 8-)

8) главное чтобы не ушибся.


 
Виталий Панасенко   (2005-02-04 15:17) [9]

я в АДО не очень.. Может курсор надо на сервере открыть а не на клиенте ?. .я так думаю долго потому что все тянет на клиента..


 
Sergey13 ©   (2005-02-04 15:19) [10]

2 [8] Соловьев ©   (04.02.05 15:15)
Тебе узера жалко, а мне монитор. Наверное я не прав. Но монитор уж очень пондравился - километр диагональ. Вот бы на таком в HL2. 8-)


 
Johnmen ©   (2005-02-04 15:22) [11]

Виталий Панасенко   (04.02.05 15:17) [9]

На каком сервере ?


 
Danilka ©   (2005-02-04 15:26) [12]

[9] Виталий Панасенко   (04.02.05 15:17)
Это Аццесс, какой там сервер, думаю, не поможет. :)
Хотя, кто его знает, Yerbol, если хочешь продолжать пляски с извращениями попробуй измени у ADOConnection свойство CursorLocation.


 
msguns ©   (2005-02-04 15:27) [13]

>Sergey13 ©   (04.02.05 15:19) [10]
>Тебе узера жалко, а мне монитор. Наверное я не прав. Но монитор уж очень пондравился - километр диагональ. Вот бы на таком в HL2. 8-)

А психика ? Ты ж, Сергунь, у нас впечатлительный. Представляешь, выходишь из-за угла, помахивая двухверстовым узи, а на тебя монстер прыгает с небоскреб, а ? Лучше бегай на свом 17-ти дубовом..


 
Danilka ©   (2005-02-04 15:29) [14]

[11] Johnmen ©   (04.02.05 15:22)
Ну, вобщем-то да, но все-таки одно дело вытащить в кэш 20 записей из таблицы, а другое 130к.
Хотя, конечно, когда долистают до конца то память будет забита точно также.


 
Виталий Панасенко   (2005-02-04 15:29) [15]

Johnmen ©   (04.02.05 15:22) [11]
Там еще и TableDirect значение имеет... Вообще-то странно, что sniknik не откликнулся - это ж его стихия.. :-)


 
Sergey13 ©   (2005-02-04 15:34) [16]

2[13] msguns ©   (04.02.05 15:27)
>А психика ? Ты ж, Сергунь, у нас впечатлительный
Это где написано? 8-)

>Представляешь, выходишь из-за угла, помахивая двухверстовым узи, а на тебя монстер прыгает с небоскреб, а ?
Так я ж на вертолете. 8-)


 
Johnmen ©   (2005-02-04 15:36) [17]

>Danilka ©   (04.02.05 15:29) [14]
>Виталий Панасенко   (04.02.05 15:29) [15]

Конечно, память будет забита. Но можно однонаправленный датасет. Тогда кеш всего на 1 запись, но никакой двусторонней навигации, никаких дбгридов...:)
А второй вопрос - скорость. Скачать 130000 - это время.Не зависимо от направленности...


 
Danilka ©   (2005-02-04 15:53) [18]

[17] Johnmen ©   (04.02.05 15:36)
Не, автору грид как-раз нужен, поэтому однонаправленый не катит. :)
Просто, незнаю как в аццессе, но возможно если поставить серверный курсор, то он не все сразу в кэш затолкает, а только то, что в гриде, и пихать в кэш будет по-мере листания, то-есть на первоначальное открытие удет меньше чем в случае с клиентским курсором - 1 минута.
Хотя, все равно, на мой взгляд, вываливать запрос на сотни тысяч записей в грид - извращение. :)

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


 
Виталий Панасенко   (2005-02-04 16:15) [19]

Знаете, не поленился.. Создал БД с одной таблицей 128000 записей.. Открываю ADODataSetом (select * from T1)  -  доли секунды..
таблица T1
F1 -  счетчик
F2 - строка 50
F3 - строка 50
F4 - длинное целое..
У dataSetа курсор на сервере... все работает "мухой".. перемещение и тд ..:-)


 
Danilka ©   (2005-02-04 16:19) [20]

[19] Виталий Панасенко   (04.02.05 16:15)
В конец грида уходил? :))


 
Виталий Панасенко   (2005-02-04 16:20) [21]

Ебстебственно !:-) Самое первое, что пробовал..


 
Danilka ©   (2005-02-04 16:24) [22]

[21] Виталий Панасенко   (04.02.05 16:20)
Ну, тогда, либо у тебя комп/памяти побольше чем у автора, либо у него полей не один десяток. :))
По-идее, отжираемая память после ухода в конец грида должна быть такая-же как и при клиентском курсоре..
Или есть варианты?


 
Johnmen ©   (2005-02-04 16:25) [23]

>Виталий Панасенко   (04.02.05 16:15) [19]
>Создал БД

Аксесную ?


 
Stanislav ©   (2005-02-04 16:26) [24]

А что ты в этой таблице храниш ? Какие данные.
Зачем сразу 130000 ?


 
Виталий Панасенко   (2005-02-04 16:36) [25]

Johnmen ©   (04.02.05 16:25) [23]
Конечно Access...
памяти - 256 (видео-интегрированное), Celeron 1.7, OS - XP SP2
Неужели все такие ленивые ?:-).. сами попробуйте - увидите ...


 
Johnmen ©   (2005-02-04 16:42) [26]

>Виталий Панасенко   (04.02.05 16:36) [25]

Аксеса нет у меня. А вручную гоношиться лень...:)
И потом, ты же делал всё в рамках одного комп., локально. А по сети гонять такие НД, как правильно сказали, чистый изврат...


 
Виталий Панасенко   (2005-02-04 17:15) [27]

Положил, проверил.. 100 мБ сетка - при первом открытии пауза, заметная на глаз.. потом - нет различия, что на локали, что на сети.. одинаково.. на глаз, по крайней мере не видно..:-)


 
Johnmen ©   (2005-02-04 17:18) [28]

>при первом открытии пауза,

Вот тут всё и закачалось на клиента. А дальше просто работа с этими локальными данными...


 
sniknik ©   (2005-02-04 17:26) [29]

> Там еще и TableDirect значение имеет... Вообще-то странно, что sniknik не откликнулся - это ж его стихия.. :-)
имеет, посмотри хелп по seek от adodataset в дельфях (там оптимальные параметры для аксесс серверного курсора приводятся(в примечаниях, как и пояснение что кроме jet-а нет аналогов), как раз такие что jet будет напрямую с базой работать локально, не перегоняя данные через ядро фактически эмулируя сервер)
но для клиент серверных технологий это увы не пройдет... исключительно на локали так можно.

работать тоже надо иногда... ;о))


 
Виталий Панасенко   (2005-02-04 17:39) [30]

Johnmen ©   (04.02.05 17:18) [28]
вряд ли ... я в коде делаю
Tbl.Close;
Tbl.Open;
в обработчике кнопки Открыть... т.е. НД закрывается...
Блин.. надо с 1000000 записей загнать...:-) чем сейчас и займусь... :-)..



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

Текущий архив: 2005.03.06;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.045 c
3-1107345775
zunder
2005-02-02 15:02
2005.03.06
как продублировать датасет?


14-1108028790
AlexG
2005-02-10 12:46
2005.03.06
Работать как частный предприниматель...


14-1108617817
Anonim
2005-02-17 08:23
2005.03.06
Подътягивание


11-1092579135
SSSSS
2004-08-15 18:12
2005.03.06
Как назначить ParentWindow в уже созданном TForm?


14-1107260269
IronHawk
2005-02-01 15:17
2005.03.06
Телевизионная разводка по дому, кто подскажет девайс?