Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как лучше организовать БД - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как лучше организовать БД (Макросы/Sub)
Как лучше организовать БД
dadmarat Дата: Пятница, 28.03.2014, 19:59 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010
Есть необходимость организовать БД с большим количеством записей (20К-300К).
Суть какова: есть какое-то событие, а в базе данных все блоки за год и это событие попадает в какой-то один из них (по дате и времени вычисляем).
Сейчас эта база в файле excel и он очень "тяжелый", пока его откроешь, пока формулами проставит статус событий. Очень много времени занимает.
Есть желание организовать так: макрос "собирает" запрос с исходными данными и отправляет на сервер с БД, сам сервер вычисляет и отправляет ответ и макрос обратно проставляет результат.

Так как опыта работы с БД (да и с excel и vba) очень мало не уверен, что правильно выбиру метод. Думаю сделать веб-сервер с SQL базой и с ней такое сделать.

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

Спасибо.

P.S.: Надеюсь понятно объяснил задачу.


----------------
I can do it!
----------------


Сообщение отредактировал dadmarat - Пятница, 28.03.2014, 20:08
 
Ответить
СообщениеЕсть необходимость организовать БД с большим количеством записей (20К-300К).
Суть какова: есть какое-то событие, а в базе данных все блоки за год и это событие попадает в какой-то один из них (по дате и времени вычисляем).
Сейчас эта база в файле excel и он очень "тяжелый", пока его откроешь, пока формулами проставит статус событий. Очень много времени занимает.
Есть желание организовать так: макрос "собирает" запрос с исходными данными и отправляет на сервер с БД, сам сервер вычисляет и отправляет ответ и макрос обратно проставляет результат.

Так как опыта работы с БД (да и с excel и vba) очень мало не уверен, что правильно выбиру метод. Думаю сделать веб-сервер с SQL базой и с ней такое сделать.

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

Спасибо.

P.S.: Надеюсь понятно объяснил задачу.

Автор - dadmarat
Дата добавления - 28.03.2014 в 19:59
alex77755 Дата: Суббота, 29.03.2014, 09:41 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Цитата
пока формулами проставит статус событий

Формулы всегда сильно тормозят.
При большом количестве записей от них лучше вообще отказаться.
Например в пользу макросов.
Кстати запросы не обязательно должны быть к базе.
К листу ексел тоже можно


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение
Цитата
пока формулами проставит статус событий

Формулы всегда сильно тормозят.
При большом количестве записей от них лучше вообще отказаться.
Например в пользу макросов.
Кстати запросы не обязательно должны быть к базе.
К листу ексел тоже можно

Автор - alex77755
Дата добавления - 29.03.2014 в 09:41
Serge_007 Дата: Суббота, 29.03.2014, 10:45 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Формулы всегда сильно тормозят
Это не так. Математические операторы, используемые в формулах, работают одинаково быстро, как в Excel, так и в VBA. Функции листа Excel - это код, написанный на языке программирования С и вызываемый непосредственно из ядра приложения, из динамических библиотек DLL, что делает функции листа на порядок более быстродействующими, чем код VBA написанный пользователем и выполняющий аналогичные вычисления


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Формулы всегда сильно тормозят
Это не так. Математические операторы, используемые в формулах, работают одинаково быстро, как в Excel, так и в VBA. Функции листа Excel - это код, написанный на языке программирования С и вызываемый непосредственно из ядра приложения, из динамических библиотек DLL, что делает функции листа на порядок более быстродействующими, чем код VBA написанный пользователем и выполняющий аналогичные вычисления

Автор - Serge_007
Дата добавления - 29.03.2014 в 10:45
ikki Дата: Суббота, 29.03.2014, 23:01 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
тема и вопрос поставлены слишком в общем виде.

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

непонятно - что за формулы и нельзя ли облегчить их...
непонятно - почему вы не пользуетесь другими инструментами Excel - к примеру, сводными, фильтрами...
непонятно - почему вы не пользуетесь макросами в Excel...
непонятно, слышали ли Вы о MS Query...

список можно продолжать.
но и так понятно:
Надеюсь понятно объяснил задачу.
нет.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениетема и вопрос поставлены слишком в общем виде.

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

