powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / Много штук m_pDatabase. Плохо ?
5 сообщений из 5, страница 1 из 1
Много штук m_pDatabase. Плохо ?
    #32104728
FYRK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раньше всегда делал так:
одна m_pApp->m_pDatabase, во всех вьюшках new CRecordset(m_pApp->m_pDatabase).
Сейчас:
К вьюшке леплю диалог(докед) в котором отображаю дополнительные свойства выбраной во вьюшке(где стоит курсор) записи.

Все бы ничего, но ежели во вьюшке выборка ~200k записей то при открытии вьюшки драйвер высасывает к себе на винт всю выборку ~100M(вследствии чего тормозит), а затем тока заполняет окошко в диалоге свойствами выбраной записи.
Я так понимаю, что если использовать одну CDatabase, то если он(драйвер) при первом фитче не вытащил все, и я обращаюсь через тотже CDatabase к другой выборке, то он чтобы освободить HSTMT выбирает остаток, а потом запрашивает вторую выборку. Раньше было еще хуже - при открытии второй выборки он вываливал ехепшон и орал что хстмт занят, но я потом чтото сделал(кажется обновил мсдак) и он вот так теперь поступает.

Мне все это не нравится, поэтому гдето месяц назад я, практически, к каждому рекордсету прикрутил по датабазе. Ничего не тормозит все работает прекрасно, но...
Этот месяц я плохо сплю ибо грызет меня червяк сомнения, что для каждого рекордсета по датабазе это плохо.
Почему плохо - обосновать себе немогу.
(MSSQL, VC6)

Скажите почему это плохо, или разубедите меня пжалуйста.
Если есть другой метод решенимя этой проблемы - подскажите где копать
...
Рейтинг: 0 / 0
Много штук m_pDatabase. Плохо ?
    #32105043
Alexey M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выражу свое мнение - это довольно безграмотный вариант! Для каждого рекордсета драйвер ODBC создает новое соединение ( что влияет на производиетльность и ресурсы сервера) - допустим в программе 10 рекордсетов, 50 пользовоателей - получаем 500 соединений.
Кроме того уровень транзакций живет в Database и это значит что рано или поздно последовательность каких то дейтвий будут выполнена таким образом, что ошибка в одном из шагов не вызовет отката всей цепочки - будет нарушена целстность данных. То есть такой подход сразу в себе содержит два серьезных недостатка - ресуросоемкий и не обеспечивает надежность работы приложения и целостность данных.
Думайте.
...
Рейтинг: 0 / 0
Много штук m_pDatabase. Плохо ?
    #32105088
FYRK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так как же, блин, быть ???
8-(
...
Рейтинг: 0 / 0
Много штук m_pDatabase. Плохо ?
    #32105092
Alexey M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для быстрого считывания данных из базы ( для просмотра) рекомендую использовать Bulk рекордсет - конечно прийдется поводится - но скорость считывания впечатляет!
...
Рейтинг: 0 / 0
Много штук m_pDatabase. Плохо ?
    #32106455
FYRK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это я попробую. Спасибо.

Но есть же еще такой момент:
Кода драйвер хочет освободить HSTMT, он вытягивает все к себе на винт, создавая этим самым сотни-метровый файл в темпе, а на WSах с винтами на 5400 это оч даже заметно.

Все это не радует...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Много штук m_pDatabase. Плохо ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]