Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перенос БД в память 
V
    Опции темы
scull
Дата 22.2.2007, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 27.7.2006
Где: СПБ

Репутация: нет
Всего: нет



Имеется таблица в Excell (700x8), в проге работа с ней ведется командами типа: 

Код

A = wbookclient.activesheet.cells(r,c)


Создаю массив (700x8) и всю таблицу переношу в этот массив, т.е. команда меняется так:

Код


Dim Mass(700x8) as Var

For x = 1 to 700
     For y = 1 to 8 
          mass(x,y) = wbookclient.activesheet.cells(x,y)
     Next
Next

A = Mass(r,c)


Вопрос такой: Сильно ли  повысит эта операция скорость записи/чтения и проверки условий данных?

P.S.
Грузится программа будет долго, но меня это не беспокоит.
По окончании работы с программой, массив пишется обратно в файл.




 


Это сообщение отредактировал(а) scull - 22.2.2007, 14:16
PM MAIL   Вверх
mihanik
Дата 22.2.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Планируешь работать с переменными типа Var.

Хм...
Очень медленно работает с подобными переменными бейсик...
Да и памяти будет жрать подобный массив порядочно.
А вдруг будет своп на диск... Хотя... Вряд ли.


По-моему изгалятся не имеет смысла.



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Black_Star
Дата 22.2.2007, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 9.9.2003
Где: Minsk

Репутация: 4
Всего: 4



А по-моему стоит. Всякие операции, которые выполняются с памятью на порядок выше, чем считывать/записывать на веник.
То, что жрать будет память.... 700*8*8*50 (если длина записи 50 и тип Variant) = 224000=2 Мб. И это по сравнению со всей оперативкой? Мелочь...
А вот что медленно вары обрабатываются это 100% точно.
PM ICQ   Вверх
Akina
Дата 23.2.2007, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



На самом деле файл Эксельный будет закэшен, так что нечто вроде
Код
Set mySheet = wbookclient.activesheet
...
With MySheet
   A = .Cells(x,y)
...
End With
...
вряд ли будет много медленнее.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
scull
Дата 26.2.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 27.7.2006
Где: СПБ

Репутация: нет
Всего: нет



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

2 Akina

Пробовал такой подход, вот только запросов на эти данные достаточно много, да и надо все время следить за With, а когда файлов открывается три а не один, начинается полный абзац.
PM MAIL   Вверх
Akina
Дата 26.2.2007, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(scull @  26.2.2007,  15:43 Найти цитируемый пост)
запросов на эти данные достаточно много

Цитата(scull @  26.2.2007,  15:43 Найти цитируемый пост)
файлов открывается три а не один

В таком случае я бы пошел по пути открытия файлов как ODBC-источников данных... фактически то же "копирование в память с кэшированием", но неиспользуемые блоки считываться не будут.

Впрочем, так и осталось неясным - в столбцах таблиц находятся разнородные данные или они структурированы? иными словами, оправдано ли использование Variant?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
scull
Дата 27.2.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 27.7.2006
Где: СПБ

Репутация: нет
Всего: нет



2 Akina

Понял, что  не оправданы... избавился от Var

Всем спасибо за помощь!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0663 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.