непонятно - что за формулы и нельзя ли облегчить их...
непонятно - почему вы не пользуетесь другими инструментами Excel - к примеру, сводными, фильтрами...
непонятно - почему вы не пользуетесь макросами в Excel...
непонятно, слышали ли Вы о MS Query...

список можно продолжать.
но и так понятно:
Надеюсь понятно объяснил задачу.
нет.

Автор - ikki
Дата добавления - 29.03.2014 в 23:01
alex77755 Дата: Воскресенье, 30.03.2014, 00:44 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

ИМХО
Цитата
Это не так

Возможно это из-за того, что я плохо знаю теорию.
Но как-то заказывали написать пользовательскую функцию и прислали книгу где она должна работать.
Я думал, что у меня зависла винда. Оказалось нет: просто книга открывалась около 40 минут.
И примерно минут на 20 зависала при изменении любого значения на листе.
Сказать, что там было много формул это ничего не сказать.
В книге отчёт формировался формулами и пользователя это устраивало (успевал после внесения любого значения чайку попить и перекурить)
Убедил удалить все формулы и формировать отчёт макросом.
Результат: отчёт формировался за 8-10с.
Я просто тогда не знал, что "функции листа на порядок более быстродействующие"



Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеИМХО
Цитата
Это не так

Возможно это из-за того, что я плохо знаю теорию.
Но как-то заказывали написать пользовательскую функцию и прислали книгу где она должна работать.
Я думал, что у меня зависла винда. Оказалось нет: просто книга открывалась около 40 минут.
И примерно минут на 20 зависала при изменении любого значения на листе.
Сказать, что там было много формул это ничего не сказать.
В книге отчёт формировался формулами и пользователя это устраивало (успевал после внесения любого значения чайку попить и перекурить)
Убедил удалить все формулы и формировать отчёт макросом.
Результат: отчёт формировался за 8-10с.
Я просто тогда не знал, что "функции листа на порядок более быстродействующие"


Автор - alex77755
Дата добавления - 30.03.2014 в 00:44
doober Дата: Воскресенье, 30.03.2014, 01:07 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Правильно мыслит dadmarat
Excel-это не место для хранения баз данных.
За один год 100 к записей,за следующий еще+будет??? ,и.д.
На стороне сервера выполняется процедура с расчетами и на выходе результат.
Доступ к данным с любой точки.Главное оптимизировать процедуру .
Если на локалке,то вебсервер не понадобится.

PS: dadmarat. Если надо написать процедуру,обращайтесь,помогу


 
Ответить
СообщениеПравильно мыслит dadmarat
Excel-это не место для хранения баз данных.
За один год 100 к записей,за следующий еще+будет??? ,и.д.
На стороне сервера выполняется процедура с расчетами и на выходе результат.
Доступ к данным с любой точки.Главное оптимизировать процедуру .
Если на локалке,то вебсервер не понадобится.

PS: dadmarat. Если надо написать процедуру,обращайтесь,помогу

Автор - doober
Дата добавления - 30.03.2014 в 01:07
Serge_007 Дата: Воскресенье, 30.03.2014, 07:27 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
отчёт формировался формулами и пользователя это устраивало (успевал после внесения любого значения чайку попить и перекурить)
Убедил удалить все формулы и формировать отчёт макросом.
Результат: отчёт формировался за 8-10с
alex77755, я ведь написал, что
функции листа на порядок более быстродействующими, чем код VBA написанный пользователем и выполняющий аналогичные вычисления
:D
Если Вы, при написании кода, использовали иной алгоритм, чем пользователь, который написал формулу, то естественно сравнивать быстродействие разных алгоритмов бессмысленно ;)
Для того что бы убедиться, что функции листа быстрее аналогичных функций на VBA, достаточно написать свой аналог любой функции листа и сравнить скорость выполнения с оригиналом

