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

Вниз

как быстро открыть БД из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.034 c
6-1103607327
Diman
2004-12-21 08:35
2005.03.06
Кто эткрыл файл?


14-1108144122
Мазут Береговой
2005-02-11 20:48
2005.03.06
Денежные переводы стали "нетрудовыми доходами"


6-1104320778
Vasya.ru
2004-12-29 14:46
2005.03.06
Надо получить список всех IP адресов локальной сети


6-1104381463
Delpher_Gray
2004-12-30 07:37
2005.03.06
Обработка ошибки 10061, TClientSocket


4-1106544847
pmm
2005-01-24 08:34
2005.03.06
Проблемы с CreateFileMapping и MapViewOfFile





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский