Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Доброго дня! Приложение работает с БД, в базе имеется довольно много справочных данных. Для того что бы повторно не загружать их и уменьшить трафик, при старте загружаю все справиочники в QHash<int, QString> в одном единственном классе. Доступ получаю к ним через ф-ю QString valueById(int id), ну вместо value название справочника. Так вот вопрос, правельный ли это подход, или лучше копировать QHash в новый объект? Вопрос в скорости работы и обращения к данным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 09:29 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
WulffДля того что бы повторно не загружать их и уменьшить трафик, при старте загружаю все справиочники в QHash<int, QString>справочники у вас не изменяются во времени, штоле? очень странно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 11:19 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
WulffДоброго дня! Приложение работает с БД, в базе имеется довольно много справочных данных. Для того что бы повторно не загружать их и уменьшить трафик, при старте загружаю все справиочники в QHash<int, QString> в одном единственном классе. Доступ получаю к ним через ф-ю QString valueById(int id), ну вместо value название справочника. Так вот вопрос, правельный ли это подход, или лучше копировать QHash в новый объект? Вопрос в скорости работы и обращения к данным. Я ничего неправильного не вижу, за исключением необходимости нумеровать справочники. Гораздо естественнее было бы идентифицировать справочники их именем, а не номером. Скорость будет та же, а удобства в программировании гораздо больше. Ну и не понятно, как у вас все справочники грузятся в один QHash и почему у них в значении только одно поле и только строка. Полей-то много бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 11:31 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
egorychWulffДля того что бы повторно не загружать их и уменьшить трафик, при старте загружаю все справиочники в QHash<int, QString>справочники у вас не изменяются во времени, штоле? очень странно Надо просто иметь возможность их всегда перечитать. В любой момент. Пользователю. Ну или самому инвалидировать эти кэши, рассылая сообщения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 11:31 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Если у них справочники - append-only то можно их обновлять по факту "промаха". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 13:04 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
maytonЕсли у них справочники - append-only то можно их обновлять по факту "промаха". Если у них из справочников заполняются списки выбора, то вместо промахов скорее будут конфликты их пополнения. PS: По моему опыту, такое кэширование для экономии траффика - бесперспективняк. Проще сервер БД поместить в локалку. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 14:31 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
MasterZivНу и не понятно, как у вас все справочники грузятся в один QHash и почему у них в значении только одно поле и только строка. Полей-то много бывает. Спарвочники конечно же именование, и каждый я гружу в отдельй хеш, может я плохо объянил. В базе храню последнее обновление каждого справочника, и проверяю по таймеру, и соотв. обновляю при необходимости. Все эти справочники нужны только лишь в моделя представления, больше нигде. Т.е. в sql запросе я делаю минимальную выборку без join'ов и т.п. а в модели( наследую от QAbstractItemModel) использую как вывод текстовой инфы. maytonЕсли у них справочники - append-only то можно их обновлять по факту "промаха". Это как? Можете пояснить что такой "промах"? Dimitry SibiryakovPS: По моему опыту, такое кэширование для экономии траффика - бесперспективняк. Проще сервер БД поместить в локалку. Это хорошо когда это можно сделать, но увы. А почему бесперспективно? Можно более развернутое пояснения вашей точки зрения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 14:59 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
WulffЭто хорошо когда это можно сделать, но увы Мне не встречались случаи, когда это было сделать невозможно. Только те, когда не хотели. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 15:15 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
MasterZivegorychпропущено... справочники у вас не изменяются во времени, штоле? очень странно Надо просто иметь возможность их всегда перечитать. В любой момент. Пользователю. Ну или самому инвалидировать эти кэши, рассылая сообщения.два вопроса: 1. откуда пользователю знать, что справочник изменился? 2. это реально даёт выигрыш? с учётом сложностей с программированием и поддержкой? моё имхо совпадает тут с Дмитрием, бесперспективняк. Кажется, что мы видим попытку оптимизации не в том месте, где тормозит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 15:18 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
egorychMasterZivпропущено... Надо просто иметь возможность их всегда перечитать. В любой момент. Пользователю. Ну или самому инвалидировать эти кэши, рассылая сообщения.два вопроса: 1. откуда пользователю знать, что справочник изменился? 2. это реально даёт выигрыш? с учётом сложностей с программированием и поддержкой? моё имхо совпадает тут с Дмитрием, бесперспективняк. Кажется, что мы видим попытку оптимизации не в том месте, где тормозит. 1. Пользоваьтелю незачем это знать, я писал выше, обновляется по таймеру, т.е. в базе храниться время последнего обновления справочника(любого) и если необходимо, перечитываем нужный нам справочник, соотв. сложностей здесь особых нет. 2. выигрыш в том, что хеш хранится в одном месте, мне нет необходимости загружать данные по нескорльку раз. Ну вот для примера. Есть два объекта, которым нужны один и тот же справочник. По вашему каждый объект должен загрузить себе этот справочник, и тоже как то его проверять на изменения, верно? Я же, создал объект, всегда предоставляющий актуальные данные по справочникам, и оба объекта обращаются к одному актуальному справочнику. При чем я взял в пример хеш со строковым значением, но в место этого у меня применяются и объекты (контактные данные фирм и т.д.). Т.е. убиваем двух зайцев, сокращаем в разы трафик, а так же довольно удобный интерфейс, в случае большого приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 15:30 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
WulffЭто как? Можете пояснить что такой "промах"? Ну это похоже на работу DNS. Ты полез в свой локальный кеш. Не нашёл записи. Полез в DNS следующего уровня. e.t.c. до самого верхнего. Но это полезно когда ты лезешь точно зная новый ключик или знаешь что записи имеют time-to-leave. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 15:42 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
maytonWulffЭто как? Можете пояснить что такой "промах"? Ну это похоже на работу DNS. Ты полез в свой локальный кеш. Не нашёл записи. Полез в DNS следующего уровня. e.t.c. до самого верхнего. Но это полезно когда ты лезешь точно зная новый ключик или знаешь что записи имеют time-to-leave. Спасибо, догадывался что это именно так. Т.е. если вдруг в спарвочнике не нахожу нужную запись, то перегружаю справочник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 15:51 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Wulffmaytonпропущено... Ну это похоже на работу DNS. Ты полез в свой локальный кеш. Не нашёл записи. Полез в DNS следующего уровня. e.t.c. до самого верхнего. Но это полезно когда ты лезешь точно зная новый ключик или знаешь что записи имеют time-to-leave. Спасибо, догадывался что это именно так. Т.е. если вдруг в спарвочнике не нахожу нужную запись, то перегружаю справочник. Да но для ComboBox например такой вариант непрокатит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 15:59 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovmaytonЕсли у них справочники - append-only то можно их обновлять по факту "промаха". Если у них из справочников заполняются списки выбора, то вместо промахов скорее будут конфликты их пополнения. PS: По моему опыту, такое кэширование для экономии траффика - бесперспективняк. Проще сервер БД поместить в локалку. У меня ровно обратный опыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 16:06 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
maytonWulffпропущено... Спасибо, догадывался что это именно так. Т.е. если вдруг в спарвочнике не нахожу нужную запись, то перегружаю справочник. Да но для ComboBox например такой вариант непрокатит Мы делали так: если пользователь не видет нужной записи в справочнике, у него есть специальная кнопка, нажимая которую он обновляет все справочники этой формы. В общем, вполне адекватно и работает. Да, кэши у нас без ограничения по размеру -- что достаточно странно, но так уж получилось. Но всё равно после определённого времени работы пользователь набивает в кэш всё, что нужно в его предметной области, и больше сверх того кэш не растёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 16:08 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
maytonДа но для ComboBox например такой вариант непрокатит Ну это решается довольно просто с QAbstractItemModel, ооочень просто. Я сейчас все данные только через нее делаю, очень удобно и довольно гибко получается. MasterZiv У меня ровно обратный опыт. То есть? Поясните пожалуйста. Мне очень важен опыт использования такого подхода, да и вообще как работать со справочниками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 16:12 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
WulffMasterZiv У меня ровно обратный опыт. То есть? Поясните пожалуйста. Мне очень важен опыт использования такого подхода, да и вообще как работать со справочниками Ну, что тут пояснять? Справочник один раз загружается на локальную машину и там живёт. Это выгодно. Позволяет не загружать каждый раз этот справочник при откритии каждой формы. Позволяет также экономить ресурсы сервера БД для выдачи каждому пользователю всех нужных ему справочников. Особенно это хорошо, когда справочники достаточно большые, что на самом деле не редкость. Я не знаю, что ещё рассказывать, если что-то надо -- спрашивай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 16:18 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
MasterZivМы делали так: если пользователь не видет нужной записи в справочнике, у него есть специальная кнопка, нажимая которую он обновляет все справочники этой формы. В общем, вполне адекватно и работает. Да, кэши у нас без ограничения по размеру -- что достаточно странно, но так уж получилось. Но всё равно после определённого времени работы пользователь набивает в кэш всё, что нужно в его предметной области, и больше сверх того кэш не растёт. От предметной области зависит. Я-бы сказал. Если мы работаем с курсами валют и точно знаем что обновление происходит 2 раза в сутки то и клиента можно подстроить под такой график. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 16:23 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
WulffНу вот для примера. Есть два объекта, которым нужны один и тот же справочник. По вашему каждый объект должен загрузить себе этот справочник, и тоже как то его проверять на изменения, верно? что такое объект в данном случае? класс, представляющий бизнес-сущность? Если да, то не верно. Я считаю, что таких объектов вообще быть не должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 17:07 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Wulffобновляется по таймеру, т.е. в базе храниться время последнего обновления справочника(любого) и если необходимо, перечитываем нужный нам справочник, соотв. сложностей здесь особых нета если в течении данной сессии работы с программой пользователю вообще ни разу не потребовался этот справочник? но мы ему его аккуратно обновляем каждый раз, и по крайней мере один раз при старте загружаем. Как часто срабатывает таймер, кстати? гипотетический пример- Вася, заведи мне в справочник нового клиента - Да я завёл его уже 40 минут назад! - Пичалька, ещё 20 минут придётся подождать ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 17:14 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
maytonОт предметной области зависит. ЧТО зависит ? Как раз мой опыт говорит, что от предметной области в этом вопросе ничего НЕ зависит. Курсы валют -- это не показательный пример, это не справочник. Валюты -- да. Котировки курсов валют -- да. А сами курсы -- не справочник. Потом, для работы в первичке они особенно и не нужны. В том смысле, что пользователь явно нигде в форме особенно их выбирать не должен (кроме самой формы корректировки курсов, разумеется). Да, понять, что является справочником, а что -- нет, порой нетривиально. Это да, такое есть. Это решает постановщик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 18:00 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
egorychWulffНу вот для примера. Есть два объекта, которым нужны один и тот же справочник. По вашему каждый объект должен загрузить себе этот справочник, и тоже как то его проверять на изменения, верно? что такое объект в данном случае? класс, представляющий бизнес-сущность? Если да, то не верно. Я считаю, что таких объектов вообще быть не должно. Вообще говоря, у нас кэш работает на уровне соединения с БД, на уровне сессии. И естественно, для всех форм он общий. И естественно, он не просто так тупой, а результат вызовов запросов со всеми параметрами. И естественно это всё прозрачно для приложения, оно говорит только, надо ли использовать кэш для данного запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 18:02 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
egorychWulffНу вот для примера. Есть два объекта, которым нужны один и тот же справочник. По вашему каждый объект должен загрузить себе этот справочник, и тоже как то его проверять на изменения, верно? что такое объект в данном случае? класс, представляющий бизнес-сущность? Если да, то не верно. Я считаю, что таких объектов вообще быть не должно. Ну почему же? Допустим справочник адресов. Как можно в хеше хранить? Только в виде экземпляров класса, который содержит все поля. 1.Это удобно 2.Быстро, в плане доступа к информации egorychКак часто срабатывает таймер, кстати? Зависит от клиента, и от того что за справочник и вероятность обновления его. На практике это от 10 сек. Запрос делаю в отдельном потоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2013, 09:05 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Wulffegorychпропущено... что такое объект в данном случае? класс, представляющий бизнес-сущность? Если да, то не верно. Я считаю, что таких объектов вообще быть не должно. Ну почему же? Допустим справочник адресов. Как можно в хеше хранить? Только в виде экземпляров классаа зачем его хранить? С хранением отлично справляется база данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2013, 09:42 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
WulffНа практике это от 10 сек. а что тогда экономим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2013, 09:48 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
ИзопропилWulffНа практике это от 10 сек. а что тогда экономим? Трафик, что ж еще. Но это для очень часто обновляемых справочников, на практике стоит 1-2 мин, и запрос то совершенно не ресурсоемкий, по сравнению с загрузкой всего справочника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2013, 10:05 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
WulffИзопропилпропущено... а что тогда экономим? Трафик, что ж еще. Но это для очень часто обновляемых справочников, на практике стоит 1-2 мин, и запрос то совершенно не ресурсоемкий, по сравнению с загрузкой всего справочника. И время пользователя. И ресурсы сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2013, 11:02 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Парни мы обсуждаем одну задачу но каждый видит ее в разных измерениях. У кого-то БД далеко стоит. У кого локально. А у кого и встроена в приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2013, 12:03 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Wulffпо сравнению с загрузкой всего справочника. А кто ж грузит целый-то справочник?.. Фильтровать надо только нужное. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2013, 14:18 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovWulffпо сравнению с загрузкой всего справочника. А кто ж грузит целый-то справочник?.. Фильтровать надо только нужное. Как вы себе предстовляете фильтр справочника с двумя полями ид и наименование? mayton Парни мы обсуждаем одну задачу но каждый видит ее в разных измерениях. У кого-то БД далеко стоит. У кого локально. А у кого и встроена в приложение. Это точно! Конечно, когда сервер на localhost, или в локалке одного предприятия(здания), да какие проблемы, грузи как и когда хочешь. А вот когда сервер отдален на нацать км, а скорость интернета оставляет желать лучшего, то тут по другому я даже не знаю как. И постоянно грузить справочники с кол-вом записей более 10к, ну знаете.... Проверял, тормоза жуткие, ползователи плюются и матерятся оч сильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2013, 10:39 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
WulffЭто точно! Конечно, когда сервер на localhost, или в локалке одного предприятия(здания), да какие проблемы, грузи как и когда хочешь. А вот когда сервер отдален на нацать км, а скорость интернета оставляет желать лучшего, то тут по другому я даже не знаю как. И постоянно грузить справочники с кол-вом записей более 10к, ну знаете.... Проверял, тормоза жуткие, ползователи плюются и матерятся оч сильно. Да нет, не так всё. Даже с локальной машины или с быстрой сетью выгрузить справочник в скажем 10-30 тыщ записей -- долго. А побить справочник на части не хватает часто ни сил разработчкиков, ни желания аналитиков (это ж думать надо!), ни понимания пользователей -- у них подмотка по набираемому тексту работает, их устраивает. Справочников таких у нас в системе несколько штук есть, очень часто используемые (контрагенты), при чём они побиты уже на по крайней мере две части -- поставщики и потребители, а иногда и на больше частей (части, соотв., меньше). Но всё равно они большие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2013, 13:31 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
WulffКак вы себе предстовляете фильтр справочника с двумя полями ид и наименование? Так же как у тебя в браузере фильтруются старые URL-ы: пользователь начинает вводить наименование и когда задумается на секунду, на сервер уходит запрос с фильтром по введённому куску. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2013, 15:04 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
MasterZivДа нет, не так всё. Даже с локальной машины или с быстрой сетью выгрузить справочник в скажем 10-30 тыщ записей -- долгоНекоторое время назад заспулил ( sqlplus ) в файл около миллиона записей. Примерно пять секунд. В рабочее время, на рабочей базе. Может "долго" - где-то в другом месте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 16:49 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovMasterZivДа нет, не так всё. Даже с локальной машины или с быстрой сетью выгрузить справочник в скажем 10-30 тыщ записей -- долгоНекоторое время назад заспулил ( sqlplus ) в файл около миллиона записей. Примерно пять секунд. В рабочее время, на рабочей базе. Может "долго" - где-то в другом месте? Наоборот, это "быстро" в другом месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 18:42 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
MasterZivBasil A. Sidorovпропущено... Некоторое время назад заспулил ( sqlplus ) в файл около миллиона записей. Примерно пять секунд. В рабочее время, на рабочей базе. Может "долго" - где-то в другом месте? Наоборот, это "быстро" в другом месте. Oracle стремителен когда речь идёт о его примитивных типах NUMBER/VARCHAR/DATE. Как только вам надо будет заспулить LONG/BLOB/RAW/XML или вложенные таблицы или списки в полях то результат будет более чем печален. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 19:16 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
mayton, Я имел в виду не это. Одно дело, когда ты набиндил колонки на буфера, да ещё пачкой по скажем 1000 записей, фетчишь и тут же пишешь в файл. Другое дело, когда ты создаёшь объект типа DataSet, с колонками, строками, полями, для последующего использования в приложении. Это сильно дольше, чем писать в файл или рисовать текст в окошечке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 19:54 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
maytonКак только вам надо будет заспулить LONG/BLOB/RAW/XML или вложенные таблицы или списки в полях то результат будет более чем печален.И как часто всё это требуется в справочниках? Особенно с учётом того, что sqlplus - штатный утиль, позволяющий получить некую точку отсчёта, а совсем не эталон загрузки данных на клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 17:20 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
MasterZivДругое дело, когда ты создаёшь объект типа DataSet, с колонками, строками, полями, для последующего использования в приложении. Это сильно дольше, чем писать в файл или рисовать текст в окошечке.Так вам "быстро" или "как попроще"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 17:21 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Ты вот зачем всё это пишешь ? Какое это отношение имеет к обсуждаемому вопросу ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 19:09 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
MasterZivТы вот зачем всё это пишешь ?Зачем вы пишите вот это: MasterZivДа нет, не так всё. Даже с локальной машины или с быстрой сетью выгрузить справочник в скажем 10-30 тыщ записей -- долго.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2013, 16:54 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
WulffЭто точно! Конечно, когда сервер на localhost, или в локалке одного предприятия(здания), да какие проблемы, грузи как и когда хочешь. А вот когда сервер отдален на нацать км, а скорость интернета оставляет желать лучшего, то тут по другому я даже не знаю как. И постоянно грузить справочники с кол-вом записей более 10к, ну знаете.... Проверял, тормоза жуткие, ползователи плюются и матерятся оч сильно. Даже в локалке проблема вытащить с SQL-сервера целиком большой справочник на клиента. Никто так не делает (например так делала 1С77 с базой на MSSQL, тормозило жутко по стомегабитной сетке). Даже если справочник из двух полей (Id, Name) то сначала уточнение у юзера чего он хочет, т.е. фильтр, а затем SELECT ... WHERE Name like ... но такие вещи требуют кардинальной переделки пользовательского интерфейса. Исключение файл-серверы, например фокспро, там на клиента качается только нужное, например вывел ты в гриде справочник - реально прочитались по сетке только те записи, которые надо на экран вывести, остальное докачивается по необходимости. Почитай про репликацию СУБД, сделать однонаправленную с сервера на клиента не сложно, но есть есть фундаментальные тонкости, которые надо учесть. Если софт готовый, а удаленный пользователь неожиданно появился, то советую подумать об использовании RDP. Гораздо дешевле воткнуть комп в сетку с сервером, чем переписать софт на работу по медленным каналам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2013, 18:28 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли софт готовый, а удаленный пользователь неожиданно появился, то советую подумать об использовании RDP. Гораздо дешевле воткнуть комп в сетку с сервером, чем переписать софт на работу по медленным каналам. Это не решает проблему а просто переносит ее в сферы отвествтенности ЦОД-ов или датацентров. Ведь все эти петабайты справочников теперь будут бегать между БД и Фермой терминалов. Я как инженер категорически не согласен с этим. А как потребителю мне конечно-же всё равно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2013, 19:42 |
|
||
|
Справочные данные, QHash, и доступ к ним
|
|||
|---|---|---|---|
|
#18+
maytonDima TЕсли софт готовый, а удаленный пользователь неожиданно появился, то советую подумать об использовании RDP. Гораздо дешевле воткнуть комп в сетку с сервером, чем переписать софт на работу по медленным каналам. Это не решает проблему а просто переносит ее в сферы отвествтенности ЦОД-ов или датацентров. Ведь все эти петабайты справочников теперь будут бегать между БД и Фермой терминалов. Я как инженер категорически не согласен с этим. А как потребителю мне конечно-же всё равно. Проблему это решает. В остальном согласен что решает нехорошо. Чтобы сделать хорошо надо полностью переписать софт, легким допиливанием невозможно получить тонкого клиента из толстого. Стоит это делать или достаточно обойтись небольшим вложением в железо, сложно сказать не зная всех условий задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 07:29 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2019851]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
203ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 297ms |
| total: | 621ms |

| 0 / 0 |