[p.s.]У меня есть такой опыт: Надо было заполнить около ста файлов данными корпоративной БД для банка-партнера в их форме. Макрос уже был ими написан. Я посмотрел код - сплошные селекты и прочие "тормоза" (видимо писали в основном макрорекордером). Код выбирал из БД куски информации под каждый файл, обрабатывал эти куски по условиям, добавлял группировки, фильтрацию, подитоги по группам и много прочей лабуды. Запустил код на ночь и отработал он только к утру следующего дня. Ради интереса написал свой код, который создавал сводную таблицу из БД и разносил инфу по нужным файлам по условиям. Общее время выполнение составило МЕНЕЕ ОДНОГО ЧАСА, да и то, код не оптимальный был, потому что лень было его оптимизировать, задача-то разовая. Так что сравнивать надо осторожнее ;) [/p.s.]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
отчёт формировался формулами и пользователя это устраивало (успевал после внесения любого значения чайку попить и перекурить)
Убедил удалить все формулы и формировать отчёт макросом.
Результат: отчёт формировался за 8-10с
alex77755, я ведь написал, что
функции листа на порядок более быстродействующими, чем код VBA написанный пользователем и выполняющий аналогичные вычисления
:D
Если Вы, при написании кода, использовали иной алгоритм, чем пользователь, который написал формулу, то естественно сравнивать быстродействие разных алгоритмов бессмысленно ;)
Для того что бы убедиться, что функции листа быстрее аналогичных функций на VBA, достаточно написать свой аналог любой функции листа и сравнить скорость выполнения с оригиналом

[p.s.]У меня есть такой опыт: Надо было заполнить около ста файлов данными корпоративной БД для банка-партнера в их форме. Макрос уже был ими написан. Я посмотрел код - сплошные селекты и прочие "тормоза" (видимо писали в основном макрорекордером). Код выбирал из БД куски информации под каждый файл, обрабатывал эти куски по условиям, добавлял группировки, фильтрацию, подитоги по группам и много прочей лабуды. Запустил код на ночь и отработал он только к утру следующего дня. Ради интереса написал свой код, который создавал сводную таблицу из БД и разносил инфу по нужным файлам по условиям. Общее время выполнение составило МЕНЕЕ ОДНОГО ЧАСА, да и то, код не оптимальный был, потому что лень было его оптимизировать, задача-то разовая. Так что сравнивать надо осторожнее ;) [/p.s.]

Автор - Serge_007
Дата добавления - 30.03.2014 в 07:27
dadmarat Дата: Понедельник, 31.03.2014, 12:03 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010
Кстати запросы не обязательно должны быть к базе.
К листу ексел тоже можно

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

непонятно - что за формулы и нельзя ли облегчить их...
непонятно - почему вы не пользуетесь другими инструментами Excel - к примеру, сводными, фильтрами...
непонятно - почему вы не пользуетесь макросами в Excel...
непонятно, слышали ли Вы о MS Query...

Возможно я мало знаю о этих инструментах, но первые два предполагают открытие файла с базой, но он открывается долго.
MS Query не слышал, сегодня почитаю.

doober, скорее всего думаю рассматривать веб-сервер, так как пользователей будет 5-8 человек и доступ (для настройки и отладки, для начала, на локальному буду тестировать). Спасибо за предложение, если возникнут трудности обязательно обращусь.

Тему я и ставил в общем виде, для того что бы мне в общем и посоветовали, что можно сделать по такому или иному принципу, используя те или другие инструменты, в зависимости от конкретного случая. Если недостаточно информации, могу ответить на вопросы или рассказать конкретный случай.


----------------
I can do it!
----------------
 
Ответить
Сообщение
Кстати запросы не обязательно должны быть к базе.
К листу ексел тоже можно

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

непонятно - что за формулы и нельзя ли облегчить их...
непонятно - почему вы не пользуетесь другими инструментами Excel - к примеру, сводными, фильтрами...
непонятно - почему вы не пользуетесь макросами в Excel...
непонятно, слышали ли Вы о MS Query...

Возможно я мало знаю о этих инструментах, но первые два предполагают открытие файла с базой, но он открывается долго.
MS Query не слышал, сегодня почитаю.

doober, скорее всего думаю рассматривать веб-сервер, так как пользователей будет 5-8 человек и доступ (для настройки и отладки, для начала, на локальному буду тестировать). Спасибо за предложение, если возникнут трудности обязательно обращусь.

Тему я и ставил в общем виде, для того что бы мне в общем и посоветовали, что можно сделать по такому или иному принципу, используя те или другие инструменты, в зависимости от конкретного случая. Если недостаточно информации, могу ответить на вопросы или рассказать конкретный случай.

Автор - dadmarat
Дата добавления - 31.03.2014 в 12:03
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как лучше организовать БД (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